'
+ + escape(response[fields.action][fields.actionText], preserveHTML)
+ + '
';
+ } else {
+ html += ''
+ + ''
+ + escape(response[fields.action][fields.actionText], preserveHTML)
+ + '
';
+ } else {
+ html += ''
+ + ''
+ },
+
+ regExp : {
+ escape : /[-[\]{}()*+?.,\\^$|#\s:=@]/g
+ },
+
+ metadata : {
+ tab : 'tab',
+ loaded : 'loaded',
+ promise: 'promise'
+ },
+
+ className : {
+ loading : 'loading',
+ active : 'active'
+ },
+
+ selector : {
+ tabs : '.ui.tab',
+ ui : '.ui'
+ }
+
+};
+
+})( jQuery, window, document );
diff --git a/assets/semantic/src/definitions/modules/tab.less b/assets/semantic/src/definitions/modules/tab.less
new file mode 100644
index 0000000..56e8f22
--- /dev/null
+++ b/assets/semantic/src/definitions/modules/tab.less
@@ -0,0 +1,91 @@
+/*!
+ * # Fomantic-UI - Tab
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'module';
+@element : 'tab';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ UI Tabs
+*******************************/
+
+.ui.tab {
+ display: none;
+}
+
+/*******************************
+ States
+*******************************/
+
+/*--------------------
+ Active
+---------------------*/
+
+.ui.tab.active,
+.ui.tab.open {
+ display: block;
+}
+
+& when (@variationTabLoading) {
+ /*--------------------
+ Loading
+ ---------------------*/
+
+ .ui.tab.loading {
+ position: relative;
+ overflow: hidden;
+ display: block;
+ min-height: @loadingMinHeight;
+ }
+ .ui.tab.loading * {
+ position: @loadingContentPosition !important;
+ left: @loadingContentOffset !important;
+ }
+
+ .ui.tab.loading:before,
+ .ui.tab.loading.segment:before {
+ position: absolute;
+ content: '';
+ top: @loaderDistanceFromTop;
+ left: 50%;
+
+ margin: @loaderMargin;
+ width: @loaderSize;
+ height: @loaderSize;
+
+ border-radius: @circularRadius;
+ border: @loaderLineWidth solid @loaderFillColor;
+ }
+ .ui.tab.loading:after,
+ .ui.tab.loading.segment:after {
+ position: absolute;
+ content: '';
+ top: @loaderDistanceFromTop;
+ left: 50%;
+
+ margin: @loaderMargin;
+ width: @loaderSize;
+ height: @loaderSize;
+
+ animation: loader @loaderSpeed infinite linear;
+ border: @loaderLineWidth solid @loaderLineColor;
+ border-radius: @circularRadius;
+
+ box-shadow: 0 0 0 1px transparent;
+ }
+}
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/modules/toast.js b/assets/semantic/src/definitions/modules/toast.js
new file mode 100644
index 0000000..4866d24
--- /dev/null
+++ b/assets/semantic/src/definitions/modules/toast.js
@@ -0,0 +1,872 @@
+/*!
+ * # Fomantic-UI - Toast
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+'use strict';
+
+$.isFunction = $.isFunction || function(obj) {
+ return typeof obj === "function" && typeof obj.nodeType !== "number";
+};
+
+window = (typeof window != 'undefined' && window.Math == Math)
+ ? window
+ : (typeof self != 'undefined' && self.Math == Math)
+ ? self
+ : Function('return this')()
+;
+
+$.fn.toast = function(parameters) {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ query = arguments[0],
+ methodInvoked = (typeof query == 'string'),
+ queryArguments = [].slice.call(arguments, 1),
+ returnedValue
+ ;
+ $allModules
+ .each(function() {
+ var
+ settings = ( $.isPlainObject(parameters) )
+ ? $.extend(true, {}, $.fn.toast.settings, parameters)
+ : $.extend({}, $.fn.toast.settings),
+
+ className = settings.className,
+ selector = settings.selector,
+ error = settings.error,
+ namespace = settings.namespace,
+ fields = settings.fields,
+
+ eventNamespace = '.' + namespace,
+ moduleNamespace = namespace + '-module',
+
+ $module = $(this),
+ $toastBox,
+ $toast,
+ $actions,
+ $progress,
+ $progressBar,
+ $animationObject,
+ $close,
+ $context = (settings.context)
+ ? $(settings.context)
+ : $('body'),
+
+ isToastComponent = $module.hasClass('toast') || $module.hasClass('message') || $module.hasClass('card'),
+
+ element = this,
+ instance = isToastComponent ? $module.data(moduleNamespace) : undefined,
+
+ module
+ ;
+ module = {
+
+ initialize: function() {
+ module.verbose('Initializing element');
+ if (!module.has.container()) {
+ module.create.container();
+ }
+ if(isToastComponent || settings.message !== '' || settings.title !== '' || module.get.iconClass() !== '' || settings.showImage || module.has.configActions()) {
+ if(typeof settings.showProgress !== 'string' || [className.top,className.bottom].indexOf(settings.showProgress) === -1 ) {
+ settings.showProgress = false;
+ }
+ module.create.toast();
+ if(settings.closeOnClick && (settings.closeIcon || $($toast).find(selector.input).length > 0 || module.has.configActions())){
+ settings.closeOnClick = false;
+ }
+ if(!settings.closeOnClick) {
+ $toastBox.addClass(className.unclickable);
+ }
+ module.bind.events();
+ }
+ module.instantiate();
+ if($toastBox) {
+ module.show();
+ }
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of toast');
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ if($toastBox) {
+ module.debug('Removing toast', $toastBox);
+ module.unbind.events();
+ $toastBox.remove();
+ $toastBox = undefined;
+ $toast = undefined;
+ $animationObject = undefined;
+ settings.onRemove.call($toastBox, element);
+ $progress = undefined;
+ $progressBar = undefined;
+ $close = undefined;
+ }
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ show: function(callback) {
+ callback = callback || function(){};
+ module.debug('Showing toast');
+ if(settings.onShow.call($toastBox, element) === false) {
+ module.debug('onShow callback returned false, cancelling toast animation');
+ return;
+ }
+ module.animate.show(callback);
+ },
+
+ close: function(callback) {
+ callback = callback || function(){};
+ module.remove.visible();
+ module.unbind.events();
+ module.animate.close(callback);
+
+ },
+
+ create: {
+ container: function() {
+ module.verbose('Creating container');
+ $context.append($('
',{class: settings.position + ' ' + className.container}));
+ },
+ toast: function() {
+ $toastBox = $('
', {class: className.box});
+ if (!isToastComponent) {
+ module.verbose('Creating toast');
+ $toast = $('
');
+ var $content = $('
', {class: className.content});
+ var iconClass = module.get.iconClass();
+ if (iconClass !== '') {
+ $toast.append($(' ', {class: iconClass + ' ' + className.icon}));
+ }
+
+ if (settings.showImage) {
+ $toast.append($(' ', {
+ class: className.image + ' ' + settings.classImage,
+ src: settings.showImage
+ }));
+ }
+ if (settings.title !== '') {
+ $content.append($('
', {
+ class: className.title,
+ text: settings.title
+ }));
+ }
+
+ $content.append($('
', {html: module.helpers.escape(settings.message, settings.preserveHTML)}));
+
+ $toast
+ .addClass(settings.class + ' ' + className.toast)
+ .append($content)
+ ;
+ $toast.css('opacity', settings.opacity);
+ if (settings.closeIcon) {
+ $close = $(' ', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : '')});
+ if($close.hasClass(className.left)) {
+ $toast.prepend($close);
+ } else {
+ $toast.append($close);
+ }
+ }
+ } else {
+ $toast = settings.cloneModule ? $module.clone().removeAttr('id') : $module;
+ $close = $toast.find('> i'+module.helpers.toClass(className.close));
+ settings.closeIcon = ($close.length > 0);
+ }
+ if ($toast.hasClass(className.compact)) {
+ settings.compact = true;
+ }
+ if ($toast.hasClass('card')) {
+ settings.compact = false;
+ }
+ $actions = $toast.find('.actions');
+ if (module.has.configActions()) {
+ if ($actions.length === 0) {
+ $actions = $('
', {class: className.actions + ' ' + (settings.classActions || '')}).appendTo($toast);
+ }
+ if($toast.hasClass('card') && !$actions.hasClass(className.attached)) {
+ $actions.addClass(className.extraContent);
+ if($actions.hasClass(className.vertical)) {
+ $actions.removeClass(className.vertical);
+ module.error(error.verticalCard);
+ }
+ }
+ settings.actions.forEach(function (el) {
+ var icon = el[fields.icon] ? ' ' : '',
+ text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
+ cls = module.helpers.deQuote(el[fields.class] || ''),
+ click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
+ $actions.append($(' ', {
+ html: icon + text,
+ class: className.button + ' ' + cls,
+ click: function () {
+ if (click.call(element, $module) === false) {
+ return;
+ }
+ module.close();
+ }
+ }));
+ });
+ }
+ if ($actions && $actions.hasClass(className.vertical)) {
+ $toast.addClass(className.vertical);
+ }
+ if($actions.length > 0 && !$actions.hasClass(className.attached)) {
+ if ($actions && (!$actions.hasClass(className.basic) || $actions.hasClass(className.left))) {
+ $toast.addClass(className.actions);
+ }
+ }
+ if(settings.displayTime === 'auto'){
+ settings.displayTime = Math.max(settings.minDisplayTime, $toast.text().split(" ").length / settings.wordsPerMinute * 60000);
+ }
+ $toastBox.append($toast);
+
+ if($actions.length > 0 && $actions.hasClass(className.attached)) {
+ $actions.addClass(className.buttons);
+ $actions.detach();
+ $toast.addClass(className.attached);
+ if (!$actions.hasClass(className.vertical)) {
+ if ($actions.hasClass(className.top)) {
+ $toastBox.prepend($actions);
+ $toast.addClass(className.bottom);
+ } else {
+ $toastBox.append($actions);
+ $toast.addClass(className.top);
+ }
+ } else {
+ $toast.wrap(
+ $('
',{
+ class:className.vertical + ' ' +
+ className.attached + ' ' +
+ (settings.compact ? className.compact : '')
+ })
+ );
+ if($actions.hasClass(className.left)) {
+ $toast.addClass(className.left).parent().addClass(className.left).prepend($actions);
+ } else {
+ $toast.parent().append($actions);
+ }
+ }
+ }
+ if($module !== $toast) {
+ $module = $toast;
+ element = $toast[0];
+ }
+ if(settings.displayTime > 0) {
+ var progressingClass = className.progressing+' '+(settings.pauseOnHover ? className.pausable:'');
+ if (!!settings.showProgress) {
+ $progress = $('
', {
+ class: className.progress + ' ' + (settings.classProgress || settings.class),
+ 'data-percent': ''
+ });
+ if(!settings.classProgress) {
+ if ($toast.hasClass('toast') && !$toast.hasClass(className.inverted)) {
+ $progress.addClass(className.inverted);
+ } else {
+ $progress.removeClass(className.inverted);
+ }
+ }
+ $progressBar = $('
', {class: 'bar '+(settings.progressUp ? 'up ' : 'down ')+progressingClass});
+ $progress
+ .addClass(settings.showProgress)
+ .append($progressBar);
+ if ($progress.hasClass(className.top)) {
+ $toastBox.prepend($progress);
+ } else {
+ $toastBox.append($progress);
+ }
+ $progressBar.css('animation-duration', settings.displayTime / 1000 + 's');
+ }
+ $animationObject = $(' ',{class:'wait '+progressingClass});
+ $animationObject.css('animation-duration', settings.displayTime / 1000 + 's');
+ $animationObject.appendTo($toast);
+ }
+ if (settings.compact) {
+ $toastBox.addClass(className.compact);
+ $toast.addClass(className.compact);
+ if($progress) {
+ $progress.addClass(className.compact);
+ }
+ }
+ if (settings.newestOnTop) {
+ $toastBox.prependTo(module.get.container());
+ }
+ else {
+ $toastBox.appendTo(module.get.container());
+ }
+ }
+ },
+
+ bind: {
+ events: function() {
+ module.debug('Binding events to toast');
+ if(settings.closeOnClick || settings.closeIcon) {
+ (settings.closeIcon ? $close : $toast)
+ .on('click' + eventNamespace, module.event.click)
+ ;
+ }
+ if($animationObject) {
+ $animationObject.on('animationend' + eventNamespace, module.close);
+ }
+ $toastBox
+ .on('click' + eventNamespace, selector.approve, module.event.approve)
+ .on('click' + eventNamespace, selector.deny, module.event.deny)
+ ;
+ }
+ },
+
+ unbind: {
+ events: function() {
+ module.debug('Unbinding events to toast');
+ if(settings.closeOnClick || settings.closeIcon) {
+ (settings.closeIcon ? $close : $toast)
+ .off('click' + eventNamespace)
+ ;
+ }
+ if($animationObject) {
+ $animationObject.off('animationend' + eventNamespace);
+ }
+ $toastBox
+ .off('click' + eventNamespace)
+ ;
+ }
+ },
+
+ animate: {
+ show: function(callback) {
+ callback = $.isFunction(callback) ? callback : function(){};
+ if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) {
+ module.set.visible();
+ $toastBox
+ .transition({
+ animation : settings.transition.showMethod + ' in',
+ queue : false,
+ debug : settings.debug,
+ verbose : settings.verbose,
+ duration : settings.transition.showDuration,
+ onComplete : function() {
+ callback.call($toastBox, element);
+ settings.onVisible.call($toastBox, element);
+ }
+ })
+ ;
+ }
+ },
+ close: function(callback) {
+ callback = $.isFunction(callback) ? callback : function(){};
+ module.debug('Closing toast');
+ if(settings.onHide.call($toastBox, element) === false) {
+ module.debug('onHide callback returned false, cancelling toast animation');
+ return;
+ }
+ if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
+ $toastBox
+ .transition({
+ animation : settings.transition.hideMethod + ' out',
+ queue : false,
+ duration : settings.transition.hideDuration,
+ debug : settings.debug,
+ verbose : settings.verbose,
+ interval : 50,
+
+ onBeforeHide: function(callback){
+ callback = $.isFunction(callback)?callback : function(){};
+ if(settings.transition.closeEasing !== ''){
+ if($toastBox) {
+ $toastBox.css('opacity', 0);
+ $toastBox.wrap('
').parent().slideUp(500, settings.transition.closeEasing, function () {
+ if ($toastBox) {
+ $toastBox.parent().remove();
+ callback.call($toastBox);
+ }
+ });
+ }
+ } else {
+ callback.call($toastBox);
+ }
+ },
+ onComplete : function() {
+ callback.call($toastBox, element);
+ settings.onHidden.call($toastBox, element);
+ module.destroy();
+ }
+ })
+ ;
+ }
+ else {
+ module.error(error.noTransition);
+ }
+ },
+ pause: function() {
+ $animationObject.css('animationPlayState','paused');
+ if($progressBar) {
+ $progressBar.css('animationPlayState', 'paused');
+ }
+ },
+ continue: function() {
+ $animationObject.css('animationPlayState','running');
+ if($progressBar) {
+ $progressBar.css('animationPlayState', 'running');
+ }
+ }
+ },
+
+ has: {
+ container: function() {
+ module.verbose('Determining if there is already a container');
+ return ($context.find(module.helpers.toClass(settings.position) + selector.container).length > 0);
+ },
+ toast: function(){
+ return !!module.get.toast();
+ },
+ toasts: function(){
+ return module.get.toasts().length > 0;
+ },
+ configActions: function () {
+ return Array.isArray(settings.actions) && settings.actions.length > 0;
+ }
+ },
+
+ get: {
+ container: function() {
+ return ($context.find(module.helpers.toClass(settings.position) + selector.container)[0]);
+ },
+ toastBox: function() {
+ return $toastBox || null;
+ },
+ toast: function() {
+ return $toast || null;
+ },
+ toasts: function() {
+ return $(module.get.container()).find(selector.box);
+ },
+ iconClass: function() {
+ return typeof settings.showIcon === 'string' ? settings.showIcon : settings.showIcon && settings.icons[settings.class] ? settings.icons[settings.class] : '';
+ },
+ remainingTime: function() {
+ return $animationObject ? $animationObject.css('opacity') * settings.displayTime : 0;
+ }
+ },
+
+ set: {
+ visible: function() {
+ $toast.addClass(className.visible);
+ }
+ },
+
+ remove: {
+ visible: function() {
+ $toast.removeClass(className.visible);
+ }
+ },
+
+ event: {
+ click: function(event) {
+ if($(event.target).closest('a').length === 0) {
+ settings.onClick.call($toastBox, element);
+ module.close();
+ }
+ },
+ approve: function() {
+ if(settings.onApprove.call(element, $module) === false) {
+ module.verbose('Approve callback returned false cancelling close');
+ return;
+ }
+ module.close();
+ },
+ deny: function() {
+ if(settings.onDeny.call(element, $module) === false) {
+ module.verbose('Deny callback returned false cancelling close');
+ return;
+ }
+ module.close();
+ }
+ },
+
+ helpers: {
+ toClass: function(selector) {
+ var
+ classes = selector.split(' '),
+ result = ''
+ ;
+
+ classes.forEach(function (element) {
+ result += '.' + element;
+ });
+
+ return result;
+ },
+ deQuote: function(string) {
+ return String(string).replace(/"/g,"");
+ },
+ escape: function(string, preserveHTML) {
+ if (preserveHTML){
+ return string;
+ }
+ var
+ badChars = /[<>"'`]/g,
+ shouldEscape = /[&<>"'`]/,
+ escape = {
+ "<": "<",
+ ">": ">",
+ '"': """,
+ "'": "'",
+ "`": "`"
+ },
+ escapedChar = function(chr) {
+ return escape[chr];
+ }
+ ;
+ if(shouldEscape.test(string)) {
+ string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&");
+ return string.replace(badChars, escapedChar);
+ }
+ return string;
+ }
+ },
+
+ can: {
+ useElement: function(element){
+ if ($.fn[element] !== undefined) {
+ return true;
+ }
+ module.error(error.noElement.replace('{element}',element));
+ return false;
+ }
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ if($.isPlainObject(settings[name])) {
+ $.extend(true, settings[name], value);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(!settings.silent && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(!settings.silent && settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ if(!settings.silent) {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ }
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Element' : element,
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 500);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ module.error(error.method, query);
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+ if(Array.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return found;
+ }
+ };
+
+ if(methodInvoked) {
+ if(instance === undefined) {
+ module.initialize();
+ }
+ module.invoke(query);
+ }
+ else {
+ if(instance !== undefined) {
+ instance.invoke('destroy');
+ }
+ module.initialize();
+ returnedValue = $module;
+ }
+ })
+ ;
+
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+$.fn.toast.settings = {
+
+ name : 'Toast',
+ namespace : 'toast',
+
+ silent : false,
+ debug : false,
+ verbose : false,
+ performance : true,
+
+ context : 'body',
+
+ position : 'top right',
+ class : 'neutral',
+ classProgress : false,
+ classActions : false,
+ classImage : 'mini',
+
+ title : '',
+ message : '',
+ displayTime : 3000, // set to zero to require manually dismissal, otherwise hides on its own
+ minDisplayTime : 1000, // minimum displaytime in case displayTime is set to 'auto'
+ wordsPerMinute : 120,
+ showIcon : false,
+ newestOnTop : false,
+ showProgress : false,
+ pauseOnHover : true,
+ progressUp : false, //if true, the bar will start at 0% and increase to 100%
+ opacity : 1,
+ compact : true,
+ closeIcon : false,
+ closeOnClick : true,
+ cloneModule : true,
+ actions : false,
+ preserveHTML : true,
+ showImage : false,
+
+ // transition settings
+ transition : {
+ showMethod : 'scale',
+ showDuration : 500,
+ hideMethod : 'scale',
+ hideDuration : 500,
+ closeEasing : 'easeOutCubic' //Set to empty string to stack the closed toast area immediately (old behaviour)
+ },
+
+ error: {
+ method : 'The method you called is not defined.',
+ noElement : 'This module requires ui {element}',
+ verticalCard : 'Vertical but not attached actions are not supported for card layout'
+ },
+
+ className : {
+ container : 'ui toast-container',
+ box : 'floating toast-box',
+ progress : 'ui attached active progress',
+ toast : 'ui toast',
+ icon : 'centered icon',
+ visible : 'visible',
+ content : 'content',
+ title : 'ui header',
+ actions : 'actions',
+ extraContent : 'extra content',
+ button : 'ui button',
+ buttons : 'ui buttons',
+ close : 'close icon',
+ image : 'ui image',
+ vertical : 'vertical',
+ attached : 'attached',
+ inverted : 'inverted',
+ compact : 'compact',
+ pausable : 'pausable',
+ progressing : 'progressing',
+ top : 'top',
+ bottom : 'bottom',
+ left : 'left',
+ basic : 'basic',
+ unclickable : 'unclickable'
+ },
+
+ icons : {
+ info : 'info',
+ success : 'checkmark',
+ warning : 'warning',
+ error : 'times'
+ },
+
+ selector : {
+ container : '.ui.toast-container',
+ box : '.toast-box',
+ toast : '.ui.toast',
+ input : 'input:not([type="hidden"]), textarea, select, button, .ui.button, ui.dropdown',
+ approve : '.actions .positive, .actions .approve, .actions .ok',
+ deny : '.actions .negative, .actions .deny, .actions .cancel'
+ },
+
+ fields : {
+ class : 'class',
+ text : 'text',
+ icon : 'icon',
+ click : 'click'
+ },
+
+ // callbacks
+ onShow : function(){},
+ onVisible : function(){},
+ onClick : function(){},
+ onHide : function(){},
+ onHidden : function(){},
+ onRemove : function(){},
+ onApprove : function(){},
+ onDeny : function(){}
+};
+
+$.extend( $.easing, {
+ easeOutBounce: function (x, t, b, c, d) {
+ if ((t/=d) < (1/2.75)) {
+ return c*(7.5625*t*t) + b;
+ } else if (t < (2/2.75)) {
+ return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
+ } else {
+ return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
+ }
+ },
+ easeOutCubic: function (t) {
+ return (--t)*t*t+1;
+ }
+});
+
+
+})( jQuery, window, document );
diff --git a/assets/semantic/src/definitions/modules/toast.less b/assets/semantic/src/definitions/modules/toast.less
new file mode 100644
index 0000000..b0fcf2b
--- /dev/null
+++ b/assets/semantic/src/definitions/modules/toast.less
@@ -0,0 +1,590 @@
+/*!
+ * # Fomantic-UI - Toast
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'module';
+@element : 'toast';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Toast container
+*******************************/
+
+.ui.toast-container {
+ position: fixed;
+ z-index: 9999;
+ &.top when (@variationToastTop) {
+ &.right when (@variationToastRight) {
+ top: @toastContainerDistance;
+ right: @toastContainerDistance;
+ margin-left: @toastContainerDistance;
+ }
+ &.left when (@variationToastLeft) {
+ top: @toastContainerDistance;
+ left: @toastContainerDistance;
+ margin-right: @toastContainerDistance;
+ }
+ &.center when (@variationToastCenter) {
+ left: 50%;
+ transform: translate(-50%, 0);
+ top: @toastContainerDistance;
+ }
+ }
+ &.bottom when (@variationToastBottom) {
+ &.right when (@variationToastRight) {
+ bottom: @toastContainerDistance;
+ right: @toastContainerDistance;
+ margin-left: @toastContainerDistance;
+ }
+ &.left when (@variationToastLeft) {
+ bottom: @toastContainerDistance;
+ left: @toastContainerDistance;
+ margin-right: @toastContainerDistance;
+ }
+ &.center when (@variationToastCenter) {
+ left: 50%;
+ transform: translate(-50%, 0);
+ bottom: @toastContainerDistance;
+ }
+ }
+ & .visible.toast-box,
+ .animating.toast-box,
+ .toast-box {
+ display: table !important;
+ }
+ & .toast-box {
+ margin-bottom: @toastBoxMarginBottom;
+ border-radius: @defaultBorderRadius;
+ cursor: default;
+ &:hover {
+ opacity: @toastOpacityOnHover;
+ }
+ &:not(.unclickable):hover {
+ cursor: @toastCursorOnHover;
+ }
+ & when (@variationToastFloating) {
+ &.floating,
+ &.hoverfloating:hover {
+ box-shadow: @floatingShadow;
+ border: @toastBoxBorder;
+ }
+ }
+ &.compact,
+ > .compact {
+ width: @toastWidth;
+ }
+ & > .ui.toast,
+ > .ui.message {
+ margin: @toastMargin;
+ position: relative;
+ }
+ & > .attached.progress when (@variationToastProgress) {
+ z-index:1;
+ &.bottom {
+ margin: @toastMarginProgress -@toastLeftRightMargin @toastMarginBottom;
+ }
+ &.top {
+ margin: @toastMarginBottom -@toastLeftRightMargin @toastMarginProgress;
+ }
+ & .bar {
+ min-width: 0;
+ }
+ &.info .bar.bar.bar {
+ background: @toastInfoProgressColor;
+ }
+ &.warning .bar.bar.bar {
+ background: @toastWarningProgressColor;
+ }
+ &.success .bar.bar.bar {
+ background: @toastSuccessProgressColor;
+ }
+ &.error .bar.bar.bar {
+ background: @toastErrorProgressColor;
+ }
+ &.neutral .bar.bar.bar {
+ background: @toastNeutralProgressColor;
+ }
+ }
+ & > .ui.message when (@variationToastMessage) {
+ & > .close.icon when (@variationToastClose){
+ top: @toastCloseTopDistance;
+ right: @toastCloseRightDistance;
+ }
+ & > .actions:last-child when (@variationToastActions) {
+ margin-bottom: @toastActionMargin;
+ }
+ &.icon when (@variationToastIcon) {
+ align-items: inherit;
+ & > :not(.icon):not(.actions) {
+ padding-left: @toastIconMessageContentPadding;
+ }
+ & > i.icon:not(.close) when (@variationToastIcon) {
+ display: inline-block;
+ position: absolute;
+ width: @toastIconMessageWidth;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+ &:not(.vertical) {
+ &.actions > i.icon:not(.close) when (@variationToastActions) and (@variationToastIcon) {
+ top: e(%("calc(50%% - %d)", @toastIconCenteredAdjustment));
+ transform: none;
+ }
+ &.icon.icon.icon when (@variationToastIcon){
+ display: block;
+ }
+ }
+ }
+ }
+ & .ui.toast {
+ & > .close.icon when (@variationToastClose){
+ cursor: pointer;
+ margin: 0;
+ opacity: @toastCloseOpacity;
+ transition: @toastCloseTransition;
+ &:hover {
+ opacity: 1;
+ }
+ }
+ &.vertical > .close.icon when (@variationToastVertical) and (@variationToastClose) {
+ margin-top: -@toastCloseTopDistance;
+ margin-right: -@toastCloseTopDistance;
+ }
+ &:not(.vertical) > .close.icon when (@variationToastClose) {
+ position: absolute;
+ top: @toastCloseTopDistance;
+ &:not(.left) {
+ right: @toastCloseRightDistance;
+ }
+ &.left {
+ margin-left: -@toastCloseRightDistance;
+ }
+ }
+ }
+ & .ui.card when (@variationToastCard) {
+ margin:0;
+ &.attached:not(.vertical) when (@variationToastAttached) {
+ &.bottom {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ &.horizontal {
+ & > .image > img {
+ border-top-left-radius: 0;
+ }
+ & > .image:last-child > img {
+ border-top-right-radius: 0;
+ }
+ }
+ }
+ &.top {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ &.horizontal {
+ & > .image > img {
+ border-bottom-left-radius: 0;
+ }
+ & > .image:last-child > img {
+ border-bottom-right-radius: 0;
+ }
+ }
+ }
+ }
+ &.horizontal.actions when (@variationToastActions) {
+ & > .image > img {
+ border-bottom-left-radius: 0;
+ }
+ & > .image:last-child > img {
+ border-bottom-right-radius: 0;
+ }
+ }
+ }
+ & .progressing {
+ animation-iteration-count: 1;
+ animation-timing-function: linear;
+ & when (@variationToastProgress) {
+ &.up {
+ animation-name: progressUp;
+ }
+ &.down {
+ animation-name: progressDown;
+ }
+ }
+ &.wait {
+ animation-name: progressWait;
+ }
+ }
+ &:hover .pausable.progressing {
+ animation-play-state: paused;
+ }
+ & .ui.toast:not(.vertical) {
+ display:block;
+ }
+ & :not(.comment) {
+ &:not(.card) .actions when (@variationToastActions) {
+ margin: @toastActionMarginTop @toastActionMargin @toastActionMargin @toastActionMargin;
+ }
+ & .actions when (@variationToastActions) {
+ padding: @toastActionPadding @toastActionPadding @toastActionPaddingBottom @toastActionPadding;
+ text-align: right;
+ &.attached:not(.vertical) when (@variationToastAttached) {
+ margin-right: @toastLeftRightMargin;
+ }
+ &:not(.basic):not(.attached) {
+ background: @toastActionBackground;
+ border-top: @toastActionBorder;
+ }
+ &.left {
+ text-align: left;
+ }
+ }
+ }
+ & when (@variationToastVertical) {
+ & .vertical.actions > .button,
+ & > .vertical > .vertical.vertical,
+ & > .vertical.vertical.vertical {
+ display: flex;
+ }
+ }
+ & :not(.comment) .vertical.actions when (@variationToastVertical) and (@variationToastActions) {
+ flex-direction: column;
+ & > .button {
+ justify-content: center;
+ }
+ &.attached > .button when (@variationToastAttached) {
+ align-items: center;
+ }
+ &:not(.attached) {
+ border-top: 0;
+ margin-top: -@toastActionPaddingBottom;
+ margin-bottom: -@toastActionPaddingBottom;
+ margin-left: @toastActionMarginLeft;
+ justify-content: space-around;
+ &:not(.basic) {
+ border-left: @toastActionBorder;
+ }
+ & > .button:not(:last-child) {
+ margin-bottom: @toastActionMarginBottom;
+ }
+ &.top {
+ justify-content: flex-start;
+ }
+ &.bottom {
+ justify-content: flex-end;
+ }
+ }
+ }
+ }
+}
+
+.ui.vertical.attached when (@variationToastVertical) and (@variationToastAttached) {
+ &:not(.left) {
+ &.card when (@variationToastCard) {
+ & > .image > img {
+ border-top-right-radius: 0;
+ }
+ &.horizontal > .image:last-child > img {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+ &.card,
+ &.toast {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ &.actions when (@variationToastActions) {
+ border-top-right-radius: @toastBorderRadius;
+ border-bottom-right-radius: @toastBorderRadius;
+ & .button:first-child,
+ .button:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+ &.message when (@variationToastMessage) {
+ border-top-right-radius: 0;
+ border-bottom-left-radius: @toastBorderRadius;
+ }
+ }
+ &.left {
+ &.card when (@variationToastCard) {
+ & > .image > img {
+ border-top-left-radius: 0;
+ }
+ &.horizontal > .image > img {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+ &.card,
+ &.toast {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ &.actions when (@variationToastActions) {
+ border-top-left-radius: @toastBorderRadius;
+ border-bottom-left-radius: @toastBorderRadius;
+ & .button:first-child,
+ .button:last-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ & .button:not(:first-child):not(:last-child) {
+ margin-left: -@toastLeftRightMargin;
+ }
+ }
+ &.message.message.message when (@variationToastMessage) {
+ border-top-right-radius: @toastBorderRadius;
+ border-bottom-right-radius: @toastBorderRadius;
+ }
+ }
+}
+
+.ui.attached:not(.vertical) when (@variationToastAttached) {
+ &:not(.top) {
+ &.actions when (@variationToastActions) {
+ border-bottom-left-radius: @toastBorderRadius;
+ border-bottom-right-radius: @toastBorderRadius;
+ & .button:first-child {
+ border-bottom-left-radius: @toastBorderRadius;
+ }
+ & .button:last-child {
+ border-bottom-right-radius: @toastBorderRadius;
+ }
+ }
+ }
+ &.top {
+ &.actions when (@variationToastActions) {
+ border-top-left-radius: @toastBorderRadius;
+ border-top-right-radius: @toastBorderRadius;
+ & .button:first-child {
+ border-top-left-radius: @toastBorderRadius;
+ }
+ & .button:last-child {
+ border-top-right-radius: @toastBorderRadius;
+ }
+ }
+ }
+}
+
+/*******************************
+ Toast
+*******************************/
+
+.ui.toast {
+ display: none;
+ border-radius: @defaultBorderRadius;
+ padding: @toastPadding;
+ margin: @toastMargin;
+ color: @toastInvertedTextColor;
+ background-color: @toastNeutralColor;
+ & > .content > .header {
+ font-weight: bold;
+ color: inherit;
+ margin:0;
+ }
+ &.info when (@variationToastInfo) {
+ background-color: @toastInfoColor;
+ color: @toastTextColor;
+ }
+ &.warning when (@variationToastWarning) {
+ background-color: @toastWarningColor;
+ color: @toastTextColor;
+ }
+ &.success when (@variationToastSuccess) {
+ background-color: @toastSuccessColor;
+ color: @toastTextColor;
+ }
+ &.error when (@variationToastError) {
+ background-color: @toastErrorColor;
+ color: @toastTextColor;
+ }
+ &.neutral {
+ background-color: @toastNeutralColor;
+ color: @toastNeutralTextColor;
+ }
+ & > i.icon:not(.close) when (@variationToastIcon) {
+ font-size: @toastIconFontSize;
+ }
+ &:not(.vertical) {
+ & > i.icon:not(.close) when (@variationToastIcon) {
+ position: absolute;
+ & + .content {
+ padding-left: @toastIconContentPadding;
+ }
+ }
+ & > .close.icon + .content when (@variationToastClose){
+ padding-left: @toastCloseDistance;
+ }
+ & > .ui.image when (@variationToastImage) {
+ position: absolute;
+ &.avatar + .content {
+ padding-left: @toastAvatarImageContentPadding;
+ min-height: @toastAvatarImageHeight;
+ }
+ &.mini + .content {
+ padding-left: @toastMiniImageContentPadding;
+ min-height: @toastMiniImageHeight;
+ }
+ &.tiny + .content {
+ padding-left: @toastTinyImageContentPadding;
+ min-height: @toastTinyImageHeight;
+ }
+ &.small + .content {
+ padding-left: @toastSmallImageContentPadding;
+ min-height: @toastSmallImageHeight;
+ }
+ }
+ & when (@variationToastImage) or (@variationToastIcon) {
+ & > .centered.image,
+ > .centered.icon {
+ transform: translateY(-50%);
+ top: 50%;
+ }
+ }
+ &.actions > .centered.image when (@variationToastActions) and (@variationToastImage) {
+ top: e(%("calc(50%% - %d)", @toastImageCenteredAdjustment));
+ }
+ &.actions > .centered.icon when (@variationToastActions) and (@variationToastIcon) {
+ top: e(%("calc(50%% - %d)", @toastIconCenteredAdjustment));
+ }
+ }
+ &.vertical when (@variationToastVertical) {
+ & > .close.icon + .content when (@variationToastClose){
+ padding-left: @toastCloseDistanceVertical;
+ }
+ & when (@variationToastImage) or (@variationToastIcon) {
+ & > .ui.image + .content,
+ > i.icon:not(.close) + .content {
+ padding-left: @toastImageContentPadding;
+ }
+ }
+ & > .ui.image when (@variationToastImage){
+ align-self: flex-start;
+ flex-shrink:0; /* IE11 fix */
+ }
+ & when (@variationToastImage) or (@variationToastIcon) {
+ & > .centered.image,
+ > .centered.icon {
+ align-self: center;
+ }
+ }
+ }
+
+ &.attached when (@variationToastAttached) {
+ &.bottom {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ &.top {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+}
+
+
+.ui.hoverfloating.message:hover when (@variationToastMessage) and (@variationToastFloating) {
+ box-shadow: 0 0 0 1px inset, @floatingShadow;
+}
+
+.ui.center.toast-container .toast-box,
+.ui.right.toast-container .toast-box {
+ margin-left: auto;
+}
+
+.ui.center.toast-container .toast-box {
+ margin-right: auto;
+}
+
+/*--------------
+ Colors
+-------------- */
+
+each(@colors, {
+ @color: replace(@key, '@', '');
+ @c: @colors[@@color][color];
+ @l: @colors[@@color][light];
+
+ .ui.@{color}.toast {
+ background-color: @c;
+ color: @toastTextColor;
+ }
+ & when (@variationToastInverted) {
+ .ui.inverted.@{color}.toast,
+ .ui.toast-container .toast-box > .inverted.@{color}.attached.progress .bar {
+ background-color: @l;
+ color: @toastInvertedTextColor;
+ }
+ }
+})
+
+& when (@variationToastInverted) {
+ .ui.inverted.toast {
+ color: @toastTextColor;
+ background-color: @toastInvertedColor;
+ }
+}
+
+@media only screen and (max-width: @mobileToastBreakpoint) {
+ .ui.toast-container .toast-box {
+ &.toast-box,
+ & > .compact,
+ & > .vertical > *,
+ & > * {
+ width: auto;
+ max-width: 100%;
+ }
+ & > *:not(.vertical) {
+ min-width: @mobileWidth;
+ }
+ & when (@variationToastCard) {
+ & > .ui.card.horizontal,
+ > .vertical > .ui.horizontal.card {
+ min-width: initial;
+ }
+ }
+ }
+}
+
+/*---------------
+ Progress Bar
+ ----------------*/
+& when (@variationToastProgress) {
+ @keyframes progressDown {
+ 0% {
+ width: 100%;
+ }
+ 100% {
+ width: 0;
+ }
+ }
+ @keyframes progressUp {
+ 0% {
+ width: 0;
+ }
+ 100% {
+ width: 100%;
+ }
+ }
+}
+@keyframes progressWait {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
diff --git a/assets/semantic/src/definitions/modules/transition.js b/assets/semantic/src/definitions/modules/transition.js
new file mode 100644
index 0000000..36b2bb6
--- /dev/null
+++ b/assets/semantic/src/definitions/modules/transition.js
@@ -0,0 +1,1109 @@
+/*!
+ * # Fomantic-UI - Transition
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+;(function ($, window, document, undefined) {
+
+'use strict';
+
+$.isFunction = $.isFunction || function(obj) {
+ return typeof obj === "function" && typeof obj.nodeType !== "number";
+};
+
+window = (typeof window != 'undefined' && window.Math == Math)
+ ? window
+ : (typeof self != 'undefined' && self.Math == Math)
+ ? self
+ : Function('return this')()
+;
+
+$.fn.transition = function() {
+ var
+ $allModules = $(this),
+ moduleSelector = $allModules.selector || '',
+
+ time = new Date().getTime(),
+ performance = [],
+
+ moduleArguments = arguments,
+ query = moduleArguments[0],
+ queryArguments = [].slice.call(arguments, 1),
+ methodInvoked = (typeof query === 'string'),
+
+ returnedValue
+ ;
+ $allModules
+ .each(function(index) {
+ var
+ $module = $(this),
+ element = this,
+
+ // set at run time
+ settings,
+ instance,
+
+ error,
+ className,
+ metadata,
+ animationEnd,
+
+ moduleNamespace,
+ eventNamespace,
+ module
+ ;
+
+ module = {
+
+ initialize: function() {
+
+ // get full settings
+ settings = module.get.settings.apply(element, moduleArguments);
+
+ // shorthand
+ className = settings.className;
+ error = settings.error;
+ metadata = settings.metadata;
+
+ // define namespace
+ eventNamespace = '.' + settings.namespace;
+ moduleNamespace = 'module-' + settings.namespace;
+ instance = $module.data(moduleNamespace) || module;
+
+ // get vendor specific events
+ animationEnd = module.get.animationEndEvent();
+
+ if(methodInvoked) {
+ methodInvoked = module.invoke(query);
+ }
+
+ // method not invoked, lets run an animation
+ if(methodInvoked === false) {
+ module.verbose('Converted arguments into settings object', settings);
+ if(settings.interval) {
+ module.delay(settings.animate);
+ }
+ else {
+ module.animate();
+ }
+ module.instantiate();
+ }
+ },
+
+ instantiate: function() {
+ module.verbose('Storing instance of module', module);
+ instance = module;
+ $module
+ .data(moduleNamespace, instance)
+ ;
+ },
+
+ destroy: function() {
+ module.verbose('Destroying previous module for', element);
+ $module
+ .removeData(moduleNamespace)
+ ;
+ },
+
+ refresh: function() {
+ module.verbose('Refreshing display type on next animation');
+ delete module.displayType;
+ },
+
+ forceRepaint: function() {
+ module.verbose('Forcing element repaint');
+ var
+ $parentElement = $module.parent(),
+ $nextElement = $module.next()
+ ;
+ if($nextElement.length === 0) {
+ $module.detach().appendTo($parentElement);
+ }
+ else {
+ $module.detach().insertBefore($nextElement);
+ }
+ },
+
+ repaint: function() {
+ module.verbose('Repainting element');
+ var
+ fakeAssignment = element.offsetWidth
+ ;
+ },
+
+ delay: function(interval) {
+ var
+ direction = module.get.animationDirection(),
+ shouldReverse,
+ delay
+ ;
+ if(!direction) {
+ direction = module.can.transition()
+ ? module.get.direction()
+ : 'static'
+ ;
+ }
+ interval = (interval !== undefined)
+ ? interval
+ : settings.interval
+ ;
+ shouldReverse = (settings.reverse == 'auto' && direction == className.outward);
+ delay = (shouldReverse || settings.reverse == true)
+ ? ($allModules.length - index) * settings.interval
+ : index * settings.interval
+ ;
+ module.debug('Delaying animation by', delay);
+ setTimeout(module.animate, delay);
+ },
+
+ animate: function(overrideSettings) {
+ settings = overrideSettings || settings;
+ if(!module.is.supported()) {
+ module.error(error.support);
+ return false;
+ }
+ module.debug('Preparing animation', settings.animation);
+ if(module.is.animating()) {
+ if(settings.queue) {
+ if(!settings.allowRepeats && module.has.direction() && module.is.occurring() && module.queuing !== true) {
+ module.debug('Animation is currently occurring, preventing queueing same animation', settings.animation);
+ }
+ else {
+ module.queue(settings.animation);
+ }
+ return false;
+ }
+ else if(!settings.allowRepeats && module.is.occurring()) {
+ module.debug('Animation is already occurring, will not execute repeated animation', settings.animation);
+ return false;
+ }
+ else {
+ module.debug('New animation started, completing previous early', settings.animation);
+ instance.complete();
+ }
+ }
+ if( module.can.animate() ) {
+ module.set.animating(settings.animation);
+ }
+ else {
+ module.error(error.noAnimation, settings.animation, element);
+ }
+ },
+
+ reset: function() {
+ module.debug('Resetting animation to beginning conditions');
+ module.remove.animationCallbacks();
+ module.restore.conditions();
+ module.remove.animating();
+ },
+
+ queue: function(animation) {
+ module.debug('Queueing animation of', animation);
+ module.queuing = true;
+ $module
+ .one(animationEnd + '.queue' + eventNamespace, function() {
+ module.queuing = false;
+ module.repaint();
+ module.animate.apply(this, settings);
+ })
+ ;
+ },
+
+ complete: function (event) {
+ if(event && event.target === element) {
+ event.stopPropagation();
+ }
+ module.debug('Animation complete', settings.animation);
+ module.remove.completeCallback();
+ module.remove.failSafe();
+ if(!module.is.looping()) {
+ if( module.is.outward() ) {
+ module.verbose('Animation is outward, hiding element');
+ module.restore.conditions();
+ module.hide();
+ }
+ else if( module.is.inward() ) {
+ module.verbose('Animation is outward, showing element');
+ module.restore.conditions();
+ module.show();
+ }
+ else {
+ module.verbose('Static animation completed');
+ module.restore.conditions();
+ settings.onComplete.call(element);
+ }
+ }
+ },
+
+ force: {
+ visible: function() {
+ var
+ style = $module.attr('style'),
+ userStyle = module.get.userStyle(style),
+ displayType = module.get.displayType(),
+ overrideStyle = userStyle + 'display: ' + displayType + ' !important;',
+ inlineDisplay = $module[0].style.display,
+ mustStayHidden = !displayType || (inlineDisplay === 'none' && settings.skipInlineHidden) || $module[0].tagName.match(/(script|link|style)/i)
+ ;
+ if (mustStayHidden){
+ module.remove.transition();
+ return false;
+ }
+ module.verbose('Overriding default display to show element', displayType);
+ $module
+ .attr('style', overrideStyle)
+ ;
+ return true;
+ },
+ hidden: function() {
+ var
+ style = $module.attr('style'),
+ currentDisplay = $module.css('display'),
+ emptyStyle = (style === undefined || style === '')
+ ;
+ if(currentDisplay !== 'none' && !module.is.hidden()) {
+ module.verbose('Overriding default display to hide element');
+ $module
+ .css('display', 'none')
+ ;
+ }
+ else if(emptyStyle) {
+ $module
+ .removeAttr('style')
+ ;
+ }
+ }
+ },
+
+ has: {
+ direction: function(animation) {
+ var
+ hasDirection = false
+ ;
+ animation = animation || settings.animation;
+ if(typeof animation === 'string') {
+ animation = animation.split(' ');
+ $.each(animation, function(index, word){
+ if(word === className.inward || word === className.outward) {
+ hasDirection = true;
+ }
+ });
+ }
+ return hasDirection;
+ },
+ inlineDisplay: function() {
+ var
+ style = $module.attr('style') || ''
+ ;
+ return Array.isArray(style.match(/display.*?;/, ''));
+ }
+ },
+
+ set: {
+ animating: function(animation) {
+ // remove previous callbacks
+ module.remove.completeCallback();
+
+ // determine exact animation
+ animation = animation || settings.animation;
+ var animationClass = module.get.animationClass(animation);
+
+ // save animation class in cache to restore class names
+ module.save.animation(animationClass);
+
+ if(module.force.visible()) {
+ module.remove.hidden();
+ module.remove.direction();
+
+ module.start.animation(animationClass);
+ }
+ },
+ duration: function(animationName, duration) {
+ duration = duration || settings.duration;
+ duration = (typeof duration == 'number')
+ ? duration + 'ms'
+ : duration
+ ;
+ if(duration || duration === 0) {
+ module.verbose('Setting animation duration', duration);
+ $module
+ .css({
+ 'animation-duration': duration
+ })
+ ;
+ }
+ },
+ direction: function(direction) {
+ direction = direction || module.get.direction();
+ if(direction == className.inward) {
+ module.set.inward();
+ }
+ else {
+ module.set.outward();
+ }
+ },
+ looping: function() {
+ module.debug('Transition set to loop');
+ $module
+ .addClass(className.looping)
+ ;
+ },
+ hidden: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.hidden)
+ ;
+ },
+ inward: function() {
+ module.debug('Setting direction to inward');
+ $module
+ .removeClass(className.outward)
+ .addClass(className.inward)
+ ;
+ },
+ outward: function() {
+ module.debug('Setting direction to outward');
+ $module
+ .removeClass(className.inward)
+ .addClass(className.outward)
+ ;
+ },
+ visible: function() {
+ $module
+ .addClass(className.transition)
+ .addClass(className.visible)
+ ;
+ }
+ },
+
+ start: {
+ animation: function(animationClass) {
+ animationClass = animationClass || module.get.animationClass();
+ module.debug('Starting tween', animationClass);
+ $module
+ .addClass(animationClass)
+ .one(animationEnd + '.complete' + eventNamespace, module.complete)
+ ;
+ if(settings.useFailSafe) {
+ module.add.failSafe();
+ }
+ module.set.duration(settings.duration);
+ settings.onStart.call(element);
+ }
+ },
+
+ save: {
+ animation: function(animation) {
+ if(!module.cache) {
+ module.cache = {};
+ }
+ module.cache.animation = animation;
+ },
+ displayType: function(displayType) {
+ if(displayType !== 'none') {
+ $module.data(metadata.displayType, displayType);
+ }
+ },
+ transitionExists: function(animation, exists) {
+ $.fn.transition.exists[animation] = exists;
+ module.verbose('Saving existence of transition', animation, exists);
+ }
+ },
+
+ restore: {
+ conditions: function() {
+ var
+ animation = module.get.currentAnimation()
+ ;
+ if(animation) {
+ $module
+ .removeClass(animation)
+ ;
+ module.verbose('Removing animation class', module.cache);
+ }
+ module.remove.duration();
+ }
+ },
+
+ add: {
+ failSafe: function() {
+ var
+ duration = module.get.duration()
+ ;
+ module.timer = setTimeout(function() {
+ $module.triggerHandler(animationEnd);
+ }, duration + settings.failSafeDelay);
+ module.verbose('Adding fail safe timer', module.timer);
+ }
+ },
+
+ remove: {
+ animating: function() {
+ $module.removeClass(className.animating);
+ },
+ animationCallbacks: function() {
+ module.remove.queueCallback();
+ module.remove.completeCallback();
+ },
+ queueCallback: function() {
+ $module.off('.queue' + eventNamespace);
+ },
+ completeCallback: function() {
+ $module.off('.complete' + eventNamespace);
+ },
+ display: function() {
+ $module.css('display', '');
+ },
+ direction: function() {
+ $module
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ ;
+ },
+ duration: function() {
+ $module
+ .css('animation-duration', '')
+ ;
+ },
+ failSafe: function() {
+ module.verbose('Removing fail safe timer', module.timer);
+ if(module.timer) {
+ clearTimeout(module.timer);
+ }
+ },
+ hidden: function() {
+ $module.removeClass(className.hidden);
+ },
+ visible: function() {
+ $module.removeClass(className.visible);
+ },
+ looping: function() {
+ module.debug('Transitions are no longer looping');
+ if( module.is.looping() ) {
+ module.reset();
+ $module
+ .removeClass(className.looping)
+ ;
+ }
+ },
+ transition: function() {
+ $module
+ .removeClass(className.transition)
+ .removeClass(className.visible)
+ .removeClass(className.hidden)
+ ;
+ }
+ },
+ get: {
+ settings: function(animation, duration, onComplete) {
+ // single settings object
+ if(typeof animation == 'object') {
+ return $.extend(true, {}, $.fn.transition.settings, animation);
+ }
+ // all arguments provided
+ else if(typeof onComplete == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ onComplete : onComplete,
+ duration : duration
+ });
+ }
+ // only duration provided
+ else if(typeof duration == 'string' || typeof duration == 'number') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ duration : duration
+ });
+ }
+ // duration is actually settings object
+ else if(typeof duration == 'object') {
+ return $.extend({}, $.fn.transition.settings, duration, {
+ animation : animation
+ });
+ }
+ // duration is actually callback
+ else if(typeof duration == 'function') {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation,
+ onComplete : duration
+ });
+ }
+ // only animation provided
+ else {
+ return $.extend({}, $.fn.transition.settings, {
+ animation : animation
+ });
+ }
+ },
+ animationClass: function(animation) {
+ var
+ animationClass = animation || settings.animation,
+ directionClass = (module.can.transition() && !module.has.direction())
+ ? module.get.direction() + ' '
+ : ''
+ ;
+ return className.animating + ' '
+ + className.transition + ' '
+ + directionClass
+ + animationClass
+ ;
+ },
+ currentAnimation: function() {
+ return (module.cache && module.cache.animation !== undefined)
+ ? module.cache.animation
+ : false
+ ;
+ },
+ currentDirection: function() {
+ return module.is.inward()
+ ? className.inward
+ : className.outward
+ ;
+ },
+ direction: function() {
+ return module.is.hidden() || !module.is.visible()
+ ? className.inward
+ : className.outward
+ ;
+ },
+ animationDirection: function(animation) {
+ var
+ direction
+ ;
+ animation = animation || settings.animation;
+ if(typeof animation === 'string') {
+ animation = animation.split(' ');
+ // search animation name for out/in class
+ $.each(animation, function(index, word){
+ if(word === className.inward) {
+ direction = className.inward;
+ }
+ else if(word === className.outward) {
+ direction = className.outward;
+ }
+ });
+ }
+ // return found direction
+ if(direction) {
+ return direction;
+ }
+ return false;
+ },
+ duration: function(duration) {
+ duration = duration || settings.duration;
+ if(duration === false) {
+ duration = $module.css('animation-duration') || 0;
+ }
+ return (typeof duration === 'string')
+ ? (duration.indexOf('ms') > -1)
+ ? parseFloat(duration)
+ : parseFloat(duration) * 1000
+ : duration
+ ;
+ },
+ displayType: function(shouldDetermine) {
+ shouldDetermine = (shouldDetermine !== undefined)
+ ? shouldDetermine
+ : true
+ ;
+ if(settings.displayType) {
+ return settings.displayType;
+ }
+ if(shouldDetermine && $module.data(metadata.displayType) === undefined) {
+ var currentDisplay = $module.css('display');
+ if(currentDisplay === '' || currentDisplay === 'none'){
+ // create fake element to determine display state
+ module.can.transition(true);
+ } else {
+ module.save.displayType(currentDisplay);
+ }
+ }
+ return $module.data(metadata.displayType);
+ },
+ userStyle: function(style) {
+ style = style || $module.attr('style') || '';
+ return style.replace(/display.*?;/, '');
+ },
+ transitionExists: function(animation) {
+ return $.fn.transition.exists[animation];
+ },
+ animationStartEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationstart',
+ 'OAnimation' :'oAnimationStart',
+ 'MozAnimation' :'mozAnimationStart',
+ 'WebkitAnimation' :'webkitAnimationStart'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ return animations[animation];
+ }
+ }
+ return false;
+ },
+ animationEndEvent: function() {
+ var
+ element = document.createElement('div'),
+ animations = {
+ 'animation' :'animationend',
+ 'OAnimation' :'oAnimationEnd',
+ 'MozAnimation' :'mozAnimationEnd',
+ 'WebkitAnimation' :'webkitAnimationEnd'
+ },
+ animation
+ ;
+ for(animation in animations){
+ if( element.style[animation] !== undefined ){
+ return animations[animation];
+ }
+ }
+ return false;
+ }
+
+ },
+
+ can: {
+ transition: function(forced) {
+ var
+ animation = settings.animation,
+ transitionExists = module.get.transitionExists(animation),
+ displayType = module.get.displayType(false),
+ elementClass,
+ tagName,
+ $clone,
+ currentAnimation,
+ inAnimation,
+ directionExists
+ ;
+ if( transitionExists === undefined || forced) {
+ module.verbose('Determining whether animation exists');
+ elementClass = $module.attr('class');
+ tagName = $module.prop('tagName');
+
+ $clone = $('<' + tagName + ' />').addClass( elementClass ).insertAfter($module);
+ currentAnimation = $clone
+ .addClass(animation)
+ .removeClass(className.inward)
+ .removeClass(className.outward)
+ .addClass(className.animating)
+ .addClass(className.transition)
+ .css('animationName')
+ ;
+ inAnimation = $clone
+ .addClass(className.inward)
+ .css('animationName')
+ ;
+ if(!displayType) {
+ displayType = $clone
+ .attr('class', elementClass)
+ .removeAttr('style')
+ .removeClass(className.hidden)
+ .removeClass(className.visible)
+ .show()
+ .css('display')
+ ;
+ module.verbose('Determining final display state', displayType);
+ module.save.displayType(displayType);
+ }
+
+ $clone.remove();
+ if(currentAnimation != inAnimation) {
+ module.debug('Direction exists for animation', animation);
+ directionExists = true;
+ }
+ else if(currentAnimation == 'none' || !currentAnimation) {
+ module.debug('No animation defined in css', animation);
+ return;
+ }
+ else {
+ module.debug('Static animation found', animation, displayType);
+ directionExists = false;
+ }
+ module.save.transitionExists(animation, directionExists);
+ }
+ return (transitionExists !== undefined)
+ ? transitionExists
+ : directionExists
+ ;
+ },
+ animate: function() {
+ // can transition does not return a value if animation does not exist
+ return (module.can.transition() !== undefined);
+ }
+ },
+
+ is: {
+ animating: function() {
+ return $module.hasClass(className.animating);
+ },
+ inward: function() {
+ return $module.hasClass(className.inward);
+ },
+ outward: function() {
+ return $module.hasClass(className.outward);
+ },
+ looping: function() {
+ return $module.hasClass(className.looping);
+ },
+ occurring: function(animation) {
+ animation = animation || settings.animation;
+ animation = '.' + animation.replace(' ', '.');
+ return ( $module.filter(animation).length > 0 );
+ },
+ visible: function() {
+ return $module.is(':visible');
+ },
+ hidden: function() {
+ return $module.css('visibility') === 'hidden';
+ },
+ supported: function() {
+ return(animationEnd !== false);
+ }
+ },
+
+ hide: function() {
+ module.verbose('Hiding element');
+ if( module.is.animating() ) {
+ module.reset();
+ }
+ element.blur(); // IE will trigger focus change if element is not blurred before hiding
+ module.remove.display();
+ module.remove.visible();
+ if($.isFunction(settings.onBeforeHide)){
+ settings.onBeforeHide.call(element,function(){
+ module.hideNow();
+ });
+ } else {
+ module.hideNow();
+ }
+
+ },
+
+ hideNow: function() {
+ module.set.hidden();
+ module.force.hidden();
+ settings.onHide.call(element);
+ settings.onComplete.call(element);
+ // module.repaint();
+ },
+
+ show: function(display) {
+ module.verbose('Showing element', display);
+ if(module.force.visible()) {
+ module.remove.hidden();
+ module.set.visible();
+ settings.onShow.call(element);
+ settings.onComplete.call(element);
+ // module.repaint();
+ }
+ },
+
+ toggle: function() {
+ if( module.is.visible() ) {
+ module.hide();
+ }
+ else {
+ module.show();
+ }
+ },
+
+ stop: function() {
+ module.debug('Stopping current animation');
+ $module.triggerHandler(animationEnd);
+ },
+
+ stopAll: function() {
+ module.debug('Stopping all animation');
+ module.remove.queueCallback();
+ $module.triggerHandler(animationEnd);
+ },
+
+ clear: {
+ queue: function() {
+ module.debug('Clearing animation queue');
+ module.remove.queueCallback();
+ }
+ },
+
+ enable: function() {
+ module.verbose('Starting animation');
+ $module.removeClass(className.disabled);
+ },
+
+ disable: function() {
+ module.debug('Stopping animation');
+ $module.addClass(className.disabled);
+ },
+
+ setting: function(name, value) {
+ module.debug('Changing setting', name, value);
+ if( $.isPlainObject(name) ) {
+ $.extend(true, settings, name);
+ }
+ else if(value !== undefined) {
+ if($.isPlainObject(settings[name])) {
+ $.extend(true, settings[name], value);
+ }
+ else {
+ settings[name] = value;
+ }
+ }
+ else {
+ return settings[name];
+ }
+ },
+ internal: function(name, value) {
+ if( $.isPlainObject(name) ) {
+ $.extend(true, module, name);
+ }
+ else if(value !== undefined) {
+ module[name] = value;
+ }
+ else {
+ return module[name];
+ }
+ },
+ debug: function() {
+ if(!settings.silent && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.debug.apply(console, arguments);
+ }
+ }
+ },
+ verbose: function() {
+ if(!settings.silent && settings.verbose && settings.debug) {
+ if(settings.performance) {
+ module.performance.log(arguments);
+ }
+ else {
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
+ module.verbose.apply(console, arguments);
+ }
+ }
+ },
+ error: function() {
+ if(!settings.silent) {
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
+ module.error.apply(console, arguments);
+ }
+ },
+ performance: {
+ log: function(message) {
+ var
+ currentTime,
+ executionTime,
+ previousTime
+ ;
+ if(settings.performance) {
+ currentTime = new Date().getTime();
+ previousTime = time || currentTime;
+ executionTime = currentTime - previousTime;
+ time = currentTime;
+ performance.push({
+ 'Name' : message[0],
+ 'Arguments' : [].slice.call(message, 1) || '',
+ 'Element' : element,
+ 'Execution Time' : executionTime
+ });
+ }
+ clearTimeout(module.performance.timer);
+ module.performance.timer = setTimeout(module.performance.display, 500);
+ },
+ display: function() {
+ var
+ title = settings.name + ':',
+ totalTime = 0
+ ;
+ time = false;
+ clearTimeout(module.performance.timer);
+ $.each(performance, function(index, data) {
+ totalTime += data['Execution Time'];
+ });
+ title += ' ' + totalTime + 'ms';
+ if(moduleSelector) {
+ title += ' \'' + moduleSelector + '\'';
+ }
+ if($allModules.length > 1) {
+ title += ' ' + '(' + $allModules.length + ')';
+ }
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
+ console.groupCollapsed(title);
+ if(console.table) {
+ console.table(performance);
+ }
+ else {
+ $.each(performance, function(index, data) {
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
+ });
+ }
+ console.groupEnd();
+ }
+ performance = [];
+ }
+ },
+ // modified for transition to return invoke success
+ invoke: function(query, passedArguments, context) {
+ var
+ object = instance,
+ maxDepth,
+ found,
+ response
+ ;
+ passedArguments = passedArguments || queryArguments;
+ context = element || context;
+ if(typeof query == 'string' && object !== undefined) {
+ query = query.split(/[\. ]/);
+ maxDepth = query.length - 1;
+ $.each(query, function(depth, value) {
+ var camelCaseValue = (depth != maxDepth)
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
+ : query
+ ;
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
+ object = object[camelCaseValue];
+ }
+ else if( object[camelCaseValue] !== undefined ) {
+ found = object[camelCaseValue];
+ return false;
+ }
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
+ object = object[value];
+ }
+ else if( object[value] !== undefined ) {
+ found = object[value];
+ return false;
+ }
+ else {
+ return false;
+ }
+ });
+ }
+ if ( $.isFunction( found ) ) {
+ response = found.apply(context, passedArguments);
+ }
+ else if(found !== undefined) {
+ response = found;
+ }
+
+ if(Array.isArray(returnedValue)) {
+ returnedValue.push(response);
+ }
+ else if(returnedValue !== undefined) {
+ returnedValue = [returnedValue, response];
+ }
+ else if(response !== undefined) {
+ returnedValue = response;
+ }
+ return (found !== undefined)
+ ? found
+ : false
+ ;
+ }
+ };
+ module.initialize();
+ })
+ ;
+ return (returnedValue !== undefined)
+ ? returnedValue
+ : this
+ ;
+};
+
+// Records if CSS transition is available
+$.fn.transition.exists = {};
+
+$.fn.transition.settings = {
+
+ // module info
+ name : 'Transition',
+
+ // hide all output from this component regardless of other settings
+ silent : false,
+
+ // debug content outputted to console
+ debug : false,
+
+ // verbose debug output
+ verbose : false,
+
+ // performance data output
+ performance : true,
+
+ // event namespace
+ namespace : 'transition',
+
+ // delay between animations in group
+ interval : 0,
+
+ // whether group animations should be reversed
+ reverse : 'auto',
+
+ // animation callback event
+ onStart : function() {},
+ onComplete : function() {},
+ onShow : function() {},
+ onHide : function() {},
+
+ // whether timeout should be used to ensure callback fires in cases animationend does not
+ useFailSafe : true,
+
+ // delay in ms for fail safe
+ failSafeDelay : 100,
+
+ // whether EXACT animation can occur twice in a row
+ allowRepeats : false,
+
+ // Override final display type on visible
+ displayType : false,
+
+ // animation duration
+ animation : 'fade',
+ duration : false,
+
+ // new animations will occur after previous ones
+ queue : true,
+
+// whether initially inline hidden objects should be skipped for transition
+ skipInlineHidden: false,
+
+ metadata : {
+ displayType: 'display'
+ },
+
+ className : {
+ animating : 'animating',
+ disabled : 'disabled',
+ hidden : 'hidden',
+ inward : 'in',
+ loading : 'loading',
+ looping : 'looping',
+ outward : 'out',
+ transition : 'transition',
+ visible : 'visible'
+ },
+
+ // possible errors
+ error: {
+ noAnimation : 'Element is no longer attached to DOM. Unable to animate. Use silent setting to surpress this warning in production.',
+ repeated : 'That animation is already occurring, cancelling repeated animation',
+ method : 'The method you called is not defined',
+ support : 'This browser does not support CSS animations'
+ }
+
+};
+
+
+})( jQuery, window, document );
diff --git a/assets/semantic/src/definitions/modules/transition.less b/assets/semantic/src/definitions/modules/transition.less
new file mode 100644
index 0000000..793ce7f
--- /dev/null
+++ b/assets/semantic/src/definitions/modules/transition.less
@@ -0,0 +1,82 @@
+/*!
+ * # Fomantic-UI - Transition
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'module';
+@element : 'transition';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Transitions
+*******************************/
+
+.transition {
+ animation-iteration-count: 1;
+ animation-duration: @transitionDefaultDuration;
+ animation-timing-function: @transitionDefaultEasing;
+ animation-fill-mode: @transitionDefaultFill;
+}
+
+/*******************************
+ States
+*******************************/
+
+
+/* Animating */
+.animating.transition {
+ backface-visibility: @backfaceVisibility;
+ visibility: visible !important;
+}
+
+& when (@variationTransitionLoading) {
+ /* Loading */
+ .loading.transition {
+ position: absolute;
+ top: -99999px;
+ left: -99999px;
+ }
+}
+
+/* Hidden */
+.hidden.transition {
+ display: none;
+ visibility: hidden;
+}
+
+/* Visible */
+.visible.transition {
+ display: block !important;
+ visibility: visible !important;
+/* backface-visibility: @backfaceVisibility;
+ transform: @use3DAcceleration;*/
+}
+
+& when (@variationTransitionDisabled) {
+ /* Disabled */
+ .disabled.transition {
+ animation-play-state: paused;
+ }
+}
+
+/*******************************
+ Variations
+*******************************/
+& when (@variationTransitionLoading) {
+ .looping.transition {
+ animation-iteration-count: infinite;
+ }
+}
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/views/ad.less b/assets/semantic/src/definitions/views/ad.less
new file mode 100644
index 0000000..701e8a1
--- /dev/null
+++ b/assets/semantic/src/definitions/views/ad.less
@@ -0,0 +1,297 @@
+/*!
+ * # Fomantic-UI - Ad
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'view';
+@element : 'ad';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Advertisement
+*******************************/
+
+.ui.ad {
+ display: block;
+ overflow: @overflow;
+ margin: @margin;
+}
+
+.ui.ad:first-child {
+ margin: 0;
+}
+
+.ui.ad:last-child {
+ margin: 0;
+}
+
+.ui.ad iframe {
+ margin: 0;
+ padding: 0;
+ border: none;
+ overflow: hidden;
+}
+
+/*--------------
+ Common
+---------------*/
+& when (@variationAdLeaderboard) {
+ /* Leaderboard */
+ .ui.leaderboard.ad {
+ width: 728px;
+ height: 90px;
+ }
+}
+
+& when (@variationAdRectangle) {
+ /* Medium Rectangle */
+ .ui[class*="medium rectangle"].ad {
+ width: 300px;
+ height: 250px;
+ }
+
+ /* Large Rectangle */
+ .ui[class*="large rectangle"].ad {
+ width: 336px;
+ height: 280px;
+ }
+ /* Half Page */
+ .ui[class*="half page"].ad {
+ width: 300px;
+ height: 600px;
+ }
+}
+
+& when (@variationAdSquare) {
+ /*--------------
+ Square
+ ---------------*/
+
+ /* Square */
+ .ui.square.ad {
+ width: 250px;
+ height: 250px;
+ }
+
+ /* Small Square */
+ .ui[class*="small square"].ad {
+ width: 200px;
+ height: 200px;
+ }
+}
+
+& when (@variationAdRectangle) {
+ /*--------------
+ Rectangle
+ ---------------*/
+
+ /* Small Rectangle */
+ .ui[class*="small rectangle"].ad {
+ width: 180px;
+ height: 150px;
+ }
+
+ /* Vertical Rectangle */
+ .ui[class*="vertical rectangle"].ad {
+ width: 240px;
+ height: 400px;
+ }
+}
+
+& when (@variationAdButton) {
+ /*--------------
+ Button
+ ---------------*/
+
+ .ui.button.ad {
+ width: 120px;
+ height: 90px;
+ }
+ & when (@variationAdSquare) {
+ .ui[class*="square button"].ad {
+ width: 125px;
+ height: 125px;
+ }
+ }
+ .ui[class*="small button"].ad {
+ width: 120px;
+ height: 60px;
+ }
+}
+
+& when (@variationAdSkyscraper) {
+ /*--------------
+ Skyscrapers
+ ---------------*/
+
+ /* Skyscraper */
+ .ui.skyscraper.ad {
+ width: 120px;
+ height: 600px;
+ }
+
+ /* Wide Skyscraper */
+ .ui[class*="wide skyscraper"].ad {
+ width: 160px;
+ }
+}
+
+& when (@variationAdBanner) {
+ /*--------------
+ Banners
+ ---------------*/
+
+ /* Banner */
+ .ui.banner.ad {
+ width: 468px;
+ height: 60px;
+ }
+
+ /* Vertical Banner */
+ .ui[class*="vertical banner"].ad {
+ width: 120px;
+ height: 240px;
+ }
+
+ /* Top Banner */
+ .ui[class*="top banner"].ad {
+ width: 930px;
+ height: 180px;
+ }
+
+ /* Half Banner */
+ .ui[class*="half banner"].ad {
+ width: 234px;
+ height: 60px;
+ }
+}
+
+/*--------------
+ Boards
+---------------*/
+& when (@variationAdLeaderboard) {
+ /* Leaderboard */
+ .ui[class*="large leaderboard"].ad {
+ width: 970px;
+ height: 90px;
+ }
+}
+
+& when (@variationAdBillboard) {
+ /* Billboard */
+ .ui.billboard.ad {
+ width: 970px;
+ height: 250px;
+ }
+}
+
+& when (@variationAdPanorama) {
+ /*--------------
+ Panorama
+ ---------------*/
+
+ /* Panorama */
+ .ui.panorama.ad {
+ width: 980px;
+ height: 120px;
+ }
+}
+
+& when (@variationAdNetboard) {
+ /*--------------
+ Netboard
+ ---------------*/
+
+ /* Netboard */
+ .ui.netboard.ad {
+ width: 580px;
+ height: 400px;
+ }
+}
+
+& when (@variationAdMobile) {
+ /*--------------
+ Mobile
+ ---------------*/
+ & when (@variationAdBanner) {
+ /* Large Mobile Banner */
+ .ui[class*="large mobile banner"].ad {
+ width: 320px;
+ height: 100px;
+ }
+ }
+ & when (@variationAdLeaderboard) {
+ /* Mobile Leaderboard */
+ .ui[class*="mobile leaderboard"].ad {
+ width: 320px;
+ height: 50px;
+ }
+ }
+
+/*******************************
+ Types
+*******************************/
+
+ /* Mobile Sizes */
+ .ui.mobile.ad {
+ display: none;
+ }
+
+ @media only screen and (max-width : @largestMobileScreen) {
+ .ui.mobile.ad {
+ display: block;
+ }
+ }
+}
+
+
+/*******************************
+ Variations
+*******************************/
+
+& when (@variationAdCentered) {
+ .ui.centered.ad {
+ margin-left: auto;
+ margin-right: auto;
+ }
+}
+& when (@variationAdTest) {
+ .ui.test.ad {
+ position: relative;
+ background: @testBackground;
+ }
+ .ui.test.ad:after {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 100%;
+ text-align: center;
+ transform: translateX(-50%) translateY(-50%);
+
+ content: @testText;
+ color: @testColor;
+ font-size: @testFontSize;
+ font-weight: @testFontWeight;
+ }
+ & when (@variationAdMobile) {
+ .ui.mobile.test.ad:after {
+ font-size: @testMobileFontSize;
+ }
+ }
+ .ui.test.ad[data-text]:after {
+ content: attr(data-text);
+ }
+}
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/views/card.less b/assets/semantic/src/definitions/views/card.less
new file mode 100644
index 0000000..d14c6d7
--- /dev/null
+++ b/assets/semantic/src/definitions/views/card.less
@@ -0,0 +1,978 @@
+/*!
+ * # Fomantic-UI - Card
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'view';
+@element : 'card';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Card
+---------------*/
+
+.ui.cards > .card,
+.ui.card {
+ max-width: 100%;
+ position: relative;
+ display: @display;
+ flex-direction: column;
+
+ width: @width;
+ min-height: @minHeight;
+ background: @background;
+ padding: @padding;
+
+ border: @border;
+ border-radius: @borderRadius;
+ box-shadow: @boxShadow;
+ transition: @transition;
+ z-index: @zIndex;
+ word-wrap: break-word;
+}
+.ui.card {
+ margin: @margin;
+}
+
+.ui.cards > .card a,
+.ui.card a {
+ cursor: pointer;
+}
+
+.ui.card:first-child {
+ margin-top: 0;
+}
+.ui.card:last-child {
+ margin-bottom: 0;
+}
+
+/*--------------
+ Cards
+---------------*/
+
+.ui.cards {
+ display: @groupDisplay;
+ margin: @groupMargin;
+ flex-wrap: wrap;
+}
+
+.ui.cards > .card {
+ display: @groupCardDisplay;
+ margin: @groupCardMargin;
+ float: @groupCardFloat;
+}
+
+/* Clearing */
+.ui.cards:after,
+.ui.card:after {
+ display: block;
+ content: ' ';
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+
+/* Consecutive Card Groups Preserve Row Spacing */
+.ui.cards ~ .ui.cards {
+ margin-top: @consecutiveGroupDistance;
+}
+
+
+/*--------------
+ Rounded Edges
+---------------*/
+
+.ui.cards > .card > :first-child,
+.ui.card > :first-child {
+ border-radius: @borderRadius @borderRadius 0 0 !important;
+ border-top: none !important;
+}
+
+.ui.cards > .card > :last-child,
+.ui.card > :last-child {
+ border-radius: 0 0 @borderRadius @borderRadius !important;
+}
+
+.ui.cards > .card > :only-child,
+.ui.card > :only-child {
+ border-radius: @borderRadius !important;
+}
+
+/*--------------
+ Images
+---------------*/
+
+.ui.cards > .card > .image,
+.ui.card > .image {
+ position: relative;
+ display: block;
+ flex: 0 0 auto;
+ padding: @imagePadding;
+ background: @imageBackground;
+}
+.ui.cards > .card > .image > img,
+.ui.card > .image > img {
+ display: block;
+ width: 100%;
+ height: auto;
+ border-radius: inherit;
+}
+.ui.cards > .card > .image:not(.ui) > img,
+.ui.card > .image:not(.ui) > img {
+ border: @imageBorder;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.cards > .card > .content,
+.ui.card > .content {
+ flex-grow: 1;
+ border: @contentBorder;
+ border-top: @contentDivider;
+ background: @contentBackground;
+ margin: @contentMargin;
+ padding: @contentPadding;
+ box-shadow: @contentBoxShadow;
+ font-size: @contentFontSize;
+ border-radius: @contentBorderRadius;
+}
+
+.ui.cards > .card > .content:after,
+.ui.card > .content:after {
+ display: block;
+ content: ' ';
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+.ui.cards > .card > .content > .header,
+.ui.card > .content > .header {
+ display: block;
+ margin: @headerMargin;
+ font-family: @headerFont;
+ color: @headerColor;
+}
+
+/* Default Header Size */
+.ui.cards > .card > .content > .header:not(.ui),
+.ui.card > .content > .header:not(.ui) {
+ font-weight: @headerFontWeight;
+ font-size: @headerFontSize;
+ margin-top: @headerLineHeightOffset;
+ line-height: @headerLineHeight;
+}
+
+.ui.cards > .card > .content > .meta + .description,
+.ui.cards > .card > .content > .header + .description,
+.ui.card > .content > .meta + .description,
+.ui.card > .content > .header + .description {
+ margin-top: @descriptionDistance;
+}
+
+/*----------------
+ Floated Content
+-----------------*/
+
+.ui.cards > .card [class*="left floated"],
+.ui.card [class*="left floated"] {
+ float: left;
+}
+.ui.cards > .card [class*="right floated"],
+.ui.card [class*="right floated"] {
+ float: right;
+}
+
+/*--------------
+ Aligned
+---------------*/
+
+.ui.cards > .card [class*="left aligned"],
+.ui.card [class*="left aligned"] {
+ text-align: left;
+}
+.ui.cards > .card [class*="center aligned"],
+.ui.card [class*="center aligned"] {
+ text-align: center;
+}
+.ui.cards > .card [class*="right aligned"],
+.ui.card [class*="right aligned"] {
+ text-align: right;
+}
+
+
+/*--------------
+ Content Image
+---------------*/
+
+.ui.cards > .card .content img,
+.ui.card .content img {
+ display: inline-block;
+ vertical-align: @contentImageVerticalAlign;
+ width: @contentImageWidth;
+}
+.ui.cards > .card img.avatar,
+.ui.cards > .card .avatar img,
+.ui.card img.avatar,
+.ui.card .avatar img {
+ width: @avatarSize;
+ height: @avatarSize;
+ border-radius: @avatarBorderRadius;
+}
+
+
+/*--------------
+ Description
+---------------*/
+
+.ui.cards > .card > .content > .description,
+.ui.card > .content > .description {
+ clear: both;
+ color: @descriptionColor;
+}
+
+/*--------------
+ Paragraph
+---------------*/
+
+.ui.cards > .card > .content p,
+.ui.card > .content p {
+ margin: 0 0 @paragraphDistance;
+}
+.ui.cards > .card > .content p:last-child,
+.ui.card > .content p:last-child {
+ margin-bottom: 0;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.cards > .card .meta,
+.ui.card .meta {
+ font-size: @metaFontSize;
+ color: @metaColor;
+}
+.ui.cards > .card .meta *,
+.ui.card .meta * {
+ margin-right: @metaSpacing;
+}
+.ui.cards > .card .meta :last-child,
+.ui.card .meta :last-child {
+ margin-right: 0;
+}
+
+.ui.cards > .card .meta [class*="right floated"],
+.ui.card .meta [class*="right floated"] {
+ margin-right: 0;
+ margin-left: @metaSpacing;
+}
+
+/*--------------
+ Links
+---------------*/
+
+/* Generic */
+.ui.cards > .card > .content a:not(.ui),
+.ui.card > .content a:not(.ui) {
+ color: @contentLinkColor;
+ transition: @contentLinkTransition;
+}
+.ui.cards > .card > .content a:not(.ui):hover,
+.ui.card > .content a:not(.ui):hover {
+ color: @contentLinkHoverColor;
+}
+
+/* Header */
+.ui.cards > .card > .content > a.header,
+.ui.card > .content > a.header {
+ color: @headerLinkColor;
+}
+.ui.cards > .card > .content > a.header:hover,
+.ui.card > .content > a.header:hover {
+ color: @headerLinkHoverColor;
+}
+
+/* Meta */
+.ui.cards > .card .meta > a:not(.ui),
+.ui.card .meta > a:not(.ui) {
+ color: @metaLinkColor;
+}
+.ui.cards > .card .meta > a:not(.ui):hover,
+.ui.card .meta > a:not(.ui):hover {
+ color: @metaLinkHoverColor;
+}
+
+/*--------------
+ Buttons
+---------------*/
+
+.ui.cards > .card > .buttons,
+.ui.card > .buttons,
+.ui.cards > .card > .button,
+.ui.card > .button {
+ margin: @buttonMargin;
+ width: @buttonWidth;
+ &:last-child {
+ margin-bottom: -@borderWidth;
+ }
+}
+
+/*--------------
+ Dimmer
+---------------*/
+
+.ui.cards > .card .dimmer,
+.ui.card .dimmer {
+ background: @dimmerColor;
+ z-index: @dimmerZIndex;
+}
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----Star----- */
+
+/* Icon */
+.ui.cards > .card > .content .star.icon,
+.ui.card > .content .star.icon {
+ cursor: pointer;
+ opacity: @actionOpacity;
+ transition: @actionTransition;
+}
+.ui.cards > .card > .content .star.icon:hover,
+.ui.card > .content .star.icon:hover {
+ opacity: @actionHoverOpacity;
+ color: @starColor;
+}
+.ui.cards > .card > .content .active.star.icon,
+.ui.card > .content .active.star.icon {
+ color: @starActiveColor;
+}
+
+/*-----Like----- */
+
+/* Icon */
+.ui.cards > .card > .content .like.icon,
+.ui.card > .content .like.icon {
+ cursor: pointer;
+ opacity: @actionOpacity;
+ transition: @actionTransition;
+}
+.ui.cards > .card > .content .like.icon:hover,
+.ui.card > .content .like.icon:hover {
+ opacity: @actionHoverOpacity;
+ color: @likeColor;
+}
+.ui.cards > .card > .content .active.like.icon,
+.ui.card > .content .active.like.icon {
+ color: @likeActiveColor;
+}
+
+/*----------------
+ Extra Content
+-----------------*/
+
+.ui.cards > .card > .extra,
+.ui.card > .extra {
+ max-width: 100%;
+ min-height: 0 !important;
+ flex-grow: 0;
+ border-top: @extraDivider !important;
+ position: @extraPosition;
+ background: @extraBackground;
+ width: @extraWidth;
+ margin: @extraMargin;
+ padding: @extraPadding;
+ top: @extraTop;
+ left: @extraLeft;
+ color: @extraColor;
+ box-shadow: @extraBoxShadow;
+ transition: @extraTransition;
+}
+.ui.cards > .card > .extra a:not(.ui),
+.ui.card > .extra a:not(.ui) {
+ color: @extraLinkColor;
+}
+.ui.cards > .card > .extra a:not(.ui):hover,
+.ui.card > .extra a:not(.ui):hover {
+ color: @extraLinkHoverColor;
+}
+
+
+/*******************************
+ Variations
+*******************************/
+
+& when (@variationCardHorizontal) {
+ /*-------------------
+ Horizontal
+ --------------------*/
+
+ .ui.horizontal.cards > .card,
+ .ui.card.horizontal {
+ flex-direction: row;
+ flex-wrap: wrap;
+ min-width: @horizontalMinWidth;
+ width: @horizontalWidth;
+ max-width: 100%;
+ }
+
+ .ui.horizontal.cards > .card > .image,
+ .ui.card.horizontal > .image {
+ border-radius: @defaultBorderRadius 0 0 @defaultBorderRadius;
+ width: @horizontalImageWidth;
+ }
+
+ .ui.horizontal.cards > .card > .image > img,
+ .ui.card.horizontal > .image > img {
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ justify-content: center;
+ align-items: center;
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ width: 100%;
+ height: 100%;
+ border-radius: @defaultBorderRadius 0 0 @defaultBorderRadius;
+ }
+ .ui.horizontal.cards > .card > .image:last-child > img,
+ .ui.card.horizontal > .image:last-child > img {
+ border-radius: 0 @defaultBorderRadius @defaultBorderRadius 0;
+ }
+ .ui.horizontal.cards > .card > .content, .ui.horizontal.card > .content {
+ flex-basis: 1px;
+ }
+ .ui.horizontal.cards > .card > .extra, .ui.horizontal.card > .extra {
+ flex-basis: 100%;
+ }
+}
+
+& when (@variationCardRaised) {
+ /*-------------------
+ Raised
+ --------------------*/
+
+ .ui.raised.cards > .card,
+ .ui.raised.card {
+ box-shadow: @raisedShadow;
+ }
+ & when (@variationCardLink) {
+ .ui.raised.cards a.card:hover,
+ .ui.link.cards .raised.card:hover,
+ a.ui.raised.card:hover,
+ .ui.link.raised.card:hover {
+ box-shadow: @raisedShadowHover;
+ }
+ }
+}
+
+& when (@variationCardCentered) {
+ /*-------------------
+ Centered
+ --------------------*/
+
+ .ui.centered.cards {
+ justify-content: center;
+ }
+ .ui.centered.card {
+ margin-left: auto;
+ margin-right: auto;
+ }
+}
+
+& when (@variationCardFluid) {
+ /*-------------------
+ Fluid
+ --------------------*/
+
+ .ui.fluid.card {
+ width: 100%;
+ max-width: 9999px;
+ }
+}
+
+& when (@variationCardLink) {
+ /*-------------------
+ Link
+ --------------------*/
+
+ .ui.cards a.card,
+ .ui.link.cards .card,
+ a.ui.card,
+ .ui.link.card {
+ transform: none;
+ }
+
+
+ .ui.cards a.card:hover,
+ .ui.link.cards .card:not(.icon):hover,
+ a.ui.card:hover,
+ .ui.link.card:hover {
+ cursor: pointer;
+ z-index: @linkHoverZIndex;
+ background: @linkHoverBackground;
+ border: @linkHoverBorder;
+ box-shadow: @linkHoverBoxShadow;
+ transform: @linkHoverTransform;
+ }
+}
+
+/*-------------------
+ Colors
+--------------------*/
+
+each(@colors,{
+ @color: replace(@key,'@','');
+ @c: @colors[@@color][color];
+ @h: @colors[@@color][hover];
+ @l: @colors[@@color][light];
+ @lh: @colors[@@color][lightHover];
+
+ .ui.@{color}.cards > .card,
+ .ui.cards > .@{color}.card,
+ .ui.@{color}.card {
+ box-shadow:
+ @borderShadow,
+ 0 @coloredShadowDistance 0 0 @c,
+ @shadowBoxShadow
+ ;
+ &:hover {
+ box-shadow:
+ @borderShadow,
+ 0 @coloredShadowDistance 0 0 @h,
+ @shadowHoverBoxShadow
+ ;
+ }
+ }
+ & when (@variationCardInverted) {
+ .ui.inverted.@{color}.cards > .card,
+ .ui.inverted.cards > .@{color}.card,
+ .ui.inverted.@{color}.card {
+ box-shadow:
+ 0 @shadowDistance 3px 0 @solidWhiteBorderColor,
+ 0 @coloredShadowDistance 0 0 @l,
+ 0 0 0 @borderWidth @solidWhiteBorderColor
+ ;
+ &:hover {
+ box-shadow:
+ 0 @shadowDistance 3px 0 @solidWhiteBorderColor,
+ 0 @coloredShadowDistance 0 0 @lh,
+ 0 0 0 @borderWidth @solidWhiteBorderColor
+ ;
+ }
+ }
+ }
+})
+
+/*--------------
+ Card Count
+---------------*/
+
+.ui.one.cards {
+ margin-left: @oneCardOffset;
+ margin-right: @oneCardOffset;
+}
+.ui.one.cards > .card {
+ width: @oneCard;
+}
+
+.ui.two.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+}
+.ui.two.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+}
+
+.ui.three.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+}
+.ui.three.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+}
+
+.ui.four.cards {
+ margin-left: @fourCardOffset;
+ margin-right: @fourCardOffset;
+}
+.ui.four.cards > .card {
+ width: @fourCard;
+ margin-left: @fourCardSpacing;
+ margin-right: @fourCardSpacing;
+}
+
+.ui.five.cards {
+ margin-left: @fiveCardOffset;
+ margin-right: @fiveCardOffset;
+}
+.ui.five.cards > .card {
+ width: @fiveCard;
+ margin-left: @fiveCardSpacing;
+ margin-right: @fiveCardSpacing;
+}
+
+.ui.six.cards {
+ margin-left: @sixCardOffset;
+ margin-right: @sixCardOffset;
+}
+.ui.six.cards > .card {
+ width: @sixCard;
+ margin-left: @sixCardSpacing;
+ margin-right: @sixCardSpacing;
+}
+
+.ui.seven.cards {
+ margin-left: @sevenCardOffset;
+ margin-right: @sevenCardOffset;
+}
+.ui.seven.cards > .card {
+ width: @sevenCard;
+ margin-left: @sevenCardSpacing;
+ margin-right: @sevenCardSpacing;
+}
+
+.ui.eight.cards {
+ margin-left: @eightCardOffset;
+ margin-right: @eightCardOffset;
+}
+.ui.eight.cards > .card {
+ width: @eightCard;
+ margin-left: @eightCardSpacing;
+ margin-right: @eightCardSpacing;
+ font-size: 11px;
+}
+
+.ui.nine.cards {
+ margin-left: @nineCardOffset;
+ margin-right: @nineCardOffset;
+}
+.ui.nine.cards > .card {
+ width: @nineCard;
+ margin-left: @nineCardSpacing;
+ margin-right: @nineCardSpacing;
+ font-size: 10px;
+}
+
+.ui.ten.cards {
+ margin-left: @tenCardOffset;
+ margin-right: @tenCardOffset;
+}
+.ui.ten.cards > .card {
+ width: @tenCard;
+ margin-left: @tenCardSpacing;
+ margin-right: @tenCardSpacing;
+}
+
+& when (@variationCardDoubling) {
+ /*-------------------
+ Doubling
+ --------------------*/
+
+ /* Mobile Only */
+ @media only screen and (max-width : @largestMobileScreen) {
+ .ui.two.doubling.cards {
+ margin-left: @oneCardOffset;
+ margin-right: @oneCardOffset;
+ }
+ .ui.two.doubling.cards > .card {
+ width: @oneCard;
+ margin-left: @oneCardSpacing;
+ margin-right: @oneCardSpacing;
+ }
+ .ui.three.doubling.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+ }
+ .ui.three.doubling.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+ }
+ .ui.four.doubling.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+ }
+ .ui.four.doubling.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+ }
+ .ui.five.doubling.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+ }
+ .ui.five.doubling.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+ }
+ .ui.six.doubling.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+ }
+ .ui.six.doubling.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+ }
+ .ui.seven.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.seven.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ .ui.eight.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.eight.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ .ui.nine.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.nine.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ .ui.ten.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.ten.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ }
+
+ /* Tablet Only */
+ @media only screen and (min-width : @tabletBreakpoint) and (max-width : @largestTabletScreen) {
+ .ui.two.doubling.cards {
+ margin-left: @oneCardOffset;
+ margin-right: @oneCardOffset;
+ }
+ .ui.two.doubling.cards > .card {
+ width: @oneCard;
+ margin-left: @oneCardSpacing;
+ margin-right: @oneCardSpacing;
+ }
+ .ui.three.doubling.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+ }
+ .ui.three.doubling.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+ }
+ .ui.four.doubling.cards {
+ margin-left: @twoCardOffset;
+ margin-right: @twoCardOffset;
+ }
+ .ui.four.doubling.cards > .card {
+ width: @twoCard;
+ margin-left: @twoCardSpacing;
+ margin-right: @twoCardSpacing;
+ }
+ .ui.five.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.five.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ .ui.six.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.six.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ .ui.eight.doubling.cards {
+ margin-left: @threeCardOffset;
+ margin-right: @threeCardOffset;
+ }
+ .ui.eight.doubling.cards > .card {
+ width: @threeCard;
+ margin-left: @threeCardSpacing;
+ margin-right: @threeCardSpacing;
+ }
+ .ui.eight.doubling.cards {
+ margin-left: @fourCardOffset;
+ margin-right: @fourCardOffset;
+ }
+ .ui.eight.doubling.cards > .card {
+ width: @fourCard;
+ margin-left: @fourCardSpacing;
+ margin-right: @fourCardSpacing;
+ }
+ .ui.nine.doubling.cards {
+ margin-left: @fourCardOffset;
+ margin-right: @fourCardOffset;
+ }
+ .ui.nine.doubling.cards > .card {
+ width: @fourCard;
+ margin-left: @fourCardSpacing;
+ margin-right: @fourCardSpacing;
+ }
+ .ui.ten.doubling.cards {
+ margin-left: @fiveCardOffset;
+ margin-right: @fiveCardOffset;
+ }
+ .ui.ten.doubling.cards > .card {
+ width: @fiveCard;
+ margin-left: @fiveCardSpacing;
+ margin-right: @fiveCardSpacing;
+ }
+ }
+}
+
+& when (@variationCardStackable) {
+ /*-------------------
+ Stackable
+ --------------------*/
+
+ @media only screen and (max-width : @largestMobileScreen) {
+ .ui.stackable.cards {
+ display: block !important;
+ }
+ .ui.stackable.cards .card:first-child {
+ margin-top: 0 !important;
+ }
+ .ui.stackable.cards > .card {
+ display: block !important;
+ height: auto !important;
+ margin: @stackableRowSpacing @stackableCardSpacing;
+ padding: 0 !important;
+ width: @stackableMargin !important;
+ }
+ }
+}
+
+/*--------------
+ Size
+---------------*/
+
+.ui.cards > .card {
+ font-size: @medium;
+}
+& when not (@variationCardSizes = false) {
+ each(@variationCardSizes, {
+ @s: @@value;
+ .ui.@{value}.cards .card {
+ font-size: @s;
+ }
+ })
+}
+
+& when (@variationCardInverted) {
+ /*-----------------
+ Inverted
+ ------------------*/
+
+ .ui.inverted.cards > .card,
+ .ui.inverted.card {
+ background: @invertedBackground;
+ box-shadow: @invertedBoxShadow;
+ }
+
+ /* Content */
+ .ui.inverted.cards > .card > .content,
+ .ui.inverted.card > .content {
+ border-top: @invertedContentDivider;
+ }
+
+ /* Header */
+ .ui.inverted.cards > .card > .content > .header,
+ .ui.inverted.card > .content > .header {
+ color: @invertedHeaderColor;
+ }
+
+ /* Description */
+ .ui.inverted.cards > .card > .content > .description,
+ .ui.inverted.card > .content > .description {
+ color: @invertedDescriptionColor;
+ }
+
+ /* Meta */
+ .ui.inverted.cards > .card .meta,
+ .ui.inverted.card .meta {
+ color: @invertedMetaColor;
+ }
+ .ui.inverted.cards > .card .meta > a:not(.ui),
+ .ui.inverted.card .meta > a:not(.ui) {
+ color: @invertedMetaLinkColor;
+ }
+ .ui.inverted.cards > .card .meta > a:not(.ui):hover,
+ .ui.inverted.card .meta > a:not(.ui):hover {
+ color: @invertedMetaLinkHoverColor;
+ }
+
+ /* Extra */
+ .ui.inverted.cards > .card > .extra,
+ .ui.inverted.card > .extra {
+ border-top: @invertedExtraDivider !important;
+ color: @invertedExtraColor;
+ }
+ .ui.inverted.cards > .card > .extra a:not(.ui),
+ .ui.inverted.card > .extra a:not(.ui) {
+ color: @invertedExtraLinkColor;
+ }
+ .ui.inverted.cards > .card > .extra a:not(.ui):hover,
+ .ui.inverted.card > .extra a:not(.ui):hover {
+ color: @extraLinkHoverColor;
+ }
+
+ /* Link card(s) */
+ .ui.inverted.cards a.card:hover,
+ .ui.inverted.link.cards .card:not(.icon):hover,
+ a.inverted.ui.card:hover,
+ .ui.inverted.link.card:hover {
+ background: @invertedLinkHoverBackground;
+ }
+}
+
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/views/comment.less b/assets/semantic/src/definitions/views/comment.less
new file mode 100644
index 0000000..1377629
--- /dev/null
+++ b/assets/semantic/src/definitions/views/comment.less
@@ -0,0 +1,291 @@
+/*!
+ * # Fomantic-UI - Comment
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'view';
+@element : 'comment';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Standard
+*******************************/
+
+
+/*--------------
+ Comments
+---------------*/
+
+.ui.comments {
+ margin: @margin;
+ max-width: @maxWidth;
+}
+
+.ui.comments:first-child {
+ margin-top: 0;
+}
+.ui.comments:last-child {
+ margin-bottom: 0;
+}
+
+/*--------------
+ Comment
+---------------*/
+
+.ui.comments .comment {
+ position: relative;
+ background: @commentBackground;
+ margin: @commentMargin;
+ padding: @commentPadding;
+ border: @commentBorder;
+ border-top: @commentDivider;
+ line-height: @commentLineHeight;
+}
+.ui.comments .comment:first-child {
+ margin-top: @firstCommentMargin;
+ padding-top: @firstCommentPadding;
+}
+
+
+/*--------------------
+ Nested Comments
+---------------------*/
+
+.ui.comments .comment > .comments {
+ margin: @nestedCommentsMargin;
+ padding: @nestedCommentsPadding;
+}
+.ui.comments .comment > .comments:before{
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+.ui.comments .comment > .comments .comment {
+ border: @nestedCommentBorder;
+ border-top: @nestedCommentDivider;
+ background: @nestedCommentBackground;
+}
+
+/*--------------
+ Avatar
+---------------*/
+
+.ui.comments .comment .avatar {
+ display: @avatarDisplay;
+ width: @avatarWidth;
+ height: @avatarHeight;
+ float: @avatarFloat;
+ margin: @avatarMargin;
+}
+.ui.comments .comment img.avatar,
+.ui.comments .comment .avatar img {
+ display: block;
+ margin: 0 auto;
+ width: 100%;
+ height: 100%;
+ border-radius: @avatarBorderRadius;
+}
+
+/*--------------
+ Content
+---------------*/
+
+.ui.comments .comment > .content {
+ display: block;
+}
+/* If there is an avatar move content over */
+.ui.comments .comment > .avatar ~ .content {
+ margin-left: @contentMargin;
+}
+
+/*--------------
+ Author
+---------------*/
+
+.ui.comments .comment .author {
+ font-size: @authorFontSize;
+ color: @authorColor;
+ font-weight: @authorFontWeight;
+}
+.ui.comments .comment a.author {
+ cursor: pointer;
+}
+.ui.comments .comment a.author:hover {
+ color: @authorHoverColor;
+}
+
+/*--------------
+ Metadata
+---------------*/
+
+.ui.comments .comment .metadata {
+ display: @metadataDisplay;
+ margin-left: @metadataSpacing;
+ color: @metadataColor;
+ font-size: @metadataFontSize;
+}
+.ui.comments .comment .metadata > * {
+ display: inline-block;
+ margin: 0 @metadataContentSpacing 0 0;
+}
+.ui.comments .comment .metadata > :last-child {
+ margin-right: 0;
+}
+
+/*--------------------
+ Comment Text
+---------------------*/
+
+.ui.comments .comment .text {
+ margin: @textMargin;
+ font-size: @textFontSize;
+ word-wrap: @textWordWrap;
+ color: @textColor;
+ line-height: @textLineHeight;
+}
+
+
+/*--------------------
+ User Actions
+---------------------*/
+
+.ui.comments .comment .actions {
+ font-size: @actionFontSize;
+}
+.ui.comments .comment .actions a {
+ cursor: pointer;
+ display: inline-block;
+ margin: 0 @actionContentDistance 0 0;
+ color: @actionLinkColor;
+}
+.ui.comments .comment .actions a:last-child {
+ margin-right: 0;
+}
+.ui.comments .comment .actions a.active,
+.ui.comments .comment .actions a:hover {
+ color: @actionLinkHoverColor;
+}
+
+/*--------------------
+ Reply Form
+---------------------*/
+
+.ui.comments > .reply.form {
+ margin-top: @replyDistance;
+}
+.ui.comments .comment .reply.form {
+ width: 100%;
+ margin-top: @commentReplyDistance;
+}
+.ui.comments .reply.form textarea {
+ font-size: @replyFontSize;
+ height: @replyHeight;
+}
+
+/*******************************
+ State
+*******************************/
+
+.ui.collapsed.comments,
+.ui.comments .collapsed.comments,
+.ui.comments .collapsed.comment {
+ display: none;
+}
+
+
+/*******************************
+ Variations
+*******************************/
+
+& when (@variationCommentThreaded) {
+ /*--------------------
+ Threaded
+ ---------------------*/
+
+ .ui.threaded.comments .comment > .comments {
+ margin: @threadedCommentMargin;
+ padding: @threadedCommentPadding;
+ box-shadow: @threadedCommentBoxShadow;
+ }
+}
+
+& when (@variationCommentMinimal) {
+ /*--------------------
+ Minimal
+ ---------------------*/
+
+ .ui.minimal.comments .comment .actions {
+ opacity: 0;
+ position: @minimalActionPosition;
+ top: @minimalActionTop;
+ right: @minimalActionRight;
+ left: @minimalActionLeft;
+ transition: @minimalTransition;
+ transition-delay: @minimalTransitionDelay;
+ }
+ .ui.minimal.comments .comment > .content:hover > .actions {
+ opacity: 1;
+ }
+}
+
+
+/*-------------------
+ Sizes
+--------------------*/
+
+.ui.comments {
+ font-size: @medium;
+}
+& when not (@variationCommentSizes = false) {
+ each(@variationCommentSizes, {
+ @s: @@value;
+ .ui.@{value}.comments {
+ font-size: @s;
+ }
+ })
+}
+
+
+& when (@variationCommentInverted) {
+ /*-------------------
+ Inverted
+ --------------------*/
+ .ui.inverted.comments .comment {
+ background-color: @black;
+ }
+
+ .ui.inverted.comments .comment .author,
+ .ui.inverted.comments .comment .text {
+ color: @invertedTextColor;
+ }
+
+ .ui.inverted.comments .comment .metadata,
+ .ui.inverted.comments .comment .actions a {
+ color: @invertedLightTextColor;
+ }
+
+ .ui.inverted.comments .comment a.author:hover,
+ .ui.inverted.comments .comment .actions a.active,
+ .ui.inverted.comments .comment .actions a:hover {
+ color: @invertedHoveredTextColor;
+ }
+ & when (@variationCommentThreaded) {
+ .ui.inverted.threaded.comments .comment > .comments {
+ box-shadow: -1px 0 0 @solidWhiteBorderColor;
+ }
+ }
+}
+
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/views/feed.less b/assets/semantic/src/definitions/views/feed.less
new file mode 100644
index 0000000..c6351c0
--- /dev/null
+++ b/assets/semantic/src/definitions/views/feed.less
@@ -0,0 +1,304 @@
+/*!
+ * # Fomantic-UI - Feed
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'view';
+@element : 'feed';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Activity Feed
+*******************************/
+
+.ui.feed {
+ margin: @margin;
+}
+.ui.feed:first-child {
+ margin-top: 0;
+}
+.ui.feed:last-child {
+ margin-bottom: 0;
+}
+
+
+/*******************************
+ Content
+*******************************/
+
+/* Event */
+.ui.feed > .event {
+ display: flex;
+ flex-direction: row;
+ width: @eventWidth;
+ padding: @eventPadding;
+ margin: @eventMargin;
+ background: @eventBackground;
+ border-top: @eventDivider;
+}
+.ui.feed > .event:first-child {
+ border-top: 0;
+ padding-top: 0;
+}
+.ui.feed > .event:last-child {
+ padding-bottom: 0;
+}
+
+/* Event Label */
+.ui.feed > .event > .label {
+ display: block;
+ flex: 0 0 auto;
+ width: @labelWidth;
+ height: @labelHeight;
+ align-self: @labelAlignSelf;
+ text-align: @labelTextAlign;
+}
+.ui.feed > .event > .label .icon {
+ opacity: @iconLabelOpacity;
+ font-size: @iconLabelSize;
+ width: @iconLabelWidth;
+ padding: @iconLabelPadding;
+ background: @iconLabelBackground;
+ border: @iconLabelBorder;
+ border-radius: @iconLabelBorderRadius;
+ color: @iconLabelColor;
+}
+.ui.feed > .event > .label img {
+ width: @imageLabelWidth;
+ height: @imageLabelHeight;
+ border-radius: @imageLabelBorderRadius;
+}
+.ui.feed > .event > .label + .content {
+ margin: @labeledContentMargin;
+}
+
+/*--------------
+ Content
+---------------*/
+
+/* Content */
+.ui.feed > .event > .content {
+ display: block;
+ flex: 1 1 auto;
+ align-self: @contentAlignSelf;
+ text-align: @contentTextAlign;
+ word-wrap: @contentWordWrap;
+}
+.ui.feed > .event:last-child > .content {
+ padding-bottom: @lastLabeledContentPadding;
+}
+
+/* Link */
+.ui.feed > .event > .content a {
+ cursor: pointer;
+}
+
+/*--------------
+ Date
+---------------*/
+
+.ui.feed > .event > .content .date {
+ margin: @dateMargin;
+ padding: @datePadding;
+ color: @dateColor;
+ font-weight: @dateFontWeight;
+ font-size: @dateFontSize;
+ font-style: @dateFontStyle;
+}
+
+/*--------------
+ Summary
+---------------*/
+
+.ui.feed > .event > .content .summary {
+ margin: @summaryMargin;
+ font-size: @summaryFontSize;
+ font-weight: @summaryFontWeight;
+ color: @summaryColor;
+}
+
+/* Summary Image */
+.ui.feed > .event > .content .summary img {
+ display: inline-block;
+ width: @summaryImageWidth;
+ height: @summaryImageHeight;
+ margin: @summaryImageMargin;
+ border-radius: @summaryImageBorderRadius;
+ vertical-align: @summaryImageVerticalAlign;
+}
+/*--------------
+ User
+---------------*/
+
+.ui.feed > .event > .content .user {
+ display: inline-block;
+ font-weight: @userFontWeight;
+ margin-right: @userDistance;
+ vertical-align: baseline;
+}
+.ui.feed > .event > .content .user img {
+ margin: @userImageMargin;
+ width: @userImageWidth;
+ height: @userImageHeight;
+ vertical-align: @userImageVerticalAlign;
+}
+/*--------------
+ Inline Date
+---------------*/
+
+/* Date inside Summary */
+.ui.feed > .event > .content .summary > .date {
+ display: @summaryDateDisplay;
+ float: @summaryDateFloat;
+ font-weight: @summaryDateFontWeight;
+ font-size: @summaryDateFontSize;
+ font-style: @summaryDateFontStyle;
+ margin: @summaryDateMargin;
+ padding: @summaryDatePadding;
+ color: @summaryDateColor;
+}
+
+/*--------------
+ Extra Summary
+---------------*/
+
+.ui.feed > .event > .content .extra {
+ margin: @extraMargin;
+ background: @extraBackground;
+ padding: @extraPadding;
+ color: @extraColor;
+}
+
+/* Images */
+.ui.feed > .event > .content .extra.images img {
+ display: inline-block;
+ margin: @extraImageMargin;
+ width: @extraImageWidth;
+}
+
+/* Text */
+.ui.feed > .event > .content .extra.text {
+ padding: @extraTextPadding;
+ border-left: @extraTextPointer;
+ font-size: @extraTextFontSize;
+ max-width: @extraTextMaxWidth;
+ line-height: @extraTextLineHeight;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.feed > .event > .content .meta {
+ display: @metadataDisplay;
+ font-size: @metadataFontSize;
+ margin: @metadataMargin;
+ background: @metadataBackground;
+ border: @metadataBorder;
+ border-radius: @metadataBorderRadius;
+ box-shadow: @metadataBoxShadow;
+ padding: @metadataPadding;
+ color: @metadataColor;
+}
+
+.ui.feed > .event > .content .meta > * {
+ position: relative;
+ margin-left: @metadataElementSpacing;
+}
+.ui.feed > .event > .content .meta > *:after {
+ content: @metadataDivider;
+ color: @metadataDividerColor;
+ top: 0;
+ left: @metadataDividerOffset;
+ opacity: 1;
+ position: absolute;
+ vertical-align: top;
+}
+
+.ui.feed > .event > .content .meta .like {
+ color: @likeColor;
+ transition: @likeTransition;
+}
+.ui.feed > .event > .content .meta .like:hover i.icon {
+ color: @likeHoverColor;
+}
+.ui.feed > .event > .content .meta .active.like i.icon {
+ color: @likeActiveColor;
+}
+
+/* First element */
+.ui.feed > .event > .content .meta > :first-child {
+ margin-left: 0;
+}
+.ui.feed > .event > .content .meta > :first-child::after {
+ display: none;
+}
+
+/* Action */
+.ui.feed > .event > .content .meta a,
+.ui.feed > .event > .content .meta > i.icon {
+ cursor: @metadataActionCursor;
+ opacity: @metadataActionOpacity;
+ color: @metadataActionColor;
+ transition: @metadataActionTransition;
+}
+.ui.feed > .event > .content .meta a:hover,
+.ui.feed > .event > .content .meta a:hover i.icon,
+.ui.feed > .event > .content .meta > i.icon:hover {
+ color: @metadataActionHoverColor;
+}
+
+
+
+/*******************************
+ Variations
+*******************************/
+
+.ui.feed {
+ font-size: @medium;
+}
+& when not (@variationFeedSizes = false) {
+ each(@variationFeedSizes, {
+ @s: @@value;
+ .ui.@{value}.feed {
+ font-size: @s;
+ }
+ })
+}
+
+& when (@variationFeedInverted) {
+ /*------------------
+ Inverted
+ -------------------*/
+
+ .ui.inverted.feed > .event {
+ background: @black;
+ }
+
+ .ui.inverted.feed > .event > .content .date,
+ .ui.inverted.feed > .event > .content .meta .like {
+ color: @invertedLightTextColor;
+ }
+
+ .ui.inverted.feed > .event > .content .summary,
+ .ui.inverted.feed > .event > .content .extra.text {
+ color: @invertedTextColor;
+ }
+
+ .ui.inverted.feed > .event > .content .meta .like:hover {
+ color: @invertedSelectedTextColor;
+ }
+}
+
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/views/item.less b/assets/semantic/src/definitions/views/item.less
new file mode 100644
index 0000000..86bc392
--- /dev/null
+++ b/assets/semantic/src/definitions/views/item.less
@@ -0,0 +1,559 @@
+/*!
+ * # Fomantic-UI - Item
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'view';
+@element : 'item';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Standard
+*******************************/
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .item {
+ display: @display;
+ margin: @itemSpacing 0;
+ width: @width;
+ min-height: @minHeight;
+ background: @background;
+ padding: @padding;
+
+ border: @border;
+ border-radius: @borderRadius;
+ box-shadow: @boxShadow;
+ transition: @transition;
+ z-index: @zIndex;
+}
+.ui.items > .item a {
+ cursor: pointer;
+}
+
+/*--------------
+ Items
+---------------*/
+
+.ui.items {
+ margin: @groupMargin;
+}
+
+.ui.items:first-child {
+ margin-top: 0 !important;
+}
+.ui.items:last-child {
+ margin-bottom: 0 !important;
+}
+
+/*--------------
+ Item
+---------------*/
+
+.ui.items > .item:after {
+ display: block;
+ content: ' ';
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+.ui.items > .item:first-child {
+ margin-top: 0;
+}
+.ui.items > .item:last-child {
+ margin-bottom: 0;
+}
+
+
+
+/*--------------
+ Images
+---------------*/
+
+.ui.items > .item > .image {
+ position: relative;
+ flex: 0 0 auto;
+ display: @imageDisplay;
+ float: @imageFloat;
+ margin: @imageMargin;
+ padding: @imagePadding;
+ max-height: @imageMaxHeight;
+ align-self: @imageVerticalAlign;
+}
+.ui.items > .item > .image > img {
+ display: block;
+ width: 100%;
+ height: auto;
+ border-radius: @imageBorderRadius;
+ border: @imageBorder;
+}
+
+.ui.items > .item > .image:only-child > img {
+ border-radius: @borderRadius;
+}
+
+
+/*--------------
+ Content
+---------------*/
+
+.ui.items > .item > .content {
+ display: block;
+ flex: 1 1 auto;
+ background: @contentBackground;
+ color: @contentColor;
+ margin: @contentMargin;
+ padding: @contentPadding;
+ box-shadow: @contentBoxShadow;
+ font-size: @contentFontSize;
+ border: @contentBorder;
+ border-radius: @contentBorderRadius;
+}
+.ui.items > .item > .content:after {
+ display: block;
+ content: ' ';
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+.ui.items > .item > .image + .content {
+ min-width: 0;
+ width: @contentWidth;
+ display: @contentDisplay;
+ margin-left: @contentOffset;
+ align-self: @contentVerticalAlign;
+ padding-left: @contentImageDistance;
+}
+
+.ui.items > .item > .content > .header {
+ display: inline-block;
+ margin: @headerMargin;
+ font-family: @headerFont;
+ font-weight: @headerFontWeight;
+ color: @headerColor;
+}
+/* Default Header Size */
+.ui.items > .item > .content > .header:not(.ui) {
+ font-size: @headerFontSize;
+}
+
+/*--------------
+ Floated
+---------------*/
+
+.ui.items > .item [class*="left floated"] {
+ float: left;
+}
+.ui.items > .item [class*="right floated"] {
+ float: right;
+}
+
+
+/*--------------
+ Content Image
+---------------*/
+
+.ui.items > .item .content img {
+ align-self: @contentImageVerticalAlign;
+ width: @contentImageWidth;
+}
+.ui.items > .item img.avatar,
+.ui.items > .item .avatar img {
+ width: @avatarSize;
+ height: @avatarSize;
+ border-radius: @avatarBorderRadius;
+}
+
+
+/*--------------
+ Description
+---------------*/
+
+.ui.items > .item > .content > .description {
+ margin-top: @descriptionDistance;
+ max-width: @descriptionMaxWidth;
+ font-size: @descriptionFontSize;
+ line-height: @descriptionLineHeight;
+ color: @descriptionColor;
+}
+
+/*--------------
+ Paragraph
+---------------*/
+
+.ui.items > .item > .content p {
+ margin: 0 0 @paragraphDistance;
+}
+.ui.items > .item > .content p:last-child {
+ margin-bottom: 0;
+}
+
+/*--------------
+ Meta
+---------------*/
+
+.ui.items > .item .meta {
+ margin: @metaMargin;
+ font-size: @metaFontSize;
+ line-height: @metaLineHeight;
+ color: @metaColor;
+}
+.ui.items > .item .meta * {
+ margin-right: @metaSpacing;
+}
+.ui.items > .item .meta :last-child {
+ margin-right: 0;
+}
+
+.ui.items > .item .meta [class*="right floated"] {
+ margin-right: 0;
+ margin-left: @metaSpacing;
+}
+
+/*--------------
+ Links
+---------------*/
+
+/* Generic */
+.ui.items > .item > .content a:not(.ui) {
+ color: @contentLinkColor;
+ transition: @contentLinkTransition;
+}
+.ui.items > .item > .content a:not(.ui):hover {
+ color: @contentLinkHoverColor;
+}
+
+/* Header */
+.ui.items > .item > .content > a.header {
+ color: @headerLinkColor;
+}
+.ui.items > .item > .content > a.header:hover {
+ color: @headerLinkHoverColor;
+}
+
+/* Meta */
+.ui.items > .item .meta > a:not(.ui) {
+ color: @metaLinkColor;
+}
+.ui.items > .item .meta > a:not(.ui):hover {
+ color: @metaLinkHoverColor;
+}
+
+
+
+/*--------------
+ Labels
+---------------*/
+
+/*-----Star----- */
+
+/* Icon */
+.ui.items > .item > .content .favorite.icon {
+ cursor: pointer;
+ opacity: @actionOpacity;
+ transition: @actionTransition;
+}
+.ui.items > .item > .content .favorite.icon:hover {
+ opacity: @actionHoverOpacity;
+ color: @favoriteColor;
+}
+.ui.items > .item > .content .active.favorite.icon {
+ color: @favoriteActiveColor;
+}
+
+/*-----Like----- */
+
+/* Icon */
+.ui.items > .item > .content .like.icon {
+ cursor: pointer;
+ opacity: @actionOpacity;
+ transition: @actionTransition;
+}
+.ui.items > .item > .content .like.icon:hover {
+ opacity: @actionHoverOpacity;
+ color: @likeColor;
+}
+.ui.items > .item > .content .active.like.icon {
+ color: @likeActiveColor;
+}
+
+/*----------------
+ Extra Content
+-----------------*/
+
+.ui.items > .item .extra {
+ display: @extraDisplay;
+ position: @extraPosition;
+ background: @extraBackground;
+ margin: @extraMargin;
+ width: @extraWidth;
+ padding: @extraPadding;
+ top: @extraTop;
+ left: @extraLeft;
+ color: @extraColor;
+ box-shadow: @extraBoxShadow;
+ transition: @extraTransition;
+ border-top: @extraDivider;
+}
+.ui.items > .item .extra > * {
+ margin: (@extraRowSpacing / 2) @extraHorizontalSpacing (@extraRowSpacing / 2) 0;
+}
+.ui.items > .item .extra > [class*="right floated"] {
+ margin: (@extraRowSpacing / 2) 0 (@extraRowSpacing / 2) @extraHorizontalSpacing;
+}
+
+.ui.items > .item .extra:after {
+ display: block;
+ content: ' ';
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+
+/*******************************
+ Responsive
+*******************************/
+
+/* Default Image Width */
+.ui.items > .item > .image:not(.ui) {
+ width: @imageWidth;
+}
+
+
+/* Tablet Only */
+@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
+ .ui.items > .item {
+ margin: @tabletItemSpacing 0;
+ }
+ .ui.items > .item > .image:not(.ui) {
+ width: @tabletImageWidth;
+ }
+ .ui.items > .item > .image + .content {
+ display: block;
+ padding: 0 0 0 @tabletContentImageDistance;
+ }
+
+}
+
+/* Mobile Only */
+@media only screen and (max-width: @largestMobileScreen) {
+ .ui.items:not(.unstackable) > .item {
+ flex-direction: column;
+ margin: @mobileItemSpacing 0;
+ }
+ .ui.items:not(.unstackable) > .item > .image {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ }
+ .ui.items:not(.unstackable) > .item > .image,
+ .ui.items:not(.unstackable) > .item > .image > img {
+ max-width: 100% !important;
+ width: @mobileImageWidth !important;
+ max-height: @mobileImageMaxHeight !important;
+ }
+ .ui.items:not(.unstackable) > .item > .image + .content {
+ display: block;
+ padding: @mobileContentImageDistance 0 0;
+ }
+}
+
+
+/*******************************
+ Variations
+*******************************/
+
+& when (@variationItemAligned) {
+ /*-------------------
+ Aligned
+ --------------------*/
+
+ .ui.items > .item > .image + [class*="top aligned"].content {
+ align-self: flex-start;
+ }
+ .ui.items > .item > .image + [class*="middle aligned"].content {
+ align-self: center;
+ }
+ .ui.items > .item > .image + [class*="bottom aligned"].content {
+ align-self: flex-end;
+ }
+}
+
+& when (@variationItemRelaxed) {
+ /*--------------
+ Relaxed
+ ---------------*/
+
+ .ui.relaxed.items > .item {
+ margin: @relaxedItemSpacing 0;
+ }
+ .ui[class*="very relaxed"].items > .item {
+ margin: @veryRelaxedItemSpacing 0;
+ }
+}
+
+& when (@variationItemDivided) {
+ /*-------------------
+ Divided
+ --------------------*/
+
+ .ui.divided.items > .item {
+ border-top: @dividedBorder;
+ margin: @dividedMargin;
+ padding: @dividedPadding;
+ }
+ .ui.divided.items > .item:first-child {
+ border-top: none;
+ margin-top: @dividedFirstLastMargin !important;
+ padding-top: @dividedFirstLastPadding !important;
+ }
+ .ui.divided.items > .item:last-child {
+ margin-bottom: @dividedFirstLastMargin !important;
+ padding-bottom: @dividedFirstLastPadding !important;
+ }
+ & when (@variationItemRelaxed) {
+ /* Relaxed Divided */
+ .ui.relaxed.divided.items > .item {
+ margin: 0;
+ padding: @relaxedItemSpacing 0;
+ }
+ .ui[class*="very relaxed"].divided.items > .item {
+ margin: 0;
+ padding: @veryRelaxedItemSpacing 0;
+ }
+ }
+}
+
+& when (@variationItemLink) {
+ /*-------------------
+ Link
+ --------------------*/
+
+ .ui.items a.item:hover,
+ .ui.link.items > .item:hover {
+ cursor: pointer;
+ }
+
+ .ui.items a.item:hover .content .header,
+ .ui.link.items > .item:hover .content .header {
+ color: @headerLinkHoverColor;
+ }
+}
+
+
+/*--------------
+ Size
+---------------*/
+
+.ui.items > .item {
+ font-size: @relativeMedium;
+}
+& when not (@variationItemSizes = false) {
+ each(@variationItemSizes, {
+ @s: @{value}ItemSize;
+ .ui.@{value}.items > .item {
+ font-size: @@s;
+ }
+ })
+}
+
+& when (@variationItemUnstackable) {
+ /*---------------
+ Unstackable
+ ----------------*/
+
+ @media only screen and (max-width: @largestMobileScreen) {
+ .ui.unstackable.items > .item > .image,
+ .ui.unstackable.items > .item > .image > img {
+ width: @unstackableMobileImageWidth !important;
+ }
+ }
+}
+
+& when (@variationItemInverted) {
+ /*--------------
+ Inverted
+ ---------------*/
+
+ .ui.inverted.items > .item {
+ background: @invertedBackground;
+ }
+ .ui.inverted.items > .item > .content {
+ background: @invertedContentBackground;
+ color: @invertedContentColor;
+ }
+ .ui.inverted.items > .item .extra {
+ background: @invertedExtraBackground;
+ }
+ .ui.inverted.items > .item > .content > .header {
+ color: @invertedHeaderColor;
+ }
+ .ui.inverted.items > .item > .content > .description {
+ color: @invertedDescriptionColor;
+ }
+ .ui.inverted.items > .item .meta {
+ color: @invertedMetaColor;
+ }
+ .ui.inverted.items > .item > .content a:not(.ui) {
+ color: @invertedContentLinkColor;
+ }
+ .ui.inverted.items > .item > .content a:not(.ui):hover {
+ color: @invertedContentLinkHoverColor;
+ }
+ .ui.inverted.items > .item > .content > a.header {
+ color: @invertedHeaderLinkColor;
+ }
+ .ui.inverted.items > .item > .content > a.header:hover {
+ color: @invertedHeaderLinkHoverColor;
+ }
+ .ui.inverted.items > .item .meta > a:not(.ui) {
+ color: @invertedMetaLinkColor;
+ }
+ .ui.inverted.items > .item .meta > a:not(.ui):hover {
+ color: @invertedMetaLinkHoverColor;
+ }
+ .ui.inverted.items > .item > .content .favorite.icon:hover {
+ color: @invertedFavoriteColor;
+ }
+ .ui.inverted.items > .item > .content .active.favorite.icon {
+ color: @invertedFavoriteActiveColor;
+ }
+ .ui.inverted.items > .item > .content .like.icon:hover {
+ color: @invertedLikeColor;
+ }
+ .ui.inverted.items > .item > .content .active.like.icon {
+ color: @invertedLikeActiveColor;
+ }
+ .ui.inverted.items > .item .extra {
+ color: @invertedExtraColor;
+ }
+ .ui.inverted.items a.item:hover .content .header,
+ .ui.inverted.link.items > .item:hover .content .header {
+ color: @invertedHeaderLinkHoverColor;
+ }
+ .ui.inverted.divided.items > .item {
+ border-top: @invertedDividedBorder;
+ }
+ .ui.inverted.divided.items > .item:first-child {
+ border-top: none;
+ }
+}
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/definitions/views/statistic.less b/assets/semantic/src/definitions/views/statistic.less
new file mode 100644
index 0000000..da0a77c
--- /dev/null
+++ b/assets/semantic/src/definitions/views/statistic.less
@@ -0,0 +1,421 @@
+/*!
+ * # Fomantic-UI - Statistic
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+/*******************************
+ Theme
+*******************************/
+
+@type : 'view';
+@element : 'statistic';
+
+@import (multiple) '../../theme.config';
+
+/*******************************
+ Statistic
+*******************************/
+
+/* Standalone */
+.ui.statistic {
+ display: inline-flex;
+ flex-direction: column;
+ margin: @margin;
+ max-width: @maxWidth;
+}
+
+.ui.statistic + .ui.statistic {
+ margin: 0 0 0 @horizontalSpacing;
+}
+
+.ui.statistic:first-child {
+ margin-top: 0;
+}
+.ui.statistic:last-child {
+ margin-bottom: 0;
+}
+
+
+
+/*******************************
+ Group
+*******************************/
+
+/* Grouped */
+.ui.statistics {
+ display: flex;
+ align-items: flex-start;
+ flex-wrap: wrap;
+}
+.ui.statistics > .statistic {
+ display: inline-flex;
+ flex: 0 1 auto;
+ flex-direction: column;
+ margin: @elementMargin;
+ max-width: @elementMaxWidth;
+}
+.ui.statistics {
+ display: flex;
+ margin: @groupMargin;
+}
+
+/* Clearing */
+.ui.statistics:after {
+ display: block;
+ content: ' ';
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+.ui.statistics:first-child {
+ margin-top: 0;
+}
+
+
+/*******************************
+ Content
+*******************************/
+
+
+/*--------------
+ Value
+---------------*/
+
+.ui.statistics .statistic > .value,
+.ui.statistic > .value {
+ font-family: @valueFont;
+ font-size: @valueSize;
+ font-weight: @valueFontWeight;
+ line-height: @valueLineHeight;
+ color: @valueColor;
+ text-transform: @valueTextTransform;
+ text-align: @textAlign;
+}
+
+/*--------------
+ Label
+---------------*/
+
+.ui.statistics .statistic > .label,
+.ui.statistic > .label {
+ font-family: @labelFont;
+ font-size: @labelSize;
+ font-weight: @labelFontWeight;
+ color: @labelColor;
+ text-transform: @labelTextTransform;
+ text-align: @textAlign;
+}
+
+/* Top Label */
+.ui.statistics .statistic > .label ~ .value,
+.ui.statistic > .label ~ .value {
+ margin-top: @topLabelDistance;
+}
+
+/* Bottom Label */
+.ui.statistics .statistic > .value ~ .label,
+.ui.statistic > .value ~ .label {
+ margin-top: @bottomLabelDistance;
+}
+
+
+
+/*******************************
+ Types
+*******************************/
+
+/*--------------
+ Icon Value
+---------------*/
+
+.ui.statistics .statistic > .value > i.icon,
+.ui.statistic > .value > i.icon {
+ opacity: 1;
+ width: auto;
+ margin: 0;
+}
+
+/*--------------
+ Text Value
+---------------*/
+
+.ui.statistics .statistic > .text.value,
+.ui.statistic > .text.value {
+ line-height: @textValueLineHeight;
+ min-height: @textValueMinHeight;
+ font-weight: @textValueFontWeight;
+ text-align: center;
+}
+.ui.statistics .statistic > .text.value + .label,
+.ui.statistic > .text.value + .label {
+ text-align: center;
+}
+
+/*--------------
+ Image Value
+---------------*/
+
+.ui.statistics .statistic > .value img,
+.ui.statistic > .value img {
+ max-height: @imageHeight;
+ vertical-align: @imageVerticalAlign;
+}
+
+
+
+/*******************************
+ Variations
+*******************************/
+
+
+/*--------------
+ Count
+---------------*/
+
+
+.ui.ten.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.ten.statistics .statistic {
+ min-width: @tenColumn;
+ margin: @itemMargin;
+}
+
+.ui.nine.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.nine.statistics .statistic {
+ min-width: @nineColumn;
+ margin: @itemMargin;
+}
+
+.ui.eight.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.eight.statistics .statistic {
+ min-width: @eightColumn;
+ margin: @itemMargin;
+}
+
+.ui.seven.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.seven.statistics .statistic {
+ min-width: @sevenColumn;
+ margin: @itemMargin;
+}
+
+.ui.six.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.six.statistics .statistic {
+ min-width: @sixColumn;
+ margin: @itemMargin;
+}
+
+.ui.five.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.five.statistics .statistic {
+ min-width: @fiveColumn;
+ margin: @itemMargin;
+}
+
+.ui.four.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.four.statistics .statistic {
+ min-width: @fourColumn;
+ margin: @itemMargin;
+}
+
+.ui.three.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.three.statistics .statistic {
+ min-width: @threeColumn;
+ margin: @itemMargin;
+}
+
+.ui.two.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.two.statistics .statistic {
+ min-width: @twoColumn;
+ margin: @itemMargin;
+}
+
+.ui.one.statistics {
+ margin: @itemGroupMargin;
+}
+.ui.one.statistics .statistic {
+ min-width: @oneColumn;
+ margin: @itemMargin;
+}
+
+
+
+& when (@variationStatisticHorizontal) {
+ /*--------------
+ Horizontal
+ ---------------*/
+
+ .ui.horizontal.statistic {
+ flex-direction: row;
+ align-items: center;
+ }
+ .ui.horizontal.statistics {
+ flex-direction: column;
+ margin: 0;
+ max-width: none;
+ }
+ .ui.horizontal.statistics .statistic {
+ flex-direction: row;
+ align-items: center;
+ max-width: none;
+ margin: @horizontalGroupElementMargin;
+ }
+
+ .ui.horizontal.statistic > .text.value,
+ .ui.horizontal.statistics > .statistic > .text.value {
+ min-height: 0 !important;
+ }
+ .ui.horizontal.statistics .statistic > .value > i.icon,
+ .ui.horizontal.statistic > .value > i.icon {
+ width: @iconWidth;
+ }
+
+ .ui.horizontal.statistics .statistic > .value,
+ .ui.horizontal.statistic > .value {
+ display: inline-block;
+ vertical-align: middle;
+ }
+ .ui.horizontal.statistics .statistic > .label,
+ .ui.horizontal.statistic > .label {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 0 0 @horizontalLabelDistance;
+ }
+}
+
+& when (@variationStatisticInverted) {
+ /*--------------
+ Inverted
+ ---------------*/
+
+ .ui.inverted.statistics .statistic > .value,
+ .ui.inverted.statistic .value {
+ color: @invertedValueColor;
+ }
+ .ui.inverted.statistics .statistic > .label,
+ .ui.inverted.statistic .label {
+ color: @invertedLabelColor;
+ }
+}
+
+/*--------------
+ Colors
+---------------*/
+
+each(@colors,{
+ @color: replace(@key,'@','');
+ @c: @colors[@@color][color];
+ @l: @colors[@@color][light];
+
+ .ui.@{color}.statistics .statistic > .value,
+ .ui.statistics .@{color}.statistic > .value,
+ .ui.@{color}.statistic > .value {
+ color: @c;
+ }
+ & when (@variationStatisticInverted) {
+ .ui.inverted.@{color}.statistics .statistic > .value,
+ .ui.statistics .inverted.@{color}.statistic > .value,
+ .ui.inverted.@{color}.statistic > .value {
+ color: @l;
+ }
+ }
+})
+
+& when (@variationStatisticFloated) {
+ /*--------------
+ Floated
+ ---------------*/
+
+ .ui[class*="left floated"].statistic {
+ float: left;
+ margin: @leftFloatedMargin;
+ }
+ .ui[class*="right floated"].statistic {
+ float: right;
+ margin: @rightFloatedMargin;
+ }
+ .ui.floated.statistic:last-child {
+ margin-bottom: 0;
+ }
+}
+
+& when (@variationStatisticStackable) {
+ /*--------------
+ Stackable
+ ---------------*/
+
+ @media only screen and (max-width: @largestMobileScreen) {
+ .ui.stackable.statistics {
+ width: auto;
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+ }
+ .ui.stackable.statistics > .statistic {
+ width: 100% !important;
+ margin: 0 0 !important;
+ padding: (@stackableRowSpacing / 2) (@stackableGutter / 2) !important;
+ }
+ }
+}
+
+/*--------------
+ Sizes
+---------------*/
+
+
+/* Medium */
+.ui.statistics .statistic > .value,
+.ui.statistic > .value {
+ font-size: @valueSize;
+}
+.ui.horizontal.statistics .statistic > .value,
+.ui.horizontal.statistic > .value {
+ font-size: @horizontalValueSize;
+}
+.ui.statistics .statistic > .text.value,
+.ui.statistic > .text.value {
+ font-size: @textValueSize;
+}
+& when not (@variationStatisticSizes = false) {
+ each(@variationStatisticSizes, {
+ @s: @{value}ValueSize;
+ @hs: @{value}HorizontalValueSize;
+ @ts: @{value}TextValueSize;
+ .ui.@{value}.statistics .statistic > .value,
+ .ui.@{value}.statistic > .value {
+ font-size: @@s;
+ }
+ .ui.@{value}.horizontal.statistics .statistic > .value,
+ .ui.@{value}.horizontal.statistic > .value {
+ font-size: @@hs;
+ }
+ .ui.@{value}.statistics .statistic > .text.value,
+ .ui.@{value}.statistic > .text.value {
+ font-size: @@ts;
+ }
+ })
+}
+
+.loadUIOverrides();
diff --git a/assets/semantic/src/semantic.less b/assets/semantic/src/semantic.less
new file mode 100644
index 0000000..01b2c0d
--- /dev/null
+++ b/assets/semantic/src/semantic.less
@@ -0,0 +1,72 @@
+/*
+
+███████╗███████╗███╗ ███╗ █████╗ ███╗ ██╗████████╗██╗ ██████╗ ██╗ ██╗██╗
+██╔════╝██╔════╝████╗ ████║██╔══██╗████╗ ██║╚══██╔══╝██║██╔════╝ ██║ ██║██║
+███████╗█████╗ ██╔████╔██║███████║██╔██╗ ██║ ██║ ██║██║ ██║ ██║██║
+╚════██║██╔══╝ ██║╚██╔╝██║██╔══██║██║╚██╗██║ ██║ ██║██║ ██║ ██║██║
+███████║███████╗██║ ╚═╝ ██║██║ ██║██║ ╚████║ ██║ ██║╚██████╗ ╚██████╔╝██║
+╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝
+
+ Import this file into your LESS project to use Fomantic-UI without build tools
+*/
+
+/* Global */
+& { @import "definitions/globals/reset"; }
+& { @import "definitions/globals/site"; }
+
+/* Elements */
+& { @import "definitions/elements/button"; }
+& { @import "definitions/elements/container"; }
+& { @import "definitions/elements/divider"; }
+& { @import "definitions/elements/emoji"; }
+& { @import "definitions/elements/flag"; }
+& { @import "definitions/elements/header"; }
+& { @import "definitions/elements/icon"; }
+& { @import "definitions/elements/image"; }
+& { @import "definitions/elements/input"; }
+& { @import "definitions/elements/label"; }
+& { @import "definitions/elements/list"; }
+& { @import "definitions/elements/loader"; }
+& { @import "definitions/elements/placeholder"; }
+& { @import "definitions/elements/rail"; }
+& { @import "definitions/elements/reveal"; }
+& { @import "definitions/elements/segment"; }
+& { @import "definitions/elements/step"; }
+& { @import "definitions/elements/text"; }
+
+/* Collections */
+& { @import "definitions/collections/breadcrumb"; }
+& { @import "definitions/collections/form"; }
+& { @import "definitions/collections/grid"; }
+& { @import "definitions/collections/menu"; }
+& { @import "definitions/collections/message"; }
+& { @import "definitions/collections/table"; }
+
+/* Views */
+& { @import "definitions/views/ad"; }
+& { @import "definitions/views/card"; }
+& { @import "definitions/views/comment"; }
+& { @import "definitions/views/feed"; }
+& { @import "definitions/views/item"; }
+& { @import "definitions/views/statistic"; }
+
+/* Modules */
+& { @import "definitions/modules/accordion"; }
+& { @import "definitions/modules/calendar"; }
+& { @import "definitions/modules/checkbox"; }
+& { @import "definitions/modules/dimmer"; }
+& { @import "definitions/modules/dropdown"; }
+& { @import "definitions/modules/embed"; }
+& { @import "definitions/modules/modal"; }
+& { @import "definitions/modules/nag"; }
+& { @import "definitions/modules/popup"; }
+& { @import "definitions/modules/progress"; }
+& { @import "definitions/modules/slider"; }
+& { @import "definitions/modules/rating"; }
+& { @import "definitions/modules/search"; }
+& { @import "definitions/modules/shape"; }
+& { @import "definitions/modules/sidebar"; }
+& { @import "definitions/modules/sticky"; }
+& { @import "definitions/modules/tab"; }
+& { @import "definitions/modules/toast"; }
+& { @import "definitions/modules/transition"; }
diff --git a/assets/semantic/src/site/collections/breadcrumb.overrides b/assets/semantic/src/site/collections/breadcrumb.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/collections/breadcrumb.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/breadcrumb.variables b/assets/semantic/src/site/collections/breadcrumb.variables
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/collections/breadcrumb.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/form.overrides b/assets/semantic/src/site/collections/form.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/collections/form.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/form.variables b/assets/semantic/src/site/collections/form.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/collections/form.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/grid.overrides b/assets/semantic/src/site/collections/grid.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/collections/grid.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/grid.variables b/assets/semantic/src/site/collections/grid.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/collections/grid.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/menu.overrides b/assets/semantic/src/site/collections/menu.overrides
new file mode 100644
index 0000000..6521632
--- /dev/null
+++ b/assets/semantic/src/site/collections/menu.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
\ No newline at end of file
diff --git a/assets/semantic/src/site/collections/menu.variables b/assets/semantic/src/site/collections/menu.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/collections/menu.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/message.overrides b/assets/semantic/src/site/collections/message.overrides
new file mode 100644
index 0000000..06812ec
--- /dev/null
+++ b/assets/semantic/src/site/collections/message.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/message.variables b/assets/semantic/src/site/collections/message.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/collections/message.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/table.overrides b/assets/semantic/src/site/collections/table.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/collections/table.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/collections/table.variables b/assets/semantic/src/site/collections/table.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/collections/table.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/button.overrides b/assets/semantic/src/site/elements/button.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/button.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/button.variables b/assets/semantic/src/site/elements/button.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/button.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/container.overrides b/assets/semantic/src/site/elements/container.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/container.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/container.variables b/assets/semantic/src/site/elements/container.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/container.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/divider.overrides b/assets/semantic/src/site/elements/divider.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/divider.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/divider.variables b/assets/semantic/src/site/elements/divider.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/divider.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/flag.overrides b/assets/semantic/src/site/elements/flag.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/flag.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/flag.variables b/assets/semantic/src/site/elements/flag.variables
new file mode 100644
index 0000000..96f7982
--- /dev/null
+++ b/assets/semantic/src/site/elements/flag.variables
@@ -0,0 +1,3 @@
+/*-------------------
+ Flag Variables
+--------------------*/
diff --git a/assets/semantic/src/site/elements/header.overrides b/assets/semantic/src/site/elements/header.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/header.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/header.variables b/assets/semantic/src/site/elements/header.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/header.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/icon.overrides b/assets/semantic/src/site/elements/icon.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/icon.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/icon.variables b/assets/semantic/src/site/elements/icon.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/icon.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/image.overrides b/assets/semantic/src/site/elements/image.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/image.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/image.variables b/assets/semantic/src/site/elements/image.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/image.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/input.overrides b/assets/semantic/src/site/elements/input.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/input.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/input.variables b/assets/semantic/src/site/elements/input.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/input.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/label.overrides b/assets/semantic/src/site/elements/label.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/label.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/label.variables b/assets/semantic/src/site/elements/label.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/label.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/list.overrides b/assets/semantic/src/site/elements/list.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/list.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/list.variables b/assets/semantic/src/site/elements/list.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/list.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/loader.overrides b/assets/semantic/src/site/elements/loader.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/loader.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/loader.variables b/assets/semantic/src/site/elements/loader.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/loader.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/rail.overrides b/assets/semantic/src/site/elements/rail.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/rail.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/rail.variables b/assets/semantic/src/site/elements/rail.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/rail.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/reveal.overrides b/assets/semantic/src/site/elements/reveal.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/reveal.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/reveal.variables b/assets/semantic/src/site/elements/reveal.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/reveal.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/segment.overrides b/assets/semantic/src/site/elements/segment.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/segment.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/segment.variables b/assets/semantic/src/site/elements/segment.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/segment.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/step.overrides b/assets/semantic/src/site/elements/step.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/elements/step.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/elements/step.variables b/assets/semantic/src/site/elements/step.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/elements/step.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/globals/reset.overrides b/assets/semantic/src/site/globals/reset.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/globals/reset.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/globals/reset.variables b/assets/semantic/src/site/globals/reset.variables
new file mode 100644
index 0000000..d6f3069
--- /dev/null
+++ b/assets/semantic/src/site/globals/reset.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Global Variables
+*******************************/
diff --git a/assets/semantic/src/site/globals/site.overrides b/assets/semantic/src/site/globals/site.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/globals/site.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/globals/site.variables b/assets/semantic/src/site/globals/site.variables
new file mode 100644
index 0000000..2f2466d
--- /dev/null
+++ b/assets/semantic/src/site/globals/site.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Global Variables
+*******************************/
\ No newline at end of file
diff --git a/assets/semantic/src/site/modules/accordion.overrides b/assets/semantic/src/site/modules/accordion.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/accordion.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/accordion.variables b/assets/semantic/src/site/modules/accordion.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/accordion.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/chatroom.overrides b/assets/semantic/src/site/modules/chatroom.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/chatroom.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/chatroom.variables b/assets/semantic/src/site/modules/chatroom.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/chatroom.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/checkbox.overrides b/assets/semantic/src/site/modules/checkbox.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/checkbox.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/checkbox.variables b/assets/semantic/src/site/modules/checkbox.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/checkbox.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/dimmer.overrides b/assets/semantic/src/site/modules/dimmer.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/dimmer.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/dimmer.variables b/assets/semantic/src/site/modules/dimmer.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/dimmer.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/dropdown.overrides b/assets/semantic/src/site/modules/dropdown.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/dropdown.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/dropdown.variables b/assets/semantic/src/site/modules/dropdown.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/dropdown.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/embed.overrides b/assets/semantic/src/site/modules/embed.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/embed.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/embed.variables b/assets/semantic/src/site/modules/embed.variables
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/site/modules/modal.overrides b/assets/semantic/src/site/modules/modal.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/modal.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/modal.variables b/assets/semantic/src/site/modules/modal.variables
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/modal.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/nag.overrides b/assets/semantic/src/site/modules/nag.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/nag.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/nag.variables b/assets/semantic/src/site/modules/nag.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/nag.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/popup.overrides b/assets/semantic/src/site/modules/popup.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/popup.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/popup.variables b/assets/semantic/src/site/modules/popup.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/popup.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/progress.overrides b/assets/semantic/src/site/modules/progress.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/progress.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/progress.variables b/assets/semantic/src/site/modules/progress.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/progress.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/rating.overrides b/assets/semantic/src/site/modules/rating.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/rating.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/rating.variables b/assets/semantic/src/site/modules/rating.variables
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/rating.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/search.overrides b/assets/semantic/src/site/modules/search.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/search.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/search.variables b/assets/semantic/src/site/modules/search.variables
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/search.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/shape.overrides b/assets/semantic/src/site/modules/shape.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/shape.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/shape.variables b/assets/semantic/src/site/modules/shape.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/shape.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/sidebar.overrides b/assets/semantic/src/site/modules/sidebar.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/sidebar.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/sidebar.variables b/assets/semantic/src/site/modules/sidebar.variables
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/sidebar.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/sticky.overrides b/assets/semantic/src/site/modules/sticky.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/sticky.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/sticky.variables b/assets/semantic/src/site/modules/sticky.variables
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/sticky.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/tab.overrides b/assets/semantic/src/site/modules/tab.overrides
new file mode 100644
index 0000000..1ab9ef8
--- /dev/null
+++ b/assets/semantic/src/site/modules/tab.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/tab.variables b/assets/semantic/src/site/modules/tab.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/tab.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/transition.overrides b/assets/semantic/src/site/modules/transition.overrides
new file mode 100644
index 0000000..c3ac6c8
--- /dev/null
+++ b/assets/semantic/src/site/modules/transition.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Site Overrides
+*******************************/
diff --git a/assets/semantic/src/site/modules/transition.variables b/assets/semantic/src/site/modules/transition.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/modules/transition.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/ad.overrides b/assets/semantic/src/site/views/ad.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/ad.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/ad.variables b/assets/semantic/src/site/views/ad.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/ad.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/card.overrides b/assets/semantic/src/site/views/card.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/card.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/card.variables b/assets/semantic/src/site/views/card.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/card.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/comment.overrides b/assets/semantic/src/site/views/comment.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/comment.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/comment.variables b/assets/semantic/src/site/views/comment.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/comment.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/feed.overrides b/assets/semantic/src/site/views/feed.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/feed.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/feed.variables b/assets/semantic/src/site/views/feed.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/feed.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/item.overrides b/assets/semantic/src/site/views/item.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/item.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/item.variables b/assets/semantic/src/site/views/item.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/item.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/statistic.overrides b/assets/semantic/src/site/views/statistic.overrides
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/statistic.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/site/views/statistic.variables b/assets/semantic/src/site/views/statistic.variables
new file mode 100644
index 0000000..7c6bcf4
--- /dev/null
+++ b/assets/semantic/src/site/views/statistic.variables
@@ -0,0 +1,3 @@
+/*******************************
+ User Variable Overrides
+*******************************/
diff --git a/assets/semantic/src/theme.config b/assets/semantic/src/theme.config
new file mode 100644
index 0000000..6f08549
--- /dev/null
+++ b/assets/semantic/src/theme.config
@@ -0,0 +1,98 @@
+/*
+
+████████╗██╗ ██╗███████╗███╗ ███╗███████╗███████╗
+╚══██╔══╝██║ ██║██╔════╝████╗ ████║██╔════╝██╔════╝
+ ██║ ███████║█████╗ ██╔████╔██║█████╗ ███████╗
+ ██║ ██╔══██║██╔══╝ ██║╚██╔╝██║██╔══╝ ╚════██║
+ ██║ ██║ ██║███████╗██║ ╚═╝ ██║███████╗███████║
+ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝
+
+*/
+
+/*******************************
+ Theme Selection
+*******************************/
+
+/* To override a theme for an individual element
+ specify theme name below
+*/
+
+/* Global */
+@site : 'default';
+@reset : 'default';
+
+/* Elements */
+@button : 'default';
+@container : 'default';
+@divider : 'default';
+@emoji : 'default';
+@flag : 'default';
+@header : 'default';
+@icon : 'default';
+@image : 'default';
+@input : 'default';
+@label : 'default';
+@list : 'default';
+@loader : 'default';
+@placeholder: 'default';
+@rail : 'default';
+@reveal : 'default';
+@segment : 'default';
+@step : 'default';
+@text : 'default';
+
+/* Collections */
+@breadcrumb : 'default';
+@form : 'default';
+@grid : 'default';
+@menu : 'default';
+@message : 'default';
+@table : 'default';
+
+/* Modules */
+@accordion : 'default';
+@calendar : 'default';
+@checkbox : 'default';
+@dimmer : 'default';
+@dropdown : 'default';
+@embed : 'default';
+@modal : 'default';
+@nag : 'default';
+@popup : 'default';
+@progress : 'default';
+@slider : 'default';
+@rating : 'default';
+@search : 'default';
+@shape : 'default';
+@sidebar : 'default';
+@sticky : 'default';
+@tab : 'default';
+@toast : 'default';
+@transition : 'default';
+
+/* Views */
+@ad : 'default';
+@card : 'default';
+@comment : 'default';
+@feed : 'default';
+@item : 'default';
+@statistic : 'default';
+
+/*******************************
+ Folders
+*******************************/
+
+/* Path to theme packages */
+@themesFolder : 'themes';
+
+/* Path to site override folder */
+@siteFolder : 'site/';
+
+
+/*******************************
+ Import Theme
+*******************************/
+
+@import (multiple) "theme.less";
+
+/* End Config */
diff --git a/assets/semantic/src/theme.less b/assets/semantic/src/theme.less
new file mode 100644
index 0000000..2e4c057
--- /dev/null
+++ b/assets/semantic/src/theme.less
@@ -0,0 +1,77 @@
+/*******************************
+ Import Directives
+*******************************/
+
+/*------------------
+ Theme
+-------------------*/
+
+@theme: @@element;
+
+/*--------------------
+ Site Variables
+---------------------*/
+
+/* Default site.variables */
+@import "@{themesFolder}/default/globals/site.variables";
+
+/* Packaged site.variables */
+@import (optional) "@{themesFolder}/@{site}/globals/site.variables";
+
+/* Component's site.variables */
+& when not (@theme = 'default') {
+ @import (optional) "@{themesFolder}/@{theme}/globals/site.variables";
+}
+
+/* Site theme site.variables */
+@import (optional) "@{siteFolder}/globals/site.variables";
+
+
+/*-------------------
+ Component Variables
+---------------------*/
+
+/* Default */
+@import "@{themesFolder}/default/@{type}s/@{element}.variables";
+
+/* Packaged Theme */
+@import (optional) "@{themesFolder}/@{theme}/@{type}s/@{element}.variables";
+
+/* Site Theme */
+@import (optional) "@{siteFolder}/@{type}s/@{element}.variables";
+
+
+/*-------------------------
+ Central Color Map
+-------------------------*/
+
+/* Default */
+@import "@{themesFolder}/default/globals/colors.less";
+
+/* Site Theme */
+@import (optional) "@{themesFolder}/@{site}/globals/colors.less";
+
+
+/*******************************
+ Mix-ins
+*******************************/
+
+/*------------------
+ Fonts
+-------------------*/
+
+.loadFonts() when (@importGoogleFonts) {
+ @import (css) url('@{googleProtocol}fonts.googleapis.com/css?family=@{googleFontRequest}');
+}
+
+/*------------------
+ Overrides
+-------------------*/
+
+.loadUIOverrides() {
+ & when not (@theme = 'default') {
+ @import (optional) "@{themesFolder}/default/@{type}s/@{element}.overrides";
+ }
+ @import (optional) "@{themesFolder}/@{theme}/@{type}s/@{element}.overrides";
+ @import (optional) "@{siteFolder}/@{type}s/@{element}.overrides";
+}
diff --git a/assets/semantic/src/themes/amazon/elements/button.overrides b/assets/semantic/src/themes/amazon/elements/button.overrides
new file mode 100644
index 0000000..c17a6b2
--- /dev/null
+++ b/assets/semantic/src/themes/amazon/elements/button.overrides
@@ -0,0 +1,46 @@
+.ui.button {
+ background-image: linear-gradient(center top , #F7F8FA, #E7E9EC) repeat scroll 0 0 rgba(0, 0, 0, 0);
+}
+
+.ui.primary.button {
+ color: #111111;
+ border: 1px solid;
+ border-color: #C59F43 #AA8326 #957321;
+}
+.ui.primary.button:hover {
+ border-color: #C59F43 #AA8326 #957321;
+ color: #111111;
+}
+
+.ui.secondary.button {
+ border: 1px solid;
+ border-color: #3D444C #2F353B #2C3137;
+}
+.ui.secondary.button:hover {
+ border-color: #32373E #24282D #212429;
+}
+
+
+.ui.labeled.icon.buttons .button > .icon,
+.ui.labeled.icon.button > .icon {
+ padding-bottom: 0.48em;
+ padding-top: 0.48em;
+ position: absolute;
+ text-align: center;
+ width: 2em;
+ height: 2em;
+ top: 0.35em;
+ left: 0.4em;
+ border-radius: 3px;
+}
+.ui.right.labeled.icon.buttons .button > .icon,
+.ui.right.labeled.icon.button > .icon {
+ left: auto;
+ right: 0.4em;
+ border-radius: 3px;
+}
+
+.ui.basic.labeled.icon.buttons .button > .icon,
+.ui.basic.labeled.icon.button > .icon {
+ padding-top: 0.4em !important;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/amazon/elements/button.variables b/assets/semantic/src/themes/amazon/elements/button.variables
new file mode 100644
index 0000000..5dcb22a
--- /dev/null
+++ b/assets/semantic/src/themes/amazon/elements/button.variables
@@ -0,0 +1,58 @@
+/*-------------------
+ Button Variables
+--------------------*/
+
+/* Button Variables */
+@pageFont: Helvetica Neue, Helvetica, Arial, sans-serif;
+@textTransform: none;
+@textColor: #111111;
+@fontWeight: normal;
+@transition:
+ opacity @defaultDuration @defaultEasing,
+ background-color @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing,
+ background @defaultDuration @defaultEasing
+;
+
+@hoverBackgroundColor: #E0E0E0;
+
+@borderRadius: 3px;
+@verticalPadding: 0.8em;
+@horizontalPadding: 1.75em;
+
+@backgroundColor: #F7F8FA;
+@backgroundImage: linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
+@boxShadow:
+ 0 1px 0 1px rgba(255, 255, 255, 0.3) inset,
+ 0 0 0 1px #ADB2BB inset
+;
+
+@coloredBackgroundImage: linear-gradient(rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.2));
+@coloredBoxShadow:
+ 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset
+;
+
+@downBoxShadow:
+ 0 0 0 1px #ADB2BB inset,
+ 0 1px 3px rgba(0, 0, 0, 0.2) inset
+;
+
+@labeledIconBackgroundColor: #313A43;
+@labeledIconColor: #FFFFFF;
+@labeledIconBorder: transparent;
+
+@black: #444C55;
+@orange: #F4CC67;
+
+@coloredBackgroundImage: linear-gradient(rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.1));
+@primaryColor: @orange;
+@secondaryColor: @black;
+
+@mini: 10px;
+@tiny: 11px;
+@small: 12px;
+@medium: 13px;
+@large: 14px;
+@big: 16px;
+@huge: 18px;
+@massive: 22px;
diff --git a/assets/semantic/src/themes/amazon/globals/site.variables b/assets/semantic/src/themes/amazon/globals/site.variables
new file mode 100644
index 0000000..d86b35c
--- /dev/null
+++ b/assets/semantic/src/themes/amazon/globals/site.variables
@@ -0,0 +1,43 @@
+/*******************************
+ User Global Variables
+*******************************/
+
+@pageMinWidth : 1049px;
+@pageOverflowX : visible;
+
+@emSize: 13px;
+@fontSize : 13px;
+@fontName : 'Arial';
+@importGoogleFonts : false;
+
+@h1: 2.25em;
+
+@defaultBorderRadius: 0.30769em; /* 4px @ 13em */
+
+@disabledOpacity: 0.3;
+
+@black: #444C55;
+@orange: #FDE07B;
+
+@linkColor: #0066C0;
+@linkHoverColor: #C45500;
+@linkHoverUnderline: underline;
+
+@borderColor: rgba(0, 0, 0, 0.13);
+@solidBorderColor: #DDDDDD;
+@internalBorderColor: rgba(0, 0, 0, 0.06);
+@selectedBorderColor: #51A7E8;
+
+/* Breakpoints */
+@largeMonitorBreakpoint: 1049px;
+@computerBreakpoint: @largeMonitorBreakpoint;
+@tabletBreakpoint: @largeMonitorBreakpoint;
+
+/* Colors */
+@blue: #80A6CD;
+@green: #60B044;
+@orange: #D26911;
+
+
+@infoBackgroundColor: #E6F1F6;
+@infoTextColor: #4E575B;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/basic/assets/fonts/icons.eot b/assets/semantic/src/themes/basic/assets/fonts/icons.eot
new file mode 100644
index 0000000..25066de
Binary files /dev/null and b/assets/semantic/src/themes/basic/assets/fonts/icons.eot differ
diff --git a/assets/semantic/src/themes/basic/assets/fonts/icons.svg b/assets/semantic/src/themes/basic/assets/fonts/icons.svg
new file mode 100644
index 0000000..c3aba78
--- /dev/null
+++ b/assets/semantic/src/themes/basic/assets/fonts/icons.svg
@@ -0,0 +1,450 @@
+
+
+
+
+Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
+ By root
+Copyright (C) 2012 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/semantic/src/themes/basic/assets/fonts/icons.ttf b/assets/semantic/src/themes/basic/assets/fonts/icons.ttf
new file mode 100644
index 0000000..318a264
Binary files /dev/null and b/assets/semantic/src/themes/basic/assets/fonts/icons.ttf differ
diff --git a/assets/semantic/src/themes/basic/assets/fonts/icons.woff b/assets/semantic/src/themes/basic/assets/fonts/icons.woff
new file mode 100644
index 0000000..baba1b5
Binary files /dev/null and b/assets/semantic/src/themes/basic/assets/fonts/icons.woff differ
diff --git a/assets/semantic/src/themes/basic/collections/table.overrides b/assets/semantic/src/themes/basic/collections/table.overrides
new file mode 100644
index 0000000..e5befff
--- /dev/null
+++ b/assets/semantic/src/themes/basic/collections/table.overrides
@@ -0,0 +1,4 @@
+/*******************************
+ Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/basic/collections/table.variables b/assets/semantic/src/themes/basic/collections/table.variables
new file mode 100644
index 0000000..e51dee8
--- /dev/null
+++ b/assets/semantic/src/themes/basic/collections/table.variables
@@ -0,0 +1,11 @@
+/*-------------------
+ Table Variables
+--------------------*/
+
+@headerBackground: @white;
+@footerBackground: @white;
+
+@cellVerticalPadding: 1em;
+@cellHorizontalPadding: 1em;
+
+@stateMarkerWidth: 1px;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/basic/elements/button.overrides b/assets/semantic/src/themes/basic/elements/button.overrides
new file mode 100644
index 0000000..e5befff
--- /dev/null
+++ b/assets/semantic/src/themes/basic/elements/button.overrides
@@ -0,0 +1,4 @@
+/*******************************
+ Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/basic/elements/button.variables b/assets/semantic/src/themes/basic/elements/button.variables
new file mode 100644
index 0000000..54e0af7
--- /dev/null
+++ b/assets/semantic/src/themes/basic/elements/button.variables
@@ -0,0 +1,44 @@
+/*-------------------
+ Button Variables
+--------------------*/
+
+/* Button Variables */
+@textTransform: none;
+@fontWeight: @normal;
+@textColor: #333333;
+
+@primaryColor: #333333;
+
+@borderRadius: 0.25em;
+
+@backgroundColor: #EEEEEE;
+@backgroundImage: none;
+@boxShadow: none;
+
+@hoverBackgroundColor: #DDDDDD;
+@hoverBackgroundImage: none;
+@hoverBoxShadow: none;
+
+@downBackgroundColor: #D0D0D0;
+@downBackgroundImage: none;
+@downBoxShadow: none;
+
+@activeBackgroundColor: #CCCCCC;
+@activeBackgroundImage: none;
+@activeBoxShadow: none;
+
+@verticalBoxShadow: none;
+
+@loadingBackgroundColor: #F0F0F0;
+
+@labeledIconLeftShadow: none;
+@labeledIconRightShadow: none;
+
+@mini: 0.6rem;
+@tiny: 0.7rem;
+@small: 0.85rem;
+@medium: 0.92rem;
+@large: 1rem;
+@big: 1.125rem;
+@huge: 1.25rem;
+@massive: 1.3rem;
diff --git a/assets/semantic/src/themes/basic/elements/icon.overrides b/assets/semantic/src/themes/basic/elements/icon.overrides
new file mode 100644
index 0000000..a1fc227
--- /dev/null
+++ b/assets/semantic/src/themes/basic/elements/icon.overrides
@@ -0,0 +1,189 @@
+/* basic.icons available */
+i.icon.circle.attention:before { content: '\2757'; } /* '❗' */
+i.icon.circle.help:before { content: '\e704'; } /* '' */
+i.icon.circle.info:before { content: '\e705'; } /* '' */
+i.icon.add:before { content: '\2795'; } /* '➕' */
+
+i.icon.chart:before { content: '📈'; } /* '\1f4c8' */
+i.icon.chart.bar:before { content: '📊'; } /* '\1f4ca' */
+i.icon.chart.pie:before { content: '\e7a2'; } /* '' */
+
+i.icon.resize.full:before { content: '\e744'; } /* '' */
+i.icon.resize.horizontal:before { content: '\2b0d'; } /* '⬍' */
+i.icon.resize.small:before { content: '\e746'; } /* '' */
+i.icon.resize.vertical:before { content: '\2b0c'; } /* '⬌' */
+
+i.icon.down:before { content: '\2193'; } /* '↓' */
+i.icon.down.triangle:before { content: '\25be'; } /* '▾' */
+i.icon.down.arrow:before { content: '\e75c'; } /* '' */
+
+i.icon.left:before { content: '\2190'; } /* '←' */
+i.icon.left.triangle:before { content: '\25c2'; } /* '◂' */
+i.icon.left.arrow:before { content: '\e75d'; } /* '' */
+
+i.icon.right:before { content: '\2192'; } /* '→' */
+i.icon.right.triangle:before { content: '\25b8'; } /* '▸' */
+i.icon.right.arrow:before { content: '\e75e'; } /* '' */
+
+i.icon.up:before { content: '\2191'; } /* '↑' */
+i.icon.up.triangle:before { content: '\25b4'; } /* '▴' */
+i.icon.up.arrow:before { content: '\e75f'; } /* '' */
+
+i.icon.folder:before { content: '\e810'; } /* '' */
+i.icon.open.folder:before { content: '📂'; } /* '\1f4c2' */
+
+i.icon.globe:before { content: '𝌍'; } /* '\1d30d' */
+i.icon.desk.globe:before { content: '🌐'; } /* '\1f310' */
+
+i.icon.star:before { content: '\e801'; } /* '' */
+i.icon.star.empty:before { content: '\e800'; } /* '' */
+i.icon.star.half:before { content: '\e701'; } /* '' */
+
+i.icon.lock:before { content: '🔒'; } /* '\1f512' */
+i.icon.unlock:before { content: '🔓'; } /* '\1f513' */
+
+i.icon.layout.grid:before { content: '\e80c'; } /* '' */
+i.icon.layout.block:before { content: '\e708'; } /* '' */
+i.icon.layout.list:before { content: '\e80b'; } /* '' */
+
+i.icon.heart.empty:before { content: '\2661'; } /* '♡' */
+i.icon.heart:before { content: '\2665'; } /* '♥' */
+
+
+i.icon.asterisk:before { content: '\2731'; } /* '✱' */
+i.icon.attachment:before { content: '📎'; } /* '\1f4ce' */
+i.icon.attention:before { content: '\26a0'; } /* '⚠' */
+i.icon.trophy:before { content: '🏉'; } /* '\1f3c9' */
+i.icon.barcode:before { content: '\e792'; } /* '' */
+i.icon.cart:before { content: '\e813'; } /* '' */
+i.icon.block:before { content: '🚫'; } /* '\1f6ab' */
+i.icon.book:before { content: '📖'; }
+i.icon.bookmark:before { content: '🔖'; } /* '\1f516' */
+i.icon.calendar:before { content: '📅'; } /* '\1f4c5' */
+i.icon.cancel:before { content: '\2716'; } /* '✖' */
+i.icon.close:before { content: '\e80d'; } /* '' */
+i.icon.color:before { content: '\e794'; } /* '' */
+i.icon.chat:before { content: '\e720'; } /* '' */
+i.icon.check:before { content: '\2611'; } /* '☑' */
+i.icon.time:before { content: '🕔'; } /* '\1f554' */
+i.icon.cloud:before { content: '\2601'; } /* '☁' */
+i.icon.code:before { content: '\e714'; } /* '' */
+i.icon.email:before { content: '\40'; } /* '@' */
+i.icon.settings:before { content: '\26ef'; } /* '⛯' */
+i.icon.setting:before { content: '\2699'; } /* '⚙' */
+i.icon.comment:before { content: '\e802'; } /* '' */
+i.icon.clockwise.counter:before { content: '\27f2'; } /* '⟲' */
+i.icon.clockwise:before { content: '\27f3'; } /* '⟳' */
+i.icon.cube:before { content: '\e807'; } /* '' */
+i.icon.direction:before { content: '\27a2'; } /* '➢' */
+i.icon.doc:before { content: '📄'; } /* '\1f4c4' */
+i.icon.docs:before { content: '\e736'; } /* '' */
+i.icon.dollar:before { content: '💵'; } /* '\1f4b5' */
+i.icon.paint:before { content: '\e7b5'; } /* '' */
+i.icon.edit:before { content: '\270d'; } /* '✍' */
+i.icon.eject:before { content: '\2ecf'; } /* '⻏' */
+i.icon.export:before { content: '\e715'; } /* '' */
+i.icon.hide:before { content: '\e70b'; } /* '' */
+i.icon.unhide:before { content: '\e80f'; } /* '' */
+i.icon.facebook:before { content: '\f301'; } /* '' */
+i.icon.fast-forward:before { content: '\e804'; } /* '' */
+i.icon.fire:before { content: '🔥'; } /* '\1f525' */
+i.icon.flag:before { content: '\2691'; } /* '⚑' */
+i.icon.lightning:before { content: '\26a1'; } /* '⚡' */
+i.icon.lab:before { content: '\68'; } /* 'h' */
+i.icon.flight:before { content: '\2708'; } /* '✈' */
+i.icon.forward:before { content: '\27a6'; } /* '➦' */
+i.icon.gift:before { content: '🎁'; } /* '\1f381' */
+i.icon.github:before { content: '\f308'; } /* '' */
+i.icon.globe:before { content: '\e817'; } /* '' */
+i.icon.headphones:before { content: '🎧'; } /* '\1f3a7' */
+i.icon.question:before { content: '\2753'; } /* '❓' */
+i.icon.home:before { content: '\2302'; } /* '⌂' */
+i.icon.i:before { content: '\2139'; } /* 'ℹ' */
+i.icon.idea:before { content: '💡'; } /* '\1f4a1' */
+i.icon.open:before { content: '🔗'; } /* '\1f517' */
+i.icon.content:before { content: '\e782'; } /* '' */
+i.icon.location:before { content: '\e724'; } /* '' */
+i.icon.mail:before { content: '\2709'; } /* '✉' */
+i.icon.mic:before { content: '🎤'; } /* '\1f3a4' */
+i.icon.minus:before { content: '\2d'; } /* '-' */
+i.icon.money:before { content: '💰'; } /* '\1f4b0' */
+i.icon.off:before { content: '\e78e'; } /* '' */
+i.icon.pause:before { content: '\e808'; } /* '' */
+i.icon.photos:before { content: '\e812'; } /* '' */
+i.icon.photo:before { content: '🌄'; } /* '\1f304' */
+i.icon.pin:before { content: '📌'; } /* '\1f4cc' */
+i.icon.play:before { content: '\e809'; } /* '' */
+i.icon.plus:before { content: '\2b'; } /* '+' */
+i.icon.print:before { content: '\e716'; } /* '' */
+i.icon.rss:before { content: '\e73a'; } /* '' */
+i.icon.search:before { content: '🔍'; } /* '\1f50d' */
+i.icon.shuffle:before { content: '\e803'; } /* '' */
+i.icon.tag:before { content: '\e80a'; } /* '' */
+i.icon.tags:before { content: '\e70d'; } /* '' */
+i.icon.terminal:before { content: '\e7ac'; } /* '' */
+i.icon.thumbs.down:before { content: '👎'; } /* '\1f44e' */
+i.icon.thumbs.up:before { content: '👍'; } /* '\1f44d' */
+i.icon.to-end:before { content: '\e806'; } /* '' */
+i.icon.to-start:before { content: '\e805'; } /* '' */
+i.icon.top.list:before { content: '🏆'; } /* '\1f3c6' */
+i.icon.trash:before { content: '\e729'; } /* '' */
+i.icon.twitter:before { content: '\f303'; } /* '' */
+i.icon.upload:before { content: '\e711'; } /* '' */
+i.icon.user.add:before { content: '\e700'; } /* '' */
+i.icon.user:before { content: '👤'; } /* '\1f464' */
+i.icon.community:before { content: '\e814'; } /* '' */
+i.icon.users:before { content: '👥'; } /* '\1f465' */
+i.icon.id:before { content: '\e722'; } /* '' */
+i.icon.url:before { content: '🔗'; } /* '\1f517' */
+i.icon.zoom.in:before { content: '\e750'; } /* '' */
+i.icon.zoom.out:before { content: '\e751'; } /* '' */
+
+/*--------------
+ Spacing Fix
+---------------*/
+
+/* dropdown arrows are to the right */
+i.dropdown.icon {
+ margin: 0em 0em 0em 0.5em;
+}
+
+/* stars are usually consecutive */
+i.icon.star {
+ width: auto;
+ margin: 0em;
+}
+
+/* left side basic.icons */
+i.icon.left {
+ width: auto;
+ margin: 0em 0.5em 0em 0em;
+}
+
+/* right side basic.icons */
+i.icon.search,
+i.icon.up,
+i.icon.down,
+i.icon.right {
+ width: auto;
+ margin: 0em 0em 0em 0.5em;
+}
+
+/*--------------
+ Aliases
+---------------*/
+
+/* aliases for convenience */
+i.icon.delete:before { content: '\e80d'; } /* '' */
+i.icon.dropdown:before { content: '\25be'; } /* '▾' */
+
+i.icon.help:before { content: '\e704'; } /* '' */
+i.icon.info:before { content: '\e705'; } /* '' */
+i.icon.error:before { content: '\e80d'; } /* '' */
+
+i.icon.dislike:before { content: '\2661'; } /* '♡' */
+i.icon.like:before { content: '\2665'; } /* '♥' */
+
+i.icon.eye:before { content: '\e80f'; } /* '' */
+i.icon.eye.hidden:before { content: '\e70b'; } /* '' */
+i.icon.date:before { content: '📅'; } /* '\1f4c5' */
diff --git a/assets/semantic/src/themes/basic/elements/icon.variables b/assets/semantic/src/themes/basic/elements/icon.variables
new file mode 100644
index 0000000..211c716
--- /dev/null
+++ b/assets/semantic/src/themes/basic/elements/icon.variables
@@ -0,0 +1,12 @@
+/*-------------------
+ Icon Variables
+--------------------*/
+
+@fontPath : "../../themes/basic/assets/fonts";
+
+@src:
+ url("@{fontPath}/@{fontName}.eot?#iefix") format('embedded-opentype'),
+ url("@{fontPath}/@{fontName}.woff") format('woff'),
+ url("@{fontPath}/@{fontName}.ttf") format('truetype'),
+ url("@{fontPath}/@{fontName}.svg#icons") format('svg')
+;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/basic/elements/step.overrides b/assets/semantic/src/themes/basic/elements/step.overrides
new file mode 100644
index 0000000..d10fe56
--- /dev/null
+++ b/assets/semantic/src/themes/basic/elements/step.overrides
@@ -0,0 +1,10 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.steps .step:after {
+ display: none !important;
+}
+.ui.steps .step {
+ border-radius: 500px !important;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/basic/elements/step.variables b/assets/semantic/src/themes/basic/elements/step.variables
new file mode 100644
index 0000000..87dc13e
--- /dev/null
+++ b/assets/semantic/src/themes/basic/elements/step.variables
@@ -0,0 +1,18 @@
+/*-------------------
+ Step Variables
+--------------------*/
+
+/* Stepss */
+@stepsBorder: none;
+@stepsBorderRadius: @circularRadius;
+
+/* Step */
+@border: none;
+@divider: none;
+@background: transparent;
+@borderRadius: @circularRadius;
+@iconDistance: 0.8em;
+@arrowDisplay: none;
+
+@activeBackground: @midWhite;
+@activeArrowDisplay: none;
diff --git a/assets/semantic/src/themes/basic/globals/reset.overrides b/assets/semantic/src/themes/basic/globals/reset.overrides
new file mode 100644
index 0000000..2fc0983
--- /dev/null
+++ b/assets/semantic/src/themes/basic/globals/reset.overrides
@@ -0,0 +1,5 @@
+/*******************************
+ Overrides
+*******************************/
+
+/* No Additional Resets */
\ No newline at end of file
diff --git a/assets/semantic/src/themes/basic/globals/reset.variables b/assets/semantic/src/themes/basic/globals/reset.variables
new file mode 100644
index 0000000..889b4b0
--- /dev/null
+++ b/assets/semantic/src/themes/basic/globals/reset.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Reset
+*******************************/
\ No newline at end of file
diff --git a/assets/semantic/src/themes/basic/modules/progress.overrides b/assets/semantic/src/themes/basic/modules/progress.overrides
new file mode 100644
index 0000000..dcbb8f7
--- /dev/null
+++ b/assets/semantic/src/themes/basic/modules/progress.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Progress
+*******************************/
diff --git a/assets/semantic/src/themes/basic/modules/progress.variables b/assets/semantic/src/themes/basic/modules/progress.variables
new file mode 100644
index 0000000..73e59ba
--- /dev/null
+++ b/assets/semantic/src/themes/basic/modules/progress.variables
@@ -0,0 +1,15 @@
+/*******************************
+ Progress
+*******************************/
+
+@background: transparent;
+@border: none;
+@padding: 0em;
+
+@progressLeft: 0em;
+@progressWidth: 100%;
+@progressTextAlign: center;
+
+@labelFontWeight: @normal;
+@labelTextAlign: left;
+@labelHeight: 1.5em;
diff --git a/assets/semantic/src/themes/basic/views/card.overrides b/assets/semantic/src/themes/basic/views/card.overrides
new file mode 100644
index 0000000..e5befff
--- /dev/null
+++ b/assets/semantic/src/themes/basic/views/card.overrides
@@ -0,0 +1,4 @@
+/*******************************
+ Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/basic/views/card.variables b/assets/semantic/src/themes/basic/views/card.variables
new file mode 100644
index 0000000..1f538f4
--- /dev/null
+++ b/assets/semantic/src/themes/basic/views/card.variables
@@ -0,0 +1,35 @@
+/*******************************
+ Card
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+@width: 250px;
+@background: transparent;
+@border: none;
+@boxShadow: none;
+
+@contentPadding: 1em 0em;
+
+@rowSpacing: 1.5em;
+@groupCardMargin: 0em @horizontalSpacing @rowSpacing;
+
+@extraBackground: transparent;
+@extraDivider: none;
+@extraBoxShadow: none;
+@extraPadding: 0.5em 0em;
+
+@extraLinkColor: @textColor;
+@extraLinkHoverColor: @linkHoverColor;
+
+@headerFontSize: @relativeLarge;
+@headerLinkColor: @textColor;
+@headerLinkHoverColor: @linkHoverColor;
+
+@imageBorderRadius: @borderRadius;
+@imageBorder: 1px solid @borderColor;
+
+@linkHoverBackground: transparent;
+@linkHoverBoxShadow: none;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/bookish/elements/header.overrides b/assets/semantic/src/themes/bookish/elements/header.overrides
new file mode 100644
index 0000000..fd97a52
--- /dev/null
+++ b/assets/semantic/src/themes/bookish/elements/header.overrides
@@ -0,0 +1,15 @@
+/*******************************
+ Overrides
+*******************************/
+
+@import url(https://fonts.googleapis.com/css?family=Karma);
+
+h1.ui.header,
+.ui.huge.header {
+ font-weight: bold;
+}
+
+h2.ui.header,
+.ui.large.header {
+ font-weight: bold;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/bookish/elements/header.variables b/assets/semantic/src/themes/bookish/elements/header.variables
new file mode 100644
index 0000000..1da4fa7
--- /dev/null
+++ b/assets/semantic/src/themes/bookish/elements/header.variables
@@ -0,0 +1,37 @@
+/*-------------------
+ Header
+--------------------*/
+
+@headerFont : 'Karma', 'Times New Roman', serif;
+@fontWeight: @normal;
+
+@iconSize: 1.5em;
+@iconOffset: 0.2em;
+@iconAlignment: top;
+
+@subHeaderFontSize: 0.85rem;
+
+@dividedBorder: 1px dotted rgba(0, 0, 0, 0.2);
+
+/* Block Header */
+@blockVerticalPadding: 1.3em;
+@blockHorizontalPadding: 1em;
+
+/* Attached */
+@attachedBackground: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.03)) repeat scroll 0 0 #F8F8F8;
+@attachedVerticalPadding: 1.3;
+@attachedHorizontalPadding: 1em;
+
+/* HTML Headings */
+@h1: 1.75rem;
+@h2: 1.33rem;
+@h3: 1.33rem;
+@h4: 1rem;
+@h5: 0.9rem;
+
+/* Sizing */
+@hugeFontSize: 1.75em;
+@largeFontSize: 1.33em;
+@mediumFontSize: 1.33em;
+@smallFontSize: 1em;
+@tinyFontSize: 0.9em;
diff --git a/assets/semantic/src/themes/bootstrap3/elements/button.overrides b/assets/semantic/src/themes/bootstrap3/elements/button.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/bootstrap3/elements/button.variables b/assets/semantic/src/themes/bootstrap3/elements/button.variables
new file mode 100644
index 0000000..7bd058c
--- /dev/null
+++ b/assets/semantic/src/themes/bootstrap3/elements/button.variables
@@ -0,0 +1,63 @@
+/*-------------------
+ Button Variables
+--------------------*/
+
+/* Button Variables */
+@pageFont: Helvetica Neue, Helvetica, Arial, sans-serif;
+@textTransform: none;
+@fontWeight: @normal;
+@textColor: rgba(51, 51, 51, 1);
+
+@borderRadius: @4px;
+
+@lineHeight: 1.42857;
+@verticalPadding: 0.8571em;
+@horizontalPadding: 0.8571em;
+
+@backgroundColor: @white;
+@backgroundImage: none;
+
+
+@borderBoxShadowColor: rgba(0, 0, 0, 0.14);
+
+@green: #5CB85C;
+@red: #D9534F;
+@blue: #337AB7;
+@green: #60B044;
+@orange: #F0AD4E;
+
+@primaryColor: @blue;
+@secondaryColor: @green;
+
+@labeledIconBackgroundColor: transparent;
+
+@basicBorderSize: 0px;
+@basicColoredBorderSize: 0px;
+@invertedBorderSize: 0px;
+
+@basicActiveBackground: transparent;
+@basicHoverBackground: transparent;
+@basicDownBoxShadow:
+ 0px 0px 0px 1px #ADADAD inset,
+ 0 3px 5px rgba(0, 0, 0, 0.125) inset
+;
+
+@groupButtonOffset: 0px 0px 0px -1px;
+@verticalGroupOffset: 0px 0px -1px 0px;
+
+/* States */
+
+@hoverBackgroundColor: #E6E6E6;
+@hoverBoxShadow:
+ 0px 0px 0px 1px #ADADAD inset
+;
+
+@downBackgroundColor: #E6E6E6;
+@downBoxShadow:
+ 0px 0px 0px 1px #ADADAD inset,
+ 0 3px 5px rgba(0, 0, 0, 0.125) inset
+;
+
+@activeBackgroundColor: #E6E6E6;
+
+@disabledOpacity: 0.65;
diff --git a/assets/semantic/src/themes/chubby/collections/form.overrides b/assets/semantic/src/themes/chubby/collections/form.overrides
new file mode 100644
index 0000000..ee419e2
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/collections/form.overrides
@@ -0,0 +1,16 @@
+/*-------------------
+ Form Variables
+--------------------*/
+
+.ui.form .selection.dropdown {
+ padding: 1.1em 1.2em;
+ border-width: 2px;
+}
+.ui.form .selection.dropdown .menu {
+ min-width: calc(100% + 4px);
+ margin: 0 -2px;
+ border-width: 2px;
+}
+.ui.form .selection.dropdown input {
+ padding: inherit;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/collections/form.variables b/assets/semantic/src/themes/chubby/collections/form.variables
new file mode 100644
index 0000000..07e03df
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/collections/form.variables
@@ -0,0 +1,9 @@
+/*-------------------
+ Form Variables
+--------------------*/
+
+@labelTextTransform: uppercase;
+@labelFontSize: 0.8em;
+
+@inputPadding: 1em 1.2em;
+@inputBorder: 2px solid @borderColor;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/collections/menu.overrides b/assets/semantic/src/themes/chubby/collections/menu.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/chubby/collections/menu.variables b/assets/semantic/src/themes/chubby/collections/menu.variables
new file mode 100644
index 0000000..b332f7a
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/collections/menu.variables
@@ -0,0 +1,40 @@
+/*******************************
+ Menu
+*******************************/
+
+@background: @darkWhite;
+@boxShadow: none;
+@dividerSize: 0px;
+
+@verticalBoxShadow: 0px 0px 0px 2px @borderColor inset;
+@verticalActiveBoxShadow: none;
+
+@itemVerticalPadding: 1.25em;
+@itemHorizontalPadding: 2em;
+@itemFontWeight: bold;
+
+@activeItemBackground: @primaryColor;
+@activeItemTextColor: @white;
+@activeHoverItemBackground: @primaryColorHover;
+@activeHoverItemColor: @white;
+
+@secondaryItemPadding: @relativeSmall @relativeMedium;
+
+@secondaryActiveItemBackground: @primaryColor;
+@secondaryActiveItemColor: @white;
+@secondaryActiveHoverItemBackground: @primaryColorHover;
+@secondaryActiveHoverItemColor: @white;
+
+@secondaryPointingBorderWidth: 4px;
+@secondaryPointingActiveBorderColor: @primaryColor;
+@secondaryPointingActiveTextColor: @primaryColor;
+
+@arrowSize: 1em;
+@arrowActiveColor: @primaryColor;
+@arrowActiveHoverColor: @primaryColorHover;
+@arrowBorder: transparent;
+
+@paginationActiveBackground: @lightGrey;
+
+@borderColor: @darkWhite;
+@tabularBorderWidth: 2px;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/elements/button.overrides b/assets/semantic/src/themes/chubby/elements/button.overrides
new file mode 100644
index 0000000..b873bcd
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/elements/button.overrides
@@ -0,0 +1,21 @@
+/*******************************
+ Overrides
+*******************************/
+
+@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro);
+
+.ui.labeled.icon.buttons > .button > .icon,
+.ui.labeled.icon.button > .icon {
+ box-shadow:
+ -1px 0px 0px 0px rgba(255, 255, 255, 0.2) inset,
+ -1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset
+ ;
+}
+
+.ui.right.labeled.icon.buttons .button .icon,
+.ui.right.labeled.icon.button .icon {
+ box-shadow:
+ 1px 0px 0px 0px rgba(255, 255, 255, 0.2) inset,
+ 1px 0px 0px 0px rgba(0, 0, 0, 0.05) inset
+ ;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/elements/button.variables b/assets/semantic/src/themes/chubby/elements/button.variables
new file mode 100644
index 0000000..989528c
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/elements/button.variables
@@ -0,0 +1,57 @@
+/*-------------------
+ Button Variables
+--------------------*/
+
+/* Button Variables */
+@pageFont: 'Source Sans Pro', Arial, sans-serif;
+
+@textTransform: none;
+@fontWeight: @normal;
+@textColor: #333333;
+
+@verticalPadding: 1.1em;
+@horizontalPadding: 2.5em;
+@invertedBorderSize: 3px;
+
+@basicBorderRadius: 0.4em;
+@basicFontWeight: bold;
+@basicTextTransform: uppercase;
+
+@blue: #4A88CB;
+@primaryColor: @blue;
+
+@borderRadius: 0.25em;
+
+@backgroundColor: #E6EAED;
+@backgroundImage: none;
+@boxShadow: none;
+
+@hoverBackgroundColor: #DDDDDD;
+@hoverBackgroundImage: none;
+@hoverBoxShadow: none;
+
+@downBackgroundColor: #D0D0D0;
+@downBackgroundImage: none;
+@downBoxShadow: none;
+
+@activeBackgroundColor: #CCCCCC;
+@activeBackgroundImage: none;
+@activeBoxShadow: none;
+
+@verticalBoxShadow: none;
+
+@loadingBackgroundColor: #F0F0F0;
+
+@compactVerticalPadding: (@verticalPadding * 0.5);
+@compactHorizontalPadding: (@horizontalPadding * 0.5);
+
+@labeledIconBackgroundColor: transparent;
+
+@mini: 0.7rem;
+@tiny: 0.75rem;
+@small: 0.8rem;
+@medium: 0.92rem;
+@large: 1rem;
+@big: 1.125rem;
+@huge: 1.2rem;
+@massive: 1.3rem;
diff --git a/assets/semantic/src/themes/chubby/elements/header.overrides b/assets/semantic/src/themes/chubby/elements/header.overrides
new file mode 100644
index 0000000..83d9a40
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/elements/header.overrides
@@ -0,0 +1,5 @@
+/*******************************
+ Overrides
+*******************************/
+
+@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro);
diff --git a/assets/semantic/src/themes/chubby/elements/header.variables b/assets/semantic/src/themes/chubby/elements/header.variables
new file mode 100644
index 0000000..8247b5d
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/elements/header.variables
@@ -0,0 +1,21 @@
+/*-------------------
+ Header
+--------------------*/
+
+@headerFont : 'Source Sans Pro', Helvetica Neue, Helvetica, Arial, sans-serif;
+@fontWeight: bold;
+@textTransform: none;
+
+/* HTML Headings */
+@h1: 1.33rem;
+@h2: 1.2rem;
+@h3: 1rem;
+@h4: 0.9rem;
+@h5: 0.8rem;
+
+/* Sizing */
+@hugeFontSize: 1.33em;
+@largeFontSize: 1.2em;
+@mediumFontSize: 1em;
+@smallFontSize: 0.9em;
+@tinyFontSize: 0.8em;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/modules/accordion.overrides b/assets/semantic/src/themes/chubby/modules/accordion.overrides
new file mode 100644
index 0000000..53097c2
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/modules/accordion.overrides
@@ -0,0 +1,7 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.styled.accordion .accordion .active.title {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/modules/accordion.variables b/assets/semantic/src/themes/chubby/modules/accordion.variables
new file mode 100644
index 0000000..6a1b433
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/modules/accordion.variables
@@ -0,0 +1,15 @@
+/*-------------------
+ Accordion Variables
+--------------------*/
+
+@iconMargin: 0em 0.5em 0em 0em;
+
+@styledActiveTitleBackground: @subtleGradient;
+@styledActiveTitleColor: @primaryColor;
+
+@styledActiveChildTitleBackground: transparent;
+
+@styledTitlePadding: 1.25em;
+@styledTitleFontWeight: bold;
+@styledContentPadding: 1.5em 3.25em;
+@styledChildContentPadding: @styledContentPadding;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/views/comment.overrides b/assets/semantic/src/themes/chubby/views/comment.overrides
new file mode 100644
index 0000000..86931fc
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/views/comment.overrides
@@ -0,0 +1,12 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.comments .comment {
+ border-radius: 0.5em;
+ box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+.ui.comments .comment > .comments .comment {
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ box-shadow: none;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/chubby/views/comment.variables b/assets/semantic/src/themes/chubby/views/comment.variables
new file mode 100644
index 0000000..88932a1
--- /dev/null
+++ b/assets/semantic/src/themes/chubby/views/comment.variables
@@ -0,0 +1,46 @@
+/*******************************
+ Comments
+*******************************/
+
+/*-------------------
+ Elements
+--------------------*/
+
+/* Comment */
+@commentBackground: #FFFFFF;
+@commentMargin: 1em 0em 0em;
+@commentPadding: 1em 1.5em;
+@commentBorder: 1px solid rgba(0, 0, 0, 0.1);
+@commentDivider: 1px solid rgba(0, 0, 0, 0.1);
+@firstCommentMargin: 1em;
+@firstCommentPadding: 1em;
+
+/* Nested Comment */
+@nestedCommentsMargin: 0em 0em 0.5em 0.5em;
+@nestedCommentsPadding: 1em 0em 0em 1em;
+@nestedCommentBackground: #F0F0F0;
+
+/* Avatar */
+@avatarWidth: 3.5em;
+@avatarSpacing: 1.5em;
+@avatarBorderRadius: @circularRadius;
+
+/* Content */
+@contentMargin: @avatarWidth + @avatarSpacing;
+
+/* Author */
+@authorFontSize: 1em;
+@authorColor: @primaryColor;
+@authorHoverColor: @primaryColorHover;
+@authorFontWeight: bold;
+
+@metadataDisplay: block;
+@metadataSpacing: 0em;
+@metadataColor: @textColor;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Threaded */
+@threadedCommentMargin: -1.5em 0 -1em (@avatarWidth / 2);
diff --git a/assets/semantic/src/themes/classic/collections/table.overrides b/assets/semantic/src/themes/classic/collections/table.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/classic/collections/table.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/classic/collections/table.variables b/assets/semantic/src/themes/classic/collections/table.variables
new file mode 100644
index 0000000..854da06
--- /dev/null
+++ b/assets/semantic/src/themes/classic/collections/table.variables
@@ -0,0 +1,14 @@
+/*******************************
+ Table
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@boxShadow: @subtleGradient;
+
+@headerBackground: @subtleGradient;
+@headerBoxShadow: @subtleShadow;
+@footerBoxShadow: 0px -1px 1px 0px rgba(0, 0, 0, 0.05);
+@footerBackground: rgba(0, 0, 0, 0.05);
diff --git a/assets/semantic/src/themes/classic/elements/button.overrides b/assets/semantic/src/themes/classic/elements/button.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/classic/elements/button.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/classic/elements/button.variables b/assets/semantic/src/themes/classic/elements/button.variables
new file mode 100644
index 0000000..31b001e
--- /dev/null
+++ b/assets/semantic/src/themes/classic/elements/button.variables
@@ -0,0 +1,96 @@
+/*******************************
+ Button
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+/* Shadow */
+@shadowDistance: 0em;
+@shadowOffset: (@shadowDistance / 2);
+@shadowBoxShadow: 0px -@shadowDistance 0px 0px @borderColor inset;
+@backgroundColor: #FAFAFA;
+@backgroundImage: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.09));
+@boxShadow:
+ 0px 0px 0px 1px @borderColor inset,
+ @shadowBoxShadow
+;
+
+/* Padding */
+@verticalPadding: 0.8em;
+@horizontalPadding: 1.5em;
+
+
+/*-------------------
+ Group
+--------------------*/
+
+@groupBoxShadow: none;
+@groupButtonBoxShadow:
+ 0px 0px 0px 1px @borderColor inset,
+ @shadowBoxShadow
+;
+@verticalBoxShadow: 0px 0px 0px 1px @borderColor inset;
+@groupButtonOffset: 0px 0px 0px -1px;
+@verticalGroupOffset: 0px 0px -1px 0px;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Hovered */
+@hoverBackgroundColor: '';
+@hoverBackgroundImage: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.13));
+@hoverBoxShadow: '';
+@hoverColor: @hoveredTextColor;
+@iconHoverOpacity: 0.85;
+
+/* Focused */
+@focusBackgroundColor: '';
+@focusBackgroundImage: none;
+@focusBoxShadow:
+ 0px 0px 1px rgba(81, 167, 232, 0.8) inset,
+ 0px 0px 3px 2px rgba(81, 167, 232, 0.8)
+;
+@focusColor: @hoveredTextColor;
+@iconFocusOpacity: 0.85;
+
+/* Pressed Down */
+@downBackgroundColor: #F1F1F1;
+@downBackgroundImage: '';
+@downBoxShadow:
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset,
+ 0px 1px 4px 0px rgba(0, 0, 0, 0.1) inset !important
+;
+@downColor: @pressedTextColor;
+
+/* Active */
+@activeBackgroundColor: #DADADA;
+@activeBackgroundImage: none;
+@activeColor: @selectedTextColor;
+@activeBoxShadow:
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset,
+ 0px 1px 4px 0px rgba(0, 0, 0, 0.1) inset !important
+;
+
+/* Active + Hovered */
+@activeHoverBackgroundColor: #DADADA;
+@activeHoverBackgroundImage: none;
+@activeHoverBoxShadow:
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset,
+ 0px 1px 4px 0px rgba(0, 0, 0, 0.1) inset !important
+;
+@activeHoverColor: @selectedTextColor;
+
+/* Loading */
+@loadingBackgroundColor: #FFFFFF;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Labeled Icon */
+@labeledIconBackgroundColor: rgba(0, 0, 0, 0.05);
+@labeledIconLeftShadow: -1px 0px 0px 0px @labeledIconBorder inset;
+@labeledIconRightShadow: 1px 0px 0px 0px @labeledIconBorder inset;
diff --git a/assets/semantic/src/themes/classic/elements/header.overrides b/assets/semantic/src/themes/classic/elements/header.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/classic/elements/header.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/classic/elements/header.variables b/assets/semantic/src/themes/classic/elements/header.variables
new file mode 100644
index 0000000..3e7b968
--- /dev/null
+++ b/assets/semantic/src/themes/classic/elements/header.variables
@@ -0,0 +1,12 @@
+/*******************************
+ Button
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@headerFont: 'Open Sans', Arial, sans-serif;
+
+@blockBackground: @offWhite @subtleGradient;
+@blockBoxShadow: @subtleShadow;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/classic/modules/progress.overrides b/assets/semantic/src/themes/classic/modules/progress.overrides
new file mode 100644
index 0000000..dcbb8f7
--- /dev/null
+++ b/assets/semantic/src/themes/classic/modules/progress.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Progress
+*******************************/
diff --git a/assets/semantic/src/themes/classic/modules/progress.variables b/assets/semantic/src/themes/classic/modules/progress.variables
new file mode 100644
index 0000000..2bcd6ba
--- /dev/null
+++ b/assets/semantic/src/themes/classic/modules/progress.variables
@@ -0,0 +1,9 @@
+/*******************************
+ Progress
+*******************************/
+
+@background: rgba(0, 0, 0, 0.05);
+@boxShadow: 0px 0px 4px rgba(0, 0, 0, 0.1) inset;
+@barBackground: @subtleGradient #888888;
+@border: 1px solid @borderColor;
+@padding: @relative3px;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/classic/views/card.overrides b/assets/semantic/src/themes/classic/views/card.overrides
new file mode 100644
index 0000000..77deec6
--- /dev/null
+++ b/assets/semantic/src/themes/classic/views/card.overrides
@@ -0,0 +1,98 @@
+/*******************************
+ Item
+*******************************/
+/*-------------------
+ View
+--------------------*/
+
+/* Item */
+@background: #FFFFFF;
+@borderRadius: 0.325rem;
+@display: block;
+@float: left;
+@margin: 0em @horizontalSpacing @rowSpacing;
+@minHeight: 0px;
+@padding: 0em;
+@width: 300px;
+@boxShadow:
+ 0px 0px 0px 1px @borderColor,
+ 0px 3px 0px 0px @borderColor
+;
+@border: none;
+@zIndex: '';
+
+/* Item Group */
+@horizontalSpacing: 0.5em;
+@rowSpacing: 2.5em;
+@groupMargin: 1em -@horizontalSpacing;
+
+/*-------------------
+ Content
+--------------------*/
+
+/* Image */
+@imageBackground: @transparentBlack;
+@imagePadding: 0em;
+@imageBorderRadius: @borderRadius @borderRadius 0em 0em;
+@imageBoxShadow: none;
+@imageBorder: none;
+
+/* Content */
+@contentMargin: 0em;
+@contentPadding: 0.75em 1em;
+@contentFontSize: 1em;
+@contentBorder: none;
+@contentBorderRadius: 0em;
+@contentBoxShadow: none;
+
+/* Title */
+@titleMargin: 0em;
+@titleFont: @headerFont;
+@titleFontWeight: bold;
+@titleFontSize: 1.25em;
+@titleColor: @darkTextColor;
+
+/* Metadata */
+@metaColor: @lightTextColor;
+
+/* Description */
+@descriptionDistance: 0.75em;
+@descriptionColor: @lightTextColor;
+
+/* Image */
+@imageSpacing: 0.25em;
+@contentImageWidth: 2em;
+@contentImageVerticalAlign: middle;
+
+/* Paragraph */
+@paragraphDistance: 0.1em;
+
+/* Additional Content */
+@extraDisplay: absolute;
+@extraTop: 100%;
+@extraLeft: 0em;
+@extraWidth: 100%;
+
+@extraPadding: 0.5em 0.75em;
+@extraColor: @lightTextColor;
+@extraTransition: color @defaultDuration @defaultEasing;
+
+/*-------------------
+ States
+--------------------*/
+
+@hoverCursor: pointer;
+@hoverZIndex: 5;
+@hoverBorder: none;
+@hoverBoxShadow:
+ 0px 0px 0px 1px @selectedBorderColor,
+ 0px 3px 0px 0px @selectedBorderColor
+;
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Sizes */
+@medium: 1em;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/classic/views/card.variables b/assets/semantic/src/themes/classic/views/card.variables
new file mode 100644
index 0000000..300a017
--- /dev/null
+++ b/assets/semantic/src/themes/classic/views/card.variables
@@ -0,0 +1,22 @@
+/*******************************
+ Card
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+/* Shadow */
+@shadowDistance: 0em;
+@padding: 0em;
+
+/*-------------------
+ Content
+--------------------*/
+
+/* Additional Content */
+@extraDivider: 1px solid rgba(0, 0, 0, 0.05);
+@extraBackground: #FAFAFA @subtleGradient;
+@extraPadding: 0.75em 1em;
+@extraBoxShadow: 0 1px 1px rgba(0, 0, 0, 0.15);
+@extraColor: @lightTextColor;
diff --git a/assets/semantic/src/themes/colored/modules/checkbox.overrides b/assets/semantic/src/themes/colored/modules/checkbox.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/colored/modules/checkbox.variables b/assets/semantic/src/themes/colored/modules/checkbox.variables
new file mode 100644
index 0000000..85166ec
--- /dev/null
+++ b/assets/semantic/src/themes/colored/modules/checkbox.variables
@@ -0,0 +1,29 @@
+/* Checkbox */
+@checkboxActiveBackground: @primaryColor;
+@checkboxActiveBorderColor: @primaryColor;
+@checkboxActiveCheckColor: @white;
+
+@checkboxActiveFocusBackground: @primaryColorFocus;
+@checkboxActiveFocusBorderColor: @primaryColorFocus;
+@checkboxActiveFocusCheckColor: @white;
+
+@checkboxTransition: none;
+
+/* Radio */
+@radioActiveBackground: @white;
+@radioActiveBorderColor: @primaryColor;
+@radioActiveBulletColor: @primaryColor;
+
+@radioActiveFocusBackground: @white;
+@radioActiveFocusBorderColor: @primaryColorFocus;
+@radioActiveFocusBulletColor: @primaryColorFocus;
+
+/* Slider */
+@sliderOnLineColor: @primaryColor;
+@sliderOnFocusLineColor: @primaryColorFocus;
+
+/* Handle */
+@handleBackground: @white @subtleGradient;
+@handleBoxShadow:
+ 0px 0px 0px 1px @selectedBorderColor inset
+;
diff --git a/assets/semantic/src/themes/default/assets/fonts/brand-icons.eot b/assets/semantic/src/themes/default/assets/fonts/brand-icons.eot
new file mode 100644
index 0000000..a1bc094
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/brand-icons.eot differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/brand-icons.svg b/assets/semantic/src/themes/default/assets/fonts/brand-icons.svg
new file mode 100644
index 0000000..2d4771e
--- /dev/null
+++ b/assets/semantic/src/themes/default/assets/fonts/brand-icons.svg
@@ -0,0 +1,3570 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/semantic/src/themes/default/assets/fonts/brand-icons.ttf b/assets/semantic/src/themes/default/assets/fonts/brand-icons.ttf
new file mode 100644
index 0000000..948a2a6
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/brand-icons.ttf differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/brand-icons.woff b/assets/semantic/src/themes/default/assets/fonts/brand-icons.woff
new file mode 100644
index 0000000..2a89d52
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/brand-icons.woff differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/brand-icons.woff2 b/assets/semantic/src/themes/default/assets/fonts/brand-icons.woff2
new file mode 100644
index 0000000..141a90a
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/brand-icons.woff2 differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/icons.eot b/assets/semantic/src/themes/default/assets/fonts/icons.eot
new file mode 100644
index 0000000..d3b77c2
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/icons.eot differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/icons.svg b/assets/semantic/src/themes/default/assets/fonts/icons.svg
new file mode 100644
index 0000000..5543afa
--- /dev/null
+++ b/assets/semantic/src/themes/default/assets/fonts/icons.svg
@@ -0,0 +1,4938 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/semantic/src/themes/default/assets/fonts/icons.ttf b/assets/semantic/src/themes/default/assets/fonts/icons.ttf
new file mode 100644
index 0000000..5b97903
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/icons.ttf differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/icons.woff b/assets/semantic/src/themes/default/assets/fonts/icons.woff
new file mode 100644
index 0000000..beec791
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/icons.woff differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/icons.woff2 b/assets/semantic/src/themes/default/assets/fonts/icons.woff2
new file mode 100644
index 0000000..978a681
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/icons.woff2 differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/outline-icons.eot b/assets/semantic/src/themes/default/assets/fonts/outline-icons.eot
new file mode 100644
index 0000000..38cf251
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/outline-icons.eot differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/outline-icons.svg b/assets/semantic/src/themes/default/assets/fonts/outline-icons.svg
new file mode 100644
index 0000000..13180f6
--- /dev/null
+++ b/assets/semantic/src/themes/default/assets/fonts/outline-icons.svg
@@ -0,0 +1,803 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/semantic/src/themes/default/assets/fonts/outline-icons.ttf b/assets/semantic/src/themes/default/assets/fonts/outline-icons.ttf
new file mode 100644
index 0000000..abe99e2
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/outline-icons.ttf differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/outline-icons.woff b/assets/semantic/src/themes/default/assets/fonts/outline-icons.woff
new file mode 100644
index 0000000..24de566
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/outline-icons.woff differ
diff --git a/assets/semantic/src/themes/default/assets/fonts/outline-icons.woff2 b/assets/semantic/src/themes/default/assets/fonts/outline-icons.woff2
new file mode 100644
index 0000000..7e0118e
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/fonts/outline-icons.woff2 differ
diff --git a/assets/semantic/src/themes/default/assets/images/flags.png b/assets/semantic/src/themes/default/assets/images/flags.png
new file mode 100644
index 0000000..cdd33c3
Binary files /dev/null and b/assets/semantic/src/themes/default/assets/images/flags.png differ
diff --git a/assets/semantic/src/themes/default/collections/breadcrumb.overrides b/assets/semantic/src/themes/default/collections/breadcrumb.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/breadcrumb.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/collections/breadcrumb.variables b/assets/semantic/src/themes/default/collections/breadcrumb.variables
new file mode 100644
index 0000000..1ec7de0
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/breadcrumb.variables
@@ -0,0 +1,38 @@
+/*******************************
+ Breadcrumb
+*******************************/
+
+/*-------------------
+ Breadcrumb
+--------------------*/
+
+@verticalMargin: 0;
+@display: inline-block;
+@verticalAlign: middle;
+
+@dividerSpacing: @3px;
+@dividerOpacity: 0.7;
+@dividerColor: @lightTextColor;
+
+@dividerSize: @relativeSmall;
+@dividerVerticalAlign: baseline;
+
+@iconDividerSize: @relativeTiny;
+@iconDividerVerticalAlign: baseline;
+
+@sectionMargin: 0;
+@sectionPadding: 0;
+
+/* Coupling */
+@segmentPadding: @relativeMini @relativeMedium;
+
+/* Inverted */
+@invertedColor: @midWhite;
+@invertedActiveColor: @white;
+@invertedDividerColor: @invertedLightTextColor;
+
+/*-------------------
+ States
+--------------------*/
+
+@activeFontWeight: @bold;
diff --git a/assets/semantic/src/themes/default/collections/form.overrides b/assets/semantic/src/themes/default/collections/form.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/form.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/collections/form.variables b/assets/semantic/src/themes/default/collections/form.variables
new file mode 100644
index 0000000..ea73629
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/form.variables
@@ -0,0 +1,170 @@
+/*******************************
+ Form
+*******************************/
+
+/*-------------------
+ Elements
+--------------------*/
+
+/* Form */
+@gutterWidth: 1em;
+@rowDistance: 1em;
+
+/* Text */
+@paragraphMargin: @rowDistance 0;
+
+/* Field */
+@fieldMargin: 0 0 @rowDistance;
+
+/* Fields */
+@fieldsMargin: 0 -(@gutterWidth / 2) @rowDistance;
+
+/* Form Label */
+@labelDistance: @4px;
+@labelMargin: 0 0 @labelDistance 0;
+@labelFontSize: @relativeSmall;
+@labelFontWeight: @bold;
+@labelTextTransform: none;
+@labelColor: @textColor;
+
+/* Input */
+@inputFont: @pageFont;
+@inputWidth: 100%;
+@inputFontSize: 1em;
+@inputPadding: (@inputVerticalPadding + ((1em - @inputLineHeight) / 2)) @inputHorizontalPadding;
+@inputBorder: 1px solid @borderColor;
+@inputBorderRadius: @absoluteBorderRadius;
+@inputColor: @textColor;
+@inputTransition:
+ color @defaultDuration @defaultEasing,
+ border-color @defaultDuration @defaultEasing
+;
+@inputBoxShadow: 0 0 0 0 transparent inset;
+
+/* Select */
+@selectBackground: @white;
+@selectBorderRadius: @inputBorderRadius;
+@selectBorder: @inputBorder;
+@selectPadding: 0.62em @inputHorizontalPadding;
+@selectBoxShadow: @inputBoxShadow;
+@selectTransition: @inputTransition;
+@selectColor: @inputColor;
+
+/* Text Area */
+@textAreaPadding: @inputVerticalPadding @inputHorizontalPadding;
+@textAreaHeight: 12em;
+@textAreaResize: vertical;
+@textAreaLineHeight: 1.2857;
+@textAreaMinHeight: 8em;
+@textAreaMaxHeight: 24em;
+@textAreaBackground: @inputBackground;
+@textAreaBorder: @inputBorder;
+@textAreaFontSize: @inputFontSize;
+@textAreaTransition: @inputTransition;
+
+/* Checkbox */
+@checkboxVerticalAlign: top;
+@checkboxLabelFontSize: 1em;
+@checkboxLabelTextTransform: @labelTextTransform;
+@checkboxLabelFieldTopMargin: 0.7em;
+@checkboxFieldTopMargin: 1.2em;
+@checkboxToggleFieldTopMargin: 1em;
+@checkboxSliderFieldTopMargin: 1.4em;
+
+/* Inline Validation Prompt */
+@promptBackground: @white;
+@promptBorderColor: @formErrorBorder;
+@promptBorder: 1px solid @promptBorderColor;
+@promptTextColor: @formErrorColor;
+@inlinePromptMargin: -0.25em 0 -0.5em 0.5em;
+@inlinePromptBorderWidth: 1px;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Focus */
+@inputFocusPointerSize: 0;
+
+/* Input Focus */
+@inputFocusBackground: @inputBackground;
+@inputFocusBorderColor: @focusedFormBorderColor;
+@inputFocusColor: @selectedTextColor;
+@inputFocusBoxShadow: @inputFocusPointerSize 0 0 0 @selectedBorderColor inset;
+@inputFocusBorderRadius: @inputBorderRadius;
+
+/* Text Area Focus */
+@textAreaFocusBackground: @inputFocusBackground;
+@textAreaFocusBorderColor: @inputFocusBorderColor;
+@textAreaFocusColor: @inputFocusColor;
+@textAreaFocusBoxShadow: @inputFocusBoxShadow;
+@textAreaFocusBorderRadius: @inputFocusBorderRadius;
+
+/* Disabled */
+@disabledLabelOpacity: @disabledOpacity;
+
+/* Input states */
+@transparentPadding: @inputPadding;
+
+/* Loading Dimmer */
+@loaderDimmerColor: rgba(255, 255, 255, 0.8);
+@loaderInvertedDimmerColor: rgba(0, 0, 0 , 0.85);
+@loaderDimmerZIndex: 100;
+
+/* Loading Spinner */
+@loaderSize: 3em;
+@loaderLineZIndex: 101;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Required */
+@requiredContent: '*';
+@requiredColor: @negativeColor;
+@requiredVerticalOffset: -0.2em;
+@requiredDistance: 0.2em;
+@requiredMargin: @requiredVerticalOffset 0 0 @requiredDistance;
+
+/* Inverted */
+@invertedInputBackground: @inputBackground;
+@invertedInputBorderColor: @whiteBorderColor;
+@invertedInputBoxShadow: @inputBoxShadow;
+@invertedInputColor: @inputColor;
+@invertedLabelColor: @invertedTextColor;
+@invertedInputBoxShadow: none;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Grouped Fields */
+@groupedMargin: @fieldMargin;
+@groupedFieldMargin: 0.5em 0;
+
+@groupedLabelDistance: @labelDistance;
+@groupedLabelColor: @labelColor;
+@groupedLabelMargin: @labelMargin;
+@groupedLabelFontSize: @labelFontSize;
+@groupedLabelFontWeight: @labelFontWeight;
+@groupedLabelTextTransform: @labelTextTransform;
+
+
+/* Inline */
+@inlineInputSize: @relativeMedium;
+
+@inlineLabelDistance: @relativeTiny;
+@inlineLabelColor: @labelColor;
+@inlineLabelFontSize: @labelFontSize;
+@inlineLabelFontWeight: @labelFontWeight;
+@inlineLabelTextTransform: @labelTextTransform;
+@inlineCalendarWidth: 13.11em;
+
+@groupedInlineLabelMargin: 0.035714em 1em 0 0;
+@groupedInlineCheckboxBottomMargin: 0.4em;
+
+/*-------------------
+ Groups
+--------------------*/
+
+@inlineFieldsMargin: 0 1em 0 0;
diff --git a/assets/semantic/src/themes/default/collections/grid.overrides b/assets/semantic/src/themes/default/collections/grid.overrides
new file mode 100644
index 0000000..00b8819
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/grid.overrides
@@ -0,0 +1,4 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/default/collections/grid.variables b/assets/semantic/src/themes/default/collections/grid.variables
new file mode 100644
index 0000000..71057a7
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/grid.variables
@@ -0,0 +1,119 @@
+/*******************************
+ Grid
+*******************************/
+
+/* Inherited From Site */
+
+// @mobileBreakpoint
+// @tabletBreakpoint
+// @computerBreakpoint
+// @largeMonitorBreakpoint
+// @widescreenMonitorBreakpoint
+
+/*******************************
+ Grid
+*******************************/
+
+@minWidth: 320px;
+
+@gutterWidth: 2rem;
+@rowSpacing: 2rem;
+
+@tableWidth: e(%("calc(100%% + %d)", @gutterWidth));
+@columnMaxImageWidth: 100%;
+
+@consecutiveGridDistance: (@rowSpacing / 2);
+
+/*******************************
+ Variations
+*******************************/
+
+/*--------------
+ Relaxed
+---------------*/
+
+@relaxedGutterWidth: 3rem;
+@veryRelaxedGutterWidth: 5rem;
+
+/*--------------
+ Divided
+---------------*/
+
+@dividedBorder: -1px 0 0 0 @borderColor;
+@verticallyDividedBorder: 0 -1px 0 0 @borderColor;
+
+@dividedInvertedBorder: -1px 0 0 0 @whiteBorderColor;
+@verticallyDividedInvertedBorder: 0 -1px 0 0 @whiteBorderColor;
+
+/*--------------
+ Celled
+---------------*/
+
+@celledMargin: 1em 0;
+@celledWidth: 1px;
+@celledBorderColor: @solidBorderColor;
+
+@celledPadding: 1em;
+@celledRelaxedPadding: 1.5em;
+@celledVeryRelaxedPadding: 2em;
+
+@celledGridDivider: 0 0 0 @celledWidth @celledBorderColor;
+@celledRowDivider: 0 (-@celledWidth) 0 0 @celledBorderColor;
+@celledColumnDivider: (-@celledWidth) 0 0 0 @celledBorderColor;
+
+
+/*--------------
+ Stackable
+---------------*/
+
+@stackableRowSpacing: @rowSpacing;
+@stackableGutter: @gutterWidth;
+@stackableMobileBorder: 1px solid @borderColor;
+@stackableInvertedMobileBorder: 1px solid @whiteBorderColor;
+
+/*--------------
+ Compact
+---------------*/
+@compactGutterWidth: @gutterWidth / 2;
+@compactRowSpacing: @rowSpacing / 2;
+@compactCelledRelaxedPadding: @celledRelaxedPadding / 2;
+@compactCelledVeryRelaxedPadding: @celledVeryRelaxedPadding / 2;
+
+/*------------------
+ Very Compact
+------------------*/
+@veryCompactGutterWidth: @compactGutterWidth / 2;
+@veryCompactRowSpacing: @compactRowSpacing / 2;
+@veryCompactCelledRelaxedPadding: @compactCelledRelaxedPadding / 2;
+@veryCompactCelledVeryRelaxedPadding: @compactCelledVeryRelaxedPadding / 2;
+
+
+/*******************************
+ Legacy
+*******************************/
+
+/*--------------
+ Page
+---------------*/
+
+/* Legacy (DO NOT USE)
+ */
+@mobileWidth: auto;
+@mobileMargin: 0;
+@mobileGutter: 0;
+
+@tabletWidth: auto;
+@tabletMargin: 0;
+@tabletGutter: 2em;
+
+@computerWidth: auto;
+@computerMargin: 0;
+@computerGutter: 3%;
+
+@largeMonitorWidth: auto;
+@largeMonitorMargin: 0;
+@largeMonitorGutter: 15%;
+
+@widescreenMonitorWidth: auto;
+@widescreenMargin: 0;
+@widescreenMonitorGutter: 23%;
diff --git a/assets/semantic/src/themes/default/collections/menu.overrides b/assets/semantic/src/themes/default/collections/menu.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/menu.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/collections/menu.variables b/assets/semantic/src/themes/default/collections/menu.variables
new file mode 100644
index 0000000..374479c
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/menu.variables
@@ -0,0 +1,483 @@
+/*******************************
+ Menu
+*******************************/
+
+/*-------------------
+ Collection
+--------------------*/
+
+/* Menu */
+@verticalMargin: @medium;
+@horizontalMargin: 0;
+@margin: @verticalMargin @horizontalMargin;
+@background: #FFFFFF;
+@fontFamily: @pageFont;
+@itemBackground: none;
+@fontWeight: @normal;
+@borderWidth: 1px;
+@border: @borderWidth solid @borderColor;
+@boxShadow: @subtleShadow;
+@borderRadius: @defaultBorderRadius;
+@minHeight: (@itemVerticalPadding * 2) + 1em;
+
+/* Menu Item */
+@itemVerticalPadding: @relativeSmall;
+@itemHorizontalPadding: @relativeLarge;
+@itemTextTransform: none;
+@itemTransition:
+ background @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing
+;
+@itemFontWeight: @normal;
+@itemTextColor: @textColor;
+
+/* Divider */
+@dividerSize: 1px;
+@dividerBackground: @internalBorderColor;
+
+/* Sub Menu */
+@subMenuDistance: 0.5em;
+@subMenuMargin: @subMenuDistance -@itemHorizontalPadding 0;
+@subMenuFontSize: @relativeTiny;
+@subMenuTextColor: rgba(0, 0, 0, 0.5);
+
+@subMenuIndent: 0;
+@subMenuHorizontalPadding: (@itemHorizontalPadding / @tinySize) + @subMenuIndent;
+@subMenuVerticalPadding: 0.5em;
+
+/* Text Item */
+@textLineHeight: 1.3;
+
+/*--------------
+ Elements
+---------------*/
+
+/* Icon */
+@iconFloat: none;
+@iconMargin: 0 @relative5px 0 0;
+@iconOpacity: 0.9;
+
+/* Dropdown Icon */
+@dropdownIconFloat: right;
+@dropdownIconDistance: 1em;
+
+/* Header */
+@headerBackground: '';
+@headerWeight: @bold;
+@headerTextTransform: @normal;
+
+/* Vertical Icon */
+@verticalIconFloat: right;
+@verticalIconMargin: 0 0 0 0.5em;
+
+/* Vertical Header */
+@verticalHeaderMargin: 0 0 0.5em;
+@verticalHeaderFontSize: @relativeMedium;
+@verticalHeaderFontWeight: @bold;
+
+/* Pointing Arrow */
+@arrowSize: @relative8px;
+@arrowBorderWidth: 1px;
+@arrowBorder: @arrowBorderWidth solid @solidBorderColor;
+@arrowTransition: background @defaultDuration @defaultEasing;
+@arrowZIndex: 2;
+
+@arrowHoverColor: #F2F2F2;
+@arrowActiveColor: @arrowHoverColor;
+@arrowActiveHoverColor: @arrowActiveColor;
+
+@arrowVerticalHoverColor: @arrowHoverColor;
+@arrowVerticalActiveColor: @arrowActiveColor;
+@arrowVerticalSubMenuColor: @white;
+
+/*--------------
+ Couplings
+---------------*/
+
+/* Button */
+@buttonSize: @relativeMedium;
+@buttonOffset: 0;
+@buttonMargin: -0.5em 0;
+@buttonVerticalPadding: @relativeMini;
+
+/* Input */
+@inputSize: @relativeMedium;
+@inputVerticalMargin: -0.5em;
+@inputOffset: 0;
+@inputVerticalPadding: @relative8px;
+
+/* Image */
+@imageMargin: -0.3em 0;
+@imageWidth: 2.5em;
+@verticalImageWidth: auto;
+
+/* Label */
+@labelOffset: -0.15em;
+@labelBackground: #999999;
+@labelTextColor: @white;
+
+@labelTextMargin: 1em;
+@labelVerticalPadding: 0.3em;
+@circularLabelVerticalPadding: 0.5em; /* has to be equal to @circularPadding from label.less */
+@labelHorizontalPadding: @relativeMini;
+
+@labelAndIconFloat: none;
+@labelAndIconMargin: 0 0.5em 0 0;
+
+/* Image Label */
+@imageLabelTextDistance: 0.8em;
+@imageLabelVerticalPadding: 0.2833em; /* Calculates as: @verticalLabel (from label.less) - @labelVerticalPadding (from here) */
+@imageLabelHeight: (1em + @imageLabelVerticalPadding * 2); /* Logic adopted from label.less */
+@imageLabelImageMargin: -@imageLabelVerticalPadding @imageLabelTextDistance -@imageLabelVerticalPadding -@imageLabelTextDistance;
+
+/* Dropdown in Menu */
+@dropdownMenuBoxShadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08);
+
+@dropdownBackground: #FFFFFF;
+@dropdownMenuDistance: 0;
+@dropdownMenuBorderRadius: @borderRadius;
+
+@dropdownItemFontSize: @relativeMedium;
+@dropdownItemPadding: @relativeMini @relativeLarge;
+@dropdownItemBackground: transparent;
+@dropdownItemColor: @textColor;
+@dropdownItemTextTransform: none;
+@dropdownItemFontWeight: @normal;
+@dropdownItemBoxShadow: none;
+@dropdownItemTransition: none;
+
+@dropdownItemIconFloat: none;
+@dropdownItemIconFontSize: @relativeMedium;
+@dropdownItemIconMargin: 0 0.75em 0 0;
+
+@dropdownHoveredItemBackground: @transparentBlack;
+@dropdownHoveredItemColor: @selectedTextColor;
+
+/* Dropdown Variations */
+@dropdownVerticalMenuBoxShadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08);
+@secondaryDropdownMenuDistance: @relative5px;
+@pointingDropdownMenuDistance: 0.75em;
+@invertedSelectionDropdownColor: @invertedTextColor;
+
+/*--------------
+ States
+---------------*/
+
+/* Hovered Item */
+@hoverItemBackground: @subtleTransparentBlack;
+@hoverItemTextColor: @selectedTextColor;
+
+/* Pressed Item */
+@pressedItemBackground: @subtleTransparentBlack;
+@pressedItemTextColor: @hoverItemTextColor;
+
+
+/* Active Item */
+@activeItemBackground: @transparentBlack;
+@activeItemTextColor: @selectedTextColor;
+@activeItemFontWeight: @normal;
+@activeIconOpacity: 1;
+@activeItemBoxShadow: none;
+
+/* Active Hovered Item */
+@activeHoverItemBackground: @transparentBlack;
+@activeHoverItemColor: @selectedTextColor;
+
+/* Selected Dropdown */
+@dropdownSelectedItemBackground: @transparentBlack;
+@dropdownSelectedItemColor: @selectedTextColor;
+
+/* Active Dropdown */
+@dropdownActiveItemBackground: @subtleTransparentBlack;
+@dropdownActiveItemColor: @selectedTextColor;
+@dropdownActiveItemFontWeight: @bold;
+
+/* Active Sub Menu */
+@subMenuActiveBackground: transparent;
+@subMenuActiveTextColor: @activeItemTextColor;
+@subMenuActiveFontWeight: @bold;
+
+
+/*--------------
+ Types
+---------------*/
+
+/* Vertical */
+@verticalBoxShadow: @boxShadow;
+@verticalPointerWidth: 2px;
+@verticalBackground: #FFFFFF;
+@verticalItemBackground: none;
+@verticalDividerBackground: @dividerBackground;
+
+@verticalActiveBoxShadow: none;
+
+
+/* Secondary */
+@secondaryBackground: none;
+@secondaryMargin: 0 -@secondaryItemSpacing;
+@secondaryItemBackground: none;
+@secondaryItemSpacing: @relative5px;
+@secondaryItemMargin: 0 @secondaryItemSpacing;
+@secondaryItemVerticalPadding: @relativeMini;
+@secondaryItemHorizontalPadding: @relativeSmall;
+@secondaryItemPadding: @relativeMini @relativeSmall;
+@secondaryItemBorderRadius: @defaultBorderRadius;
+@secondaryItemTransition: color @defaultDuration @defaultEasing;
+@secondaryItemColor: @unselectedTextColor;
+
+@secondaryHoverItemBackground: @transparentBlack;
+@secondaryHoverItemColor: @selectedTextColor;
+
+@secondaryActiveItemBackground: @transparentBlack;
+@secondaryActiveItemColor: @selectedTextColor;
+@secondaryActiveHoverItemBackground: @transparentBlack;
+@secondaryActiveHoverItemColor: @selectedTextColor;
+
+@secondaryActiveHoveredItemBackground: @transparentBlack;
+@secondaryActiveHoveredItemColor: @selectedTextColor;
+
+@secondaryHeaderBackground: none transparent;
+@secondaryHeaderBorder: none;
+
+@secondaryItemVerticalSpacing: @secondaryItemSpacing;
+@secondaryVerticalItemMargin: 0 0 @secondaryItemVerticalSpacing;
+@secondaryVerticalItemBorderRadius: @defaultBorderRadius;
+
+@secondaryMenuSubMenuMargin: 0 -@secondaryItemHorizontalPadding;
+@secondaryMenuSubMenuItemMargin: 0;
+@secondarySubMenuHorizontalPadding: (@itemHorizontalPadding / @tinySize) + @subMenuIndent;
+@secondaryMenuSubMenuItemPadding: @relative7px @secondarySubMenuHorizontalPadding;
+
+/* Pointing */
+@secondaryPointingBorderWidth: 2px;
+@secondaryPointingBorderColor: @borderColor;
+@secondaryPointingItemVerticalPadding: @relativeTiny;
+@secondaryPointingItemHorizontalPadding: @relativeLarge;
+
+@secondaryPointingHoverTextColor: @textColor;
+
+@secondaryPointingActiveBorderColor: currentColor;
+@secondaryPointingActiveTextColor: @selectedTextColor;
+@secondaryPointingActiveFontWeight: @bold;
+
+@secondaryPointingActiveDropdownBorderColor: transparent;
+
+@secondaryPointingActiveHoverBorderColor: @secondaryPointingActiveBorderColor;
+@secondaryPointingActiveHoverTextColor: @secondaryPointingActiveTextColor;
+
+@secondaryPointingHeaderColor: @darkTextColor;
+@secondaryVerticalPointingItemMargin: 0 -@secondaryPointingBorderWidth 0 0;
+
+
+/* Inverted Secondary */
+@secondaryInvertedColor: @invertedLightTextColor;
+
+@secondaryInvertedHoverBackground: @transparentWhite;
+@secondaryInvertedHoverColor: @invertedSelectedTextColor;
+
+@secondaryInvertedActiveBackground: @strongTransparentWhite;
+@secondaryInvertedActiveColor: @invertedSelectedTextColor;
+
+/* Inverted Pointing */
+@secondaryPointingInvertedBorderColor: @whiteBorderColor;
+@secondaryPointingInvertedItemTextColor: @invertedTextColor;
+@secondaryPointingInvertedItemHeaderColor: @white;
+@secondaryPointingInvertedItemHoverTextColor: @invertedSelectedTextColor;
+@secondaryPointingInvertedActiveBorderColor: @white;
+@secondaryPointingInvertedActiveColor: @invertedSelectedTextColor;
+
+
+/* Tiered */
+@tieredActiveItemBackground: #FCFCFC;
+@tieredActiveMenuBackground: #FCFCFC;
+
+@tieredSubMenuTextTransform: @normal;
+@tieredSubMenuFontWeight: @normal;
+
+@tieredSubMenuColor: @lightTextColor;
+
+@tieredSubMenuHoverBackground: none transparent;
+@tieredSubMenuHoverColor: @hoveredTextColor;
+
+@tieredSubMenuActiveBackground: none transparent;
+@tieredSubMenuActiveColor: @selectedTextColor;
+
+@tieredInvertedSubMenuBackground: rgba(0, 0, 0, 0.2);
+
+
+/* Icon */
+@iconMenuTextAlign: center;
+@iconMenuItemColor: @black;
+@iconMenuInvertedItemColor: @white;
+
+
+/* Tabular */
+@tabularBorderColor: @solidBorderColor;
+@tabularBackgroundColor: transparent;
+@tabularBackground: none @tabularBackgroundColor;
+@tabularBorderWidth: 1px;
+@tabularOppositeBorderWidth: @tabularBorderWidth + 1px;
+@tabularVerticalPadding: @itemVerticalPadding;
+@tabularHorizontalPadding: @relativeHuge;
+@tabularBorderRadius: @defaultBorderRadius;
+@tabularTextColor: @itemTextColor;
+
+@tabularHoveredTextColor: @hoveredTextColor;
+
+@tabularVerticalBackground: none @tabularBackgroundColor;
+
+@tabularFluidOffset: 1px;
+@tabularFluidWidth: e(%("calc(100%% + %d)", @tabularFluidOffset * 2));
+
+@tabularActiveBackground: none @white;
+@tabularActiveColor: @selectedTextColor;
+@tabularActiveBoxShadow: none;
+@tabularActiveWeight: @bold;
+
+
+
+/* Pagination */
+@paginationMinWidth: 3em;
+@paginationActiveBackground: @transparentBlack;
+@paginationActiveTextColor: @selectedTextColor;
+
+/* Labeled Icon */
+@labeledIconItemHorizontalPadding: @relativeMassive;
+@labeledIconSize: @relativeMassive;
+@labeledIconMinWidth: 6em;
+@labeledIconTextMargin: 0.5rem;
+
+
+/* Text */
+@textMenuItemSpacing: @relative7px;
+@textMenuMargin: @relativeMedium -(@textMenuItemSpacing);
+@textMenuItemColor: @mutedTextColor;
+@textMenuItemFontWeight: @normal;
+@textMenuItemMargin: 0 0;
+@textMenuItemPadding: @relative5px @textMenuItemSpacing;
+@textMenuItemTransition: opacity @defaultDuration @defaultEasing;
+
+@textMenuSubMenuMargin: 0;
+@textMenuSubMenuItemMargin: 0;
+@textMenuSubMenuItemPadding: @relative7px 0;
+
+@textMenuActiveItemFontWeight: @normal;
+@textMenuActiveItemColor: @selectedTextColor;
+
+@textMenuHeaderSize: @relativeSmall;
+@textMenuHeaderColor: @darkTextColor;
+@textMenuHeaderFontWeight: @bold;
+@textMenuHeaderTextTransform: uppercase;
+
+@textVerticalMenuMargin: @relativeMedium 0;
+@textVerticalMenuHeaderMargin: @relative8px 0 @relative10px;
+@textVerticalMenuItemMargin: @relative8px 0;
+
+@textVerticalMenuIconFloat: none;
+@textVerticalMenuIconMargin: @iconMargin;
+
+
+/*--------------
+ Variations
+---------------*/
+
+/* Inverted */
+@invertedBackground: @black;
+@invertedBoxShadow: none;
+@invertedBorder: 0 solid transparent;
+@invertedHeaderBackground: transparent;
+
+@invertedItemBackground: transparent;
+@invertedItemTextColor: @invertedTextColor;
+
+/* Inverted Sub Menu */
+@invertedSubMenuBackground: transparent;
+@invertedSubMenuColor: @invertedUnselectedTextColor;
+
+/* Inverted Hover */
+@invertedHoverBackground: @transparentWhite;
+@invertedHoverColor: @invertedSelectedTextColor;
+
+@invertedSubMenuHoverBackground: transparent;
+@invertedSubMenuHoverColor: @invertedSelectedTextColor;
+
+/* Pressed */
+@invertedMenuPressedBackground: @transparentWhite;
+@invertedMenuPressedColor: @invertedSelectedTextColor;
+
+/* Inverted Active */
+@invertedActiveBackground: @invertedArrowActiveColor;
+@invertedActiveColor: @invertedSelectedTextColor;
+@invertedArrowActiveColor: #3D3E3F;
+
+/* Inverted Active Hover */
+@invertedActiveHoverBackground: @invertedActiveBackground;
+@invertedActiveHoverColor: @white;
+@invertedArrowActiveHoverColor: @invertedArrowActiveColor;
+
+@invertedSubMenuActiveBackground: transparent;
+@invertedSubMenuActiveColor: @white;
+
+/* Inverted Menu Divider */
+@invertedDividerBackground: rgba(255, 255, 255, 0.08);
+@invertedVerticalDividerBackground: @invertedDividerBackground;
+
+/* Inverted Colored */
+@invertedColoredDividerBackground: @dividerBackground;
+@invertedColoredActiveBackground: @strongTransparentBlack;
+
+/* Fixed */
+@fixedPrecedingGridMargin: 2.75rem;
+
+/* Floated */
+@floatedDistance: 0.5rem;
+
+/* Attached */
+@attachedTopOffset: 0;
+@attachedBottomOffset: 0;
+@attachedHorizontalOffset: -@borderWidth;
+@attachedWidth: e(%("calc(100%% + %d)", -@attachedHorizontalOffset * 2));
+@attachedBoxShadow: none;
+@attachedBorder: @borderWidth solid @solidBorderColor;
+@attachedBottomBoxShadow:
+ @boxShadow,
+ @attachedBoxShadow
+;
+
+/* Resize large sizes */
+@mini: @11px;
+@tiny: @12px;
+@small: @13px;
+@large: @15px;
+@big: @16px;
+@huge: @17px;
+@massive: @18px;
+
+/* Sizes */
+@miniWidth: 9rem;
+@tinyWidth: 11rem;
+@smallWidth: 13rem;
+@mediumWidth: 15rem;
+@largeWidth: 18rem;
+@bigWidth: 20rem;
+@hugeWidth: 22rem;
+@massiveWidth: 25rem;
+
+
+/*-------------------
+ Inverted dropdowns
+--------------------*/
+@invertedDropdownBackground: @black;
+@invertedDropdownMenuBoxShadow: none;
+
+@invertedDropdownItemColor: @invertedMutedTextColor;
+
+@invertedDropdownHoveredItemBackground: @transparentWhite;
+@invertedDropdownHoveredItemColor: @invertedDropdownItemColor;
+
+@invertedDropdownActiveItemBackground: transparent;
+@invertedDropdownActiveItemColor: @invertedDropdownItemColor;
+
+@invertedDropdownSelectedItemBackground: @strongTransparentWhite;
+@invertedDropdownSelectedItemColor: @invertedDropdownItemColor;
diff --git a/assets/semantic/src/themes/default/collections/message.overrides b/assets/semantic/src/themes/default/collections/message.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/message.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/collections/message.variables b/assets/semantic/src/themes/default/collections/message.variables
new file mode 100644
index 0000000..4cffd00
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/message.variables
@@ -0,0 +1,234 @@
+/*******************************
+ Message
+*******************************/
+
+// @textColor
+
+/*-------------------
+ Elements
+--------------------*/
+
+@verticalMargin: 1em;
+@verticalPadding: 1em;
+@horizontalPadding: 1.5em;
+@padding: @verticalPadding @horizontalPadding;
+@background: #F8F8F9;
+@lineHeightOffset: ((@lineHeight - 1em) / 2);
+
+@borderRadius: @defaultBorderRadius;
+@borderWidth: 1px;
+@borderShadow: 0 0 0 @borderWidth @strongBorderColor inset;
+@shadowShadow: 0 0 0 0 rgba(0, 0, 0, 0);
+@boxShadow:
+ @borderShadow,
+ @shadowShadow
+;
+
+@transition:
+ opacity @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing,
+ background @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing
+;
+
+/* Header */
+@headerFontSize: @relativeLarge;
+@headerFontWeight: @bold;
+@headerDisplay: block;
+@headerDistance: 0;
+@headerMargin: -@headerLineHeightOffset 0 @headerDistance 0;
+@headerParagraphDistance: 0.25em;
+
+/* Paragraph */
+@messageTextOpacity: 0.85;
+@messageParagraphMargin: 0.75em;
+
+/* List */
+@listOpacity: 0.85;
+@listStylePosition: inside;
+@listMargin: 0.5em;
+@listItemIndent: 1em;
+@listItemMargin: 0.3em;
+
+/* Icon */
+@iconDistance: 0.6em;
+
+/* Close Icon */
+@closeTopDistance: @verticalPadding - @lineHeightOffset;
+@closeRightDistance: 0.5em;
+@closeOpacity: 0.7;
+@closeTransition: opacity @defaultDuration @defaultEasing;
+
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Icon Message */
+@iconSize: 3em;
+@iconOpacity: 0.8;
+@iconContentDistance: 0;
+@iconVerticalAlign: middle;
+
+/* Attached */
+@attachedXOffset: -1px;
+@attachedYOffset: -1px;
+@attachedBoxShadow: 0 0 0 @borderWidth @borderColor inset;
+@attachedBottomBoxShadow:
+ @attachedBoxShadow,
+ @subtleShadow
+;
+
+/* Floating */
+@floatingBoxShadow:
+ @borderShadow,
+ @floatingShadow
+;
+
+/* Colors */
+@redBoxShadow:
+ 0 0 0 @borderWidth @redBorderColor inset,
+ @shadowShadow
+;
+@redBoxFloatingShadow:
+ 0 0 0 @borderWidth @redBorderColor inset,
+ @floatingShadow
+;
+@orangeBoxShadow:
+ 0 0 0 @borderWidth @orangeBorderColor inset,
+ @shadowShadow
+;
+@orangeBoxFloatingShadow:
+ 0 0 0 @borderWidth @orangeBorderColor inset,
+ @floatingShadow
+;
+@yellowBoxShadow:
+ 0 0 0 @borderWidth @yellowBorderColor inset,
+ @shadowShadow
+;
+@yellowBoxFloatingShadow:
+ 0 0 0 @borderWidth @yellowBorderColor inset,
+ @floatingShadow
+;
+@oliveBoxShadow:
+ 0 0 0 @borderWidth @oliveBorderColor inset,
+ @shadowShadow
+;
+@oliveBoxFloatingShadow:
+ 0 0 0 @borderWidth @oliveBorderColor inset,
+ @floatingShadow
+;
+@greenBoxShadow:
+ 0 0 0 @borderWidth @greenBorderColor inset,
+ @shadowShadow
+;
+@greenBoxFloatingShadow:
+ 0 0 0 @borderWidth @greenBorderColor inset,
+ @floatingShadow
+;
+@tealBoxShadow:
+ 0 0 0 @borderWidth @tealBorderColor inset,
+ @shadowShadow
+;
+@tealBoxFloatingShadow:
+ 0 0 0 @borderWidth @tealBorderColor inset,
+ @floatingShadow
+;
+@blueBoxShadow:
+ 0 0 0 @borderWidth @blueBorderColor inset,
+ @shadowShadow
+;
+@blueBoxFloatingShadow:
+ 0 0 0 @borderWidth @blueBorderColor inset,
+ @floatingShadow
+;
+@violetBoxShadow:
+ 0 0 0 @borderWidth @violetBorderColor inset,
+ @shadowShadow
+;
+@violetBoxFloatingShadow:
+ 0 0 0 @borderWidth @violetBorderColor inset,
+ @floatingShadow
+;
+@purpleBoxShadow:
+ 0 0 0 @borderWidth @purpleBorderColor inset,
+ @shadowShadow
+;
+@purpleBoxFloatingShadow:
+ 0 0 0 @borderWidth @purpleBorderColor inset,
+ @floatingShadow
+;
+@pinkBoxShadow:
+ 0 0 0 @borderWidth @pinkBorderColor inset,
+ @shadowShadow
+;
+@pinkBoxFloatingShadow:
+ 0 0 0 @borderWidth @pinkBorderColor inset,
+ @floatingShadow
+;
+@brownBoxShadow:
+ 0 0 0 @borderWidth @brownBorderColor inset,
+ @shadowShadow
+;
+@brownBoxFloatingShadow:
+ 0 0 0 @borderWidth @brownBorderColor inset,
+ @floatingShadow
+;
+
+/* Warning / Positive / Negative / Info */
+@positiveBoxShadow:
+ 0 0 0 @borderWidth @positiveBorderColor inset,
+ @shadowShadow
+;
+@positiveBoxFloatingShadow:
+ 0 0 0 @borderWidth @positiveBorderColor inset,
+ @floatingShadow
+;
+@negativeBoxShadow:
+ 0 0 0 @borderWidth @negativeBorderColor inset,
+ @shadowShadow
+;
+@negativeBoxFloatingShadow:
+ 0 0 0 @borderWidth @negativeBorderColor inset,
+ @floatingShadow
+;
+@infoBoxShadow:
+ 0 0 0 @borderWidth @infoBorderColor inset,
+ @shadowShadow
+;
+@infoBoxFloatingShadow:
+ 0 0 0 @borderWidth @infoBorderColor inset,
+ @floatingShadow
+;
+@warningBoxShadow:
+ 0 0 0 @borderWidth @warningBorderColor inset,
+ @shadowShadow
+;
+@warningBoxFloatingShadow:
+ 0 0 0 @borderWidth @warningBorderColor inset,
+ @floatingShadow
+;
+@errorBoxShadow:
+ 0 0 0 @borderWidth @errorBorderColor inset,
+ @shadowShadow
+;
+@errorBoxFloatingShadow:
+ 0 0 0 @borderWidth @errorBorderColor inset,
+ @floatingShadow
+;
+@successBoxShadow:
+ 0 0 0 @borderWidth @successBorderColor inset,
+ @shadowShadow
+;
+@successBoxFloatingShadow:
+ 0 0 0 @borderWidth @successBorderColor inset,
+ @floatingShadow
+;
+
+@miniMessageSize: @relativeMini;
+@tinyMessageSize: @relativeTiny;
+@smallMessageSize: @relativeSmall;
+@largeMessageSize: @relativeLarge;
+@bigMessageSize: @relativeBig;
+@hugeMessageSize: @relativeHuge;
+@massiveMessageSize: @relativeMassive;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/collections/table.overrides b/assets/semantic/src/themes/default/collections/table.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/default/collections/table.variables b/assets/semantic/src/themes/default/collections/table.variables
new file mode 100644
index 0000000..874360b
--- /dev/null
+++ b/assets/semantic/src/themes/default/collections/table.variables
@@ -0,0 +1,250 @@
+/*******************************
+ Table
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@verticalMargin: 1em;
+@horizontalMargin: 0;
+@margin: @verticalMargin @horizontalMargin;
+@borderCollapse: separate;
+@borderSpacing: 0;
+@borderRadius: @defaultBorderRadius;
+@transition:
+ background @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing
+;
+@background: @white;
+@color: @textColor;
+@borderWidth: 1px;
+@border: @borderWidth solid @borderColor;
+@boxShadow: none;
+@textAlign: left;
+@verticalAlign: middle;
+
+/*--------------
+ Parts
+---------------*/
+
+/* Table Row */
+@rowBorder: 1px solid @internalBorderColor;
+
+/* Table Cell */
+@cellVerticalPadding: @relativeMini;
+@cellHorizontalPadding: @relativeMini;
+@cellVerticalAlign: inherit;
+@cellTextAlign: inherit;
+@cellBorder: 1px solid @internalBorderColor;
+
+/* Table Header */
+@headerBorder: 1px solid @internalBorderColor;
+@headerDivider: none;
+@headerBackground: @offWhite;
+@headerAlign: inherit;
+@headerVerticalAlign: inherit;
+@headerColor: @textColor;
+@headerVerticalPadding: @relativeSmall;
+@headerHorizontalPadding: @cellHorizontalPadding;
+@headerFontStyle: none;
+@headerFontWeight: @bold;
+@headerTextTransform: none;
+@headerBoxShadow: none;
+
+/* Table Footer */
+@footerBoxShadow: none;
+@footerBorder: 1px solid @borderColor;
+@footerDivider: none;
+@footerBackground: @offWhite;
+@footerAlign: inherit;
+@footerVerticalAlign: inherit;
+@footerColor: @textColor;
+@footerVerticalPadding: @cellVerticalPadding;
+@footerHorizontalPadding: @cellHorizontalPadding;
+@footerFontStyle: @normal;
+@footerFontWeight: @normal;
+@footerTextTransform: none;
+
+/* Responsive Size */
+@responsiveHeaderDisplay: block;
+@responsiveFooterDisplay: block;
+@responsiveRowVerticalPadding: 1em;
+@responsiveRowBoxShadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1) inset;
+@responsiveCellVerticalPadding: 0.25em;
+@responsiveCellHorizontalPadding: 0.75em;
+@responsiveCellBoxShadow: none;
+@responsiveCellHeaderFontWeight: @bold;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Definition */
+@definitionPageBackground: @white;
+
+@definitionHeaderBackground: @white;
+@definitionHeaderColor: @unselectedTextColor;
+@definitionHeaderFontWeight: @normal;
+
+@definitionFooterBackground: @definitionHeaderBackground;
+@definitionFooterColor: @definitionHeaderColor;
+@definitionFooterFontWeight: @definitionHeaderFontWeight;
+
+@definitionColumnBackground: @subtleTransparentBlack;
+@definitionColumnFontWeight: @bold;
+@definitionColumnColor: @selectedTextColor;
+@definitionColumnFontSize: @relativeMedium;
+@definitionColumnTextTransform: '';
+@definitionColumnBoxShadow: '';
+@definitionColumnTextAlign: '';
+@definitionColumnHorizontalPadding: '';
+
+
+/*--------------
+ Couplings
+---------------*/
+
+@iconVerticalAlign: baseline;
+
+/*--------------
+ States
+---------------*/
+
+@stateMarkerWidth: 0;
+
+/* Positive */
+@positiveColor: @positiveTextColor;
+@positiveBoxShadow: @stateMarkerWidth 0 0 @positiveBorderColor inset;
+@positiveBackgroundHover: darken(@positiveBackgroundColor, 3);
+@positiveColorHover: darken(@positiveColor, 3);
+
+/* Negative */
+@negativeColor: @negativeTextColor;
+@negativeBoxShadow: @stateMarkerWidth 0 0 @negativeBorderColor inset;
+@negativeBackgroundHover: darken(@negativeBackgroundColor, 3);
+@negativeColorHover: darken(@negativeColor, 3);
+
+/* Error */
+@errorColor: @errorTextColor;
+@errorBoxShadow: @stateMarkerWidth 0 0 @errorBorderColor inset;
+@errorBackgroundHover: darken(@errorBackgroundColor, 3);
+@errorColorHover: darken(@errorColor, 3);
+
+/* Warning */
+@warningColor: @warningTextColor;
+@warningBoxShadow: @stateMarkerWidth 0 0 @warningBorderColor inset;
+@warningBackgroundHover: darken(@warningBackgroundColor, 3);
+@warningColorHover: darken(@warningColor, 3);
+
+/* Active */
+@activeColor: @textColor;
+@activeBackgroundColor: #E0E0E0;
+@activeBoxShadow: @stateMarkerWidth 0 0 @activeColor inset;
+
+@activeBackgroundHover: #EFEFEF;
+@activeColorHover: @selectedTextColor;
+
+/*--------------
+ Types
+---------------*/
+
+/* Attached */
+@attachedTopOffset: 0;
+@attachedBottomOffset: 0;
+@attachedHorizontalOffset: -@borderWidth;
+@attachedWidth: e(%("calc(100%% + %d)", -@attachedHorizontalOffset * 2));
+@attachedBoxShadow: none;
+@attachedBorder: @borderWidth solid @solidBorderColor;
+@attachedBottomBoxShadow:
+ @boxShadow,
+ @attachedBoxShadow
+;
+
+/* Striped */
+@stripedBackground: rgba(0, 0, 50, 0.02);
+@invertedStripedBackground: rgba(255, 255, 255, 0.05);
+
+/* Selectable */
+@selectableBackground: @transparentBlack;
+@selectableTextColor: @selectedTextColor;
+@selectableInvertedBackground: @transparentWhite;
+@selectableInvertedTextColor: @invertedSelectedTextColor;
+
+/* Sortable */
+@sortableBackground: '';
+@sortableColor: @textColor;
+
+@sortableBorder: 1px solid @borderColor;
+@sortableIconWidth: auto;
+@sortableIconDistance: 0.5em;
+@sortableIconOpacity: 0.8;
+@sortableIconFont: 'Icons';
+@sortableIconAscending: '\f0d8';
+@sortableIconDescending: '\f0d7';
+@sortableDisabledColor: @disabledTextColor;
+
+@sortableHoverBackground: @transparentBlack;
+@sortableHoverColor: @hoveredTextColor;
+
+@sortableActiveBackground: @transparentBlack;
+@sortableActiveColor: @selectedTextColor;
+
+@sortableActiveHoverBackground: @transparentBlack;
+@sortableActiveHoverColor: @selectedTextColor;
+
+@sortableInvertedBorderColor: transparent;
+@sortableInvertedHoverBackground: @transparentWhite @subtleGradient;
+@sortableInvertedHoverColor: @invertedHoveredTextColor;
+@sortableInvertedActiveBackground: @strongTransparentWhite @subtleGradient;
+@sortableInvertedActiveColor: @invertedSelectedTextColor;
+
+/* Colors */
+@coloredBorderSize: 0.2em;
+@coloredBorderRadius: 0 0 @borderRadius @borderRadius;
+@coloredBorderSizeCover: @coloredBorderSize / 2;
+
+/* Inverted */
+@invertedBackground: #333333;
+@invertedBorder: none;
+@invertedCellBorder: 1px solid @whiteBorderColor;
+@invertedCellBorderColor: @whiteBorderColor;
+@invertedCellColor: @invertedTextColor;
+
+@invertedHeaderBackground: @veryStrongTransparentBlack;
+@invertedHeaderColor: @invertedTextColor;
+@invertedHeaderBorderColor: @invertedCellBorderColor;
+
+@invertedDefinitionColumnBackground: @subtleTransparentWhite;
+@invertedDefinitionColumnColor: @invertedSelectedTextColor;
+@invertedDefinitionColumnFontWeight: @bold;
+
+/* Basic */
+@basicTableBackground: transparent;
+@basicTableBorder: @borderWidth solid @borderColor;
+@basicBoxShadow: none;
+
+@basicTableHeaderBackground: transparent;
+@basicTableCellBackground: transparent;
+@basicTableHeaderDivider: none;
+@basicTableCellBorder: 1px solid rgba(0, 0, 0, 0.1);
+@basicTableCellPadding: '';
+@basicTableStripedBackground: @transparentBlack;
+
+/* Padded */
+@paddedVerticalPadding: 1em;
+@paddedHorizontalPadding: 1em;
+@veryPaddedVerticalPadding: 1.5em;
+@veryPaddedHorizontalPadding: 1.5em;
+
+/* Compact */
+@compactVerticalPadding: 0.5em;
+@compactHorizontalPadding: 0.7em;
+@veryCompactVerticalPadding: 0.4em;
+@veryCompactHorizontalPadding: 0.6em;
+
+
+/* Sizes */
+@small: 0.9em;
+@medium: 1em;
+@large: 1.1em;
diff --git a/assets/semantic/src/themes/default/elements/button.overrides b/assets/semantic/src/themes/default/elements/button.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/button.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/button.variables b/assets/semantic/src/themes/default/elements/button.variables
new file mode 100644
index 0000000..68a490a
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/button.variables
@@ -0,0 +1,404 @@
+/*******************************
+ Button
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+/* Button */
+@verticalMargin: 0;
+@horizontalMargin: 0.25em;
+@backgroundColor: #E0E1E2;
+@backgroundImage: none;
+@background: @backgroundColor @backgroundImage;
+@lineHeight: 1em;
+
+/* Button defaults to using same height as input globally */
+@verticalPadding: @inputVerticalPadding;
+@horizontalPadding: 1.5em;
+
+/* Text */
+@textTransform: none;
+@tapColor: transparent;
+@fontFamily: @pageFont;
+@fontWeight: @bold;
+@textColor: rgba(0, 0, 0, 0.6);
+@textShadow: none;
+@invertedTextShadow: @textShadow;
+@borderRadius: @defaultBorderRadius;
+@verticalAlign: baseline;
+
+/* Internal Shadow */
+@shadowDistance: 0;
+@shadowOffset: (@shadowDistance / 2);
+@shadowBoxShadow: 0 -@shadowDistance 0 0 @borderColor inset;
+
+/* Box Shadow */
+@borderBoxShadowColor: transparent;
+@borderBoxShadowWidth: 1px;
+@borderBoxShadow: 0 0 0 @borderBoxShadowWidth @borderBoxShadowColor inset;
+@boxShadow:
+ @borderBoxShadow,
+ @shadowBoxShadow
+;
+
+/* Icon */
+@iconHeight: auto;
+@iconOpacity: 0.8;
+@iconDistance: @relative6px;
+@iconColor: '';
+@iconTransition: opacity @defaultDuration @defaultEasing;
+@iconVerticalAlign: baseline;
+
+@iconMargin: 0 @iconDistance 0 -(@iconDistance / 2);
+@rightIconMargin: 0 -(@iconDistance / 2) 0 @iconDistance;
+
+/* Loader */
+@invertedLoaderFillColor: rgba(0, 0, 0, 0.15);
+
+@transition:
+ opacity @defaultDuration @defaultEasing,
+ background-color @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing,
+ background @defaultDuration @defaultEasing
+;
+/*
+@willChange: box-shadow, transform, opacity, color, background;
+*/
+@willChange: auto;
+
+/*-------------------
+ Group
+--------------------*/
+
+@groupBoxShadow: none;
+@groupButtonBoxShadow: @boxShadow;
+@verticalBoxShadow: none;
+@groupButtonOffset: 0 0 0 0;
+@verticalGroupOffset: 0 0 0 0;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Hovered */
+@hoverBackgroundColor: #CACBCD;
+@hoverBackgroundImage: @backgroundImage;
+@hoverBoxShadow: @boxShadow;
+@hoverColor: @hoveredTextColor;
+@iconHoverOpacity: 0.85;
+
+/* Focused */
+@focusBackgroundColor: @hoverBackgroundColor;
+@focusBackgroundImage: none;
+@focusBoxShadow: '';
+@focusColor: @hoveredTextColor;
+@iconFocusOpacity: 0.85;
+
+/* Disabled */
+@disabledBackgroundImage: none;
+@disabledBoxShadow: none;
+
+/* Pressed Down */
+@downBackgroundColor: #BABBBC;
+@downBackgroundImage: '';
+@downPressedShadow: none;
+@downBoxShadow:
+ @borderBoxShadow,
+ @downPressedShadow
+;
+@downColor: @pressedTextColor;
+
+/* Active */
+@activeBackgroundColor: #C0C1C2;
+@activeBackgroundImage: none;
+@activeColor: @selectedTextColor;
+@activeBoxShadow: @borderBoxShadow;
+
+/* Active + Hovered */
+@activeHoverBackgroundColor: @activeBackgroundColor;
+@activeHoverBackgroundImage: none;
+@activeHoverColor: @activeColor;
+@activeHoverBoxShadow: @activeBoxShadow;
+
+/* Loading */
+@loadingOpacity: 1;
+@loadingPointerEvents: auto;
+@loadingTransition:
+ all 0s linear,
+ opacity @defaultDuration @defaultEasing
+;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Or */
+@orText: 'or';
+
+@orGap: 0.3em;
+@orHeight: (@verticalPadding * 2) + 1em;
+@orZIndex: 3;
+
+@orCircleDistanceToEdge: (@verticalPadding);
+@orCircleSize: @orHeight - @orCircleDistanceToEdge;
+@orLineHeight: (@orCircleSize);
+@orBoxShadow: @borderBoxShadow;
+
+@orVerticalOffset: -(@orCircleSize / 2);
+@orHorizontalOffset: -(@orCircleSize / 2);
+
+@orBackgroundColor: @white;
+@orTextShadow: @invertedTextShadow;
+@orTextStyle: @normal;
+@orTextWeight: @bold;
+@orTextColor: @lightTextColor;
+
+
+@orSpacerHeight: @verticalPadding;
+@orSpacerColor: transparent;
+
+/* Icon */
+@iconButtonOpacity: 0.9;
+
+/* Labeled */
+@labeledLabelFontSize: @medium;
+@labeledLabelAlign: center;
+@labeledLabelPadding: '';
+@labeledLabelFontSize: @relativeMedium;
+@labeledLabelBorderColor: @borderColor;
+@labeledLabelBorderOffset: -@borderBoxShadowWidth;
+@labeledTagLabelSize: 1.85em; /* hypotenuse of triangle */
+@labeledIconMargin: 0;
+
+/* Labeled Icon */
+@labeledIconWidth: 1em + (@verticalPadding * 2);
+@labeledIconBackgroundColor: rgba(0, 0, 0, 0.05);
+@labeledIconPadding: (@horizontalPadding + @labeledIconWidth);
+@labeledIconBorder: transparent;
+@labeledIconColor: '';
+
+@labeledIconLeftShadow: -1px 0 0 0 @labeledIconBorder inset;
+@labeledIconRightShadow: 1px 0 0 0 @labeledIconBorder inset;
+
+
+/* Inverted */
+@invertedBorderSize: 2px;
+@invertedTextColor: @white;
+@invertedTextHoverColor: @hoverColor;
+@invertedGroupButtonOffset: 0 0 0 -(@invertedBorderSize);
+@invertedVerticalGroupButtonOffset: 0 0 -(@invertedBorderSize) 0;
+
+/* Basic */
+@basicBorderRadius: @borderRadius;
+@basicBorderSize: 1px;
+@basicTextColor: @textColor;
+@basicColoredBorderSize: 1px;
+
+@basicBackground: transparent none;
+@basicFontWeight: @normal;
+@basicBorder: 1px solid @borderColor;
+@basicBoxShadow: 0 0 0 @basicBorderSize @borderColor inset;
+@basicLoadingColor: @offWhite;
+@basicTextTransform: none;
+
+/* Basic Hover */
+@basicHoverBackground: #FFFFFF;
+@basicHoverTextColor: @hoveredTextColor;
+@basicHoverBoxShadow:
+ 0 0 0 @basicBorderSize @selectedBorderColor inset,
+ 0 0 0 0 @borderColor inset
+;
+/* Basic Focus */
+@basicFocusBackground: @basicHoverBackground;
+@basicFocusTextColor: @basicHoverTextColor;
+@basicFocusBoxShadow: @basicHoverBoxShadow;
+
+/* Basic Down */
+@basicDownBackground: #F8F8F8;
+@basicDownTextColor: @pressedTextColor;
+@basicDownBoxShadow:
+ 0 0 0 @basicBorderSize rgba(0, 0, 0, 0.15) inset,
+ 0 1px 4px 0 @borderColor inset
+;
+/* Basic Active */
+@basicActiveBackground: @transparentBlack;
+@basicActiveBoxShadow: '';
+@basicActiveTextColor: @selectedTextColor;
+
+/* Basic Inverted */
+@basicInvertedBackground: transparent;
+@basicInvertedFocusBackground: transparent;
+@basicInvertedDownBackground: @transparentWhite;
+@basicInvertedActiveBackground: @transparentWhite;
+
+@basicInvertedBoxShadow: 0 0 0 @invertedBorderSize rgba(255, 255, 255, 0.5) inset;
+@basicInvertedHoverBoxShadow: 0 0 0 @invertedBorderSize rgba(255, 255, 255, 1) inset;
+@basicInvertedFocusBoxShadow: 0 0 0 @invertedBorderSize rgba(255, 255, 255, 1) inset;
+@basicInvertedDownBoxShadow: 0 0 0 @invertedBorderSize rgba(255, 255, 255, 0.9) inset;
+@basicInvertedActiveBoxShadow: 0 0 0 @invertedBorderSize rgba(255, 255, 255, 0.7) inset;
+
+@basicInvertedColor: @darkWhite;
+@basicInvertedHoverColor: @darkWhiteHover;
+@basicInvertedDownColor: @darkWhiteActive;
+@basicInvertedActiveColor: @invertedTextColor;
+
+
+/* Basic Group */
+@basicGroupBorder: @basicBorderSize solid @borderColor;
+@basicGroupBoxShadow: none;
+
+/*-------------
+ Tertiary
+-------------*/
+@tertiaryLinePadding: 0.5em;
+@tertiaryLineHeight: 0.2em;
+@tertiaryTextColor: @textColor;
+@tertiaryLineColor: lighten(@tertiaryTextColor, 20%);
+@tertiaryWithUnderline: false;
+@tertiaryWithOverline: false;
+@tertiaryBackgroundColor: none;
+
+/* Tertiary Hover */
+@tertiaryHoverColor: lighten(fadein(@tertiaryTextColor, 100%), 20%);
+@tertiaryHoverLineColor: lighten(@tertiaryHoverColor, 20%);
+@tertiaryHoverWithUnderline: true;
+@tertiaryHoverWithOverline: false;
+@tertiaryHoverBackgroundColor: none;
+
+/* Tertiary Focus */
+@tertiaryFocusColor: lighten(fadein(@tertiaryTextColor, 100%), 20%);
+@tertiaryFocusLineColor: lighten(@tertiaryHoverColor, 20%);
+@tertiaryFocusWithUnderline: true;
+@tertiaryFocusWithOverline: false;
+@tertiaryFocusBackgroundColor: none;
+
+/* Tertiary Active */
+@tertiaryActiveColor: lighten(@tertiaryHoverColor, 20%);
+@tertiaryActiveLineColor: lighten(@tertiaryActiveColor, 20%);
+@tertiaryActiveWithUnderline: true;
+@tertiaryActiveWithOverline: false;
+@tertiaryActiveBackgroundColor: none;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Colors */
+@coloredBackgroundImage: none;
+@coloredBoxShadow: @shadowBoxShadow;
+
+/* Colored */
+@brownTextColor: @invertedTextColor;
+@brownTextShadow: @invertedTextShadow;
+@redTextColor: @invertedTextColor;
+@redTextShadow: @invertedTextShadow;
+@orangeTextColor: @invertedTextColor;
+@orangeTextShadow: @invertedTextShadow;
+@greenTextColor: @invertedTextColor;
+@greenTextShadow: @invertedTextShadow;
+@blueTextColor: @invertedTextColor;
+@blueTextShadow: @invertedTextShadow;
+@violetTextColor: @invertedTextColor;
+@violetTextShadow: @invertedTextShadow;
+@purpleTextColor: @invertedTextColor;
+@purpleTextShadow: @invertedTextShadow;
+@pinkTextColor: @invertedTextColor;
+@pinkTextShadow: @invertedTextShadow;
+@blackTextColor: @invertedTextColor;
+@blackTextShadow: @invertedTextShadow;
+@oliveTextColor: @invertedTextColor;
+@oliveTextShadow: @invertedTextShadow;
+@yellowTextColor: @invertedTextColor;
+@yellowTextShadow: @invertedTextShadow;
+@tealTextColor: @invertedTextColor;
+@tealTextShadow: @invertedTextShadow;
+@greyTextColor: @invertedTextColor;
+@greyTextShadow: @invertedTextShadow;
+
+/* Inverted */
+@lightBrownTextColor: @invertedTextColor;
+@lightBrownTextShadow: @invertedTextShadow;
+@lightRedTextColor: @invertedTextColor;
+@lightRedTextShadow: @invertedTextShadow;
+@lightOrangeTextColor: @invertedTextColor;
+@lightOrangeTextShadow: @invertedTextShadow;
+@lightGreenTextColor: @invertedTextColor;
+@lightGreenTextShadow: @invertedTextShadow;
+@lightBlueTextColor: @invertedTextColor;
+@lightBlueTextShadow: @invertedTextShadow;
+@lightVioletTextColor: @invertedTextColor;
+@lightVioletTextShadow: @invertedTextShadow;
+@lightPurpleTextColor: @invertedTextColor;
+@lightPurpleTextShadow: @invertedTextShadow;
+@lightPinkTextColor: @invertedTextColor;
+@lightPinkTextShadow: @invertedTextShadow;
+@lightBlackTextColor: @invertedTextColor;
+@lightBlackTextShadow: @invertedTextShadow;
+@lightOliveTextColor: @textColor;
+@lightOliveTextShadow: @textShadow;
+@lightYellowTextColor: @textColor;
+@lightYellowTextShadow: @textShadow;
+@lightTealTextColor: @textColor;
+@lightTealTextShadow: @textShadow;
+@lightGreyTextColor: @textColor;
+@lightGreyTextShadow: @textShadow;
+
+
+/* Ordinality */
+@primaryBackgroundImage: @coloredBackgroundImage;
+@primaryTextColor: @invertedTextColor;
+@lightPrimaryTextColor: @invertedTextColor;
+@primaryTextShadow: @invertedTextShadow;
+@primaryBoxShadow: @coloredBoxShadow;
+
+@secondaryBackgroundImage: @coloredBackgroundImage;
+@secondaryTextColor: @invertedTextColor;
+@secondaryTextShadow: @invertedTextShadow;
+@lightSecondaryTextColor: @invertedTextColor;
+@secondaryBoxShadow: @coloredBoxShadow;
+
+@positiveBackgroundImage: @coloredBackgroundImage;
+@positiveTextColor: @invertedTextColor;
+@positiveTextShadow: @invertedTextShadow;
+@positiveBoxShadow: @coloredBoxShadow;
+
+@negativeBackgroundImage: @coloredBackgroundImage;
+@negativeTextColor: @invertedTextColor;
+@negativeTextShadow: @invertedTextShadow;
+@negativeBoxShadow: @coloredBoxShadow;
+
+/* Compact */
+@compactVerticalPadding: (@verticalPadding * 0.75);
+@compactHorizontalPadding: (@horizontalPadding * 0.75);
+
+/* Attached */
+@attachedOffset: -1px;
+@attachedBoxShadow: 0 0 0 1px @borderColor;
+@attachedHorizontalPadding: 0.75em;
+@attachedZIndex: auto;
+
+/* Floated */
+@floatedMargin: 0.25em;
+
+/* Animated */
+@animatedVerticalAlign: middle;
+@animatedZIndex: 1;
+@animationDuration: 0.3s;
+@animationEasing: ease;
+@fadeScaleHigh: 1.5;
+@fadeScaleLow: 0.75;
+
+/* Toggle */
+@toggleColor: @invertedTextColor;
+@toggleBackgroundColor: @positiveColor;
+@toggleTextShadow: @invertedTextShadow;
+@toggleHoverColor: @invertedTextColor;
+@toggleHoverBackgroundColor: @positiveColorHover;
+@toggleHoverTextShadow: @invertedTextShadow;
+
+/* Circular */
+@circularBorderRadius: 10em;
+@circularIconWidth: 1em;
diff --git a/assets/semantic/src/themes/default/elements/container.overrides b/assets/semantic/src/themes/default/elements/container.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/container.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/container.variables b/assets/semantic/src/themes/default/elements/container.variables
new file mode 100644
index 0000000..946ce75
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/container.variables
@@ -0,0 +1,58 @@
+/*******************************
+ Container
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+/* Minimum Gutter is used to determine the maximum container width for a given device */
+
+@maxWidth: 100%;
+
+/* Devices */
+@mobileMinimumGutter: 0;
+@mobileWidth: auto;
+@mobileGutter: 1em;
+
+@tabletMinimumGutter: (@emSize * 1);
+@tabletWidth: @tabletBreakpoint - (@tabletMinimumGutter * 2) - @scrollbarWidth;
+@tabletGutter: auto;
+
+@computerMinimumGutter: (@emSize * 1.5);
+@computerWidth: @computerBreakpoint - (@computerMinimumGutter * 2) - @scrollbarWidth;
+@computerGutter: auto;
+
+@largeMonitorMinimumGutter: (@emSize * 2);
+@largeMonitorWidth: @largeMonitorBreakpoint - (@largeMonitorMinimumGutter * 2) - @scrollbarWidth;
+@largeMonitorGutter: auto;
+
+/* Coupling (Add Negative Margin to container size) */
+@gridGutterWidth: 2rem;
+@relaxedGridGutterWidth: 3rem;
+@veryRelaxedGridGutterWidth: 5rem;
+
+@mobileGridWidth: @mobileWidth;
+@tabletGridWidth: e(%("calc(%d + %d)", @tabletWidth, @gridGutterWidth));
+@computerGridWidth: e(%("calc(%d + %d)", @computerWidth, @gridGutterWidth));
+@largeMonitorGridWidth: e(%("calc(%d + %d)", @largeMonitorWidth, @gridGutterWidth));
+
+@mobileRelaxedGridWidth: @mobileWidth;
+@tabletRelaxedGridWidth: e(%("calc(%d + %d)", @tabletWidth, @relaxedGridGutterWidth));
+@computerRelaxedGridWidth: e(%("calc(%d + %d)", @computerWidth, @relaxedGridGutterWidth));
+@largeMonitorRelaxedGridWidth: e(%("calc(%d + %d)", @largeMonitorWidth, @relaxedGridGutterWidth));
+
+@mobileVeryRelaxedGridWidth: @mobileWidth;
+@tabletVeryRelaxedGridWidth: e(%("calc(%d + %d)", @tabletWidth, @veryRelaxedGridGutterWidth));
+@computerVeryRelaxedGridWidth: e(%("calc(%d + %d)", @computerWidth, @veryRelaxedGridGutterWidth));
+@largeMonitorVeryRelaxedGridWidth: e(%("calc(%d + %d)", @largeMonitorWidth, @veryRelaxedGridGutterWidth));
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Text */
+@textWidth: 700px;
+@textFontFamily: @pageFont;
+@textLineHeight: 1.5;
+@textSize: @large;
diff --git a/assets/semantic/src/themes/default/elements/divider.overrides b/assets/semantic/src/themes/default/elements/divider.overrides
new file mode 100644
index 0000000..78591a9
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/divider.overrides
@@ -0,0 +1,18 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
+
+.ui.horizontal.divider:before,
+.ui.horizontal.divider:after {
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
+}
+
+@media only screen and (max-width : (@tabletBreakpoint - 1px)) {
+ .ui.stackable.grid .ui.vertical.divider:before,
+ .ui.grid .stackable.row .ui.vertical.divider:before,
+ .ui.stackable.grid .ui.vertical.divider:after,
+ .ui.grid .stackable.row .ui.vertical.divider:after {
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
+ }
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/elements/divider.variables b/assets/semantic/src/themes/default/elements/divider.variables
new file mode 100644
index 0000000..ebf3edd
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/divider.variables
@@ -0,0 +1,54 @@
+/*******************************
+ Divider
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@margin: 1rem 0;
+@borderStyle: solid;
+
+@highlightWidth: 1px;
+@highlightColor: @whiteBorderColor;
+
+@shadowWidth: 1px;
+@shadowColor: @borderColor;
+
+/* Text */
+@letterSpacing: 0.05em;
+@fontWeight: @bold;
+@color: @darkTextColor;
+@textTransform: uppercase;
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Icon */
+@dividerIconSize: 1rem;
+@dividerIconMargin: 0;
+
+
+/*******************************
+ Variations
+*******************************/
+
+/* Horizontal / Vertical */
+@horizontalMargin: '';
+@horizontalDividerMargin: 1em;
+@horizontalRulerOffset: e(%("calc(-50%% - %d)", @horizontalDividerMargin));
+
+@verticalDividerMargin: 1rem;
+@verticalDividerHeight: e(%("calc(100%% - %d)", @verticalDividerMargin));
+
+/* Inverted */
+@invertedTextColor: @white;
+@invertedHighlightColor: rgba(255, 255, 255, 0.15);
+@invertedShadowColor: @borderColor;
+
+/* Section */
+@sectionMargin: 2rem;
+
+/* Sizes */
+@medium: 1rem;
diff --git a/assets/semantic/src/themes/default/elements/emoji.overrides b/assets/semantic/src/themes/default/elements/emoji.overrides
new file mode 100644
index 0000000..c2f0163
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/emoji.overrides
@@ -0,0 +1,3094 @@
+/*
+* Tweemoji v12.0 by @twitter - https://twemoji.twitter.com/ - @twitter
+* License - CC-BY 4.0 - https://creativecommons.org/licenses/by/4.0/
+*/
+
+/*******************************
+ Emojis
+*******************************/
+
+@emoji-map: {
+ 2049: interrobang;
+ 2122: tm;
+ 2139: information_source;
+ 2194: left_right_arrow;
+ 2195: arrow_up_down;
+ 2196: arrow_upper_left;
+ 2197: arrow_upper_right;
+ 2198: arrow_lower_right;
+ 2199: arrow_lower_left;
+ 2328: keyboard;
+ 2600: sunny;
+ 2601: cloud;
+ 2602: umbrella2;
+ 2603: snowman2;
+ 2604: comet;
+ 2611: ballot_box_with_check;
+ 2614: umbrella;
+ 2615: coffee;
+ 2618: shamrock;
+ 2620: skull_crossbones;
+ 2622: radioactive;
+ 2623: biohazard;
+ 2626: orthodox_cross;
+ 2638: wheel_of_dharma;
+ 2639: frowning2;
+ 2640: female_sign;
+ 2642: male_sign;
+ 2648: aries;
+ 2649: taurus;
+ 2650: sagittarius;
+ 2651: capricorn;
+ 2652: aquarius;
+ 2653: pisces;
+ 2660: spades;
+ 2663: clubs;
+ 2665: hearts;
+ 2666: diamonds;
+ 2668: hotsprings;
+ 2692: hammer_pick;
+ 2693: anchor;
+ 2694: crossed_swords;
+ 2695: medical_symbol;
+ 2696: scales;
+ 2697: alembic;
+ 2699: gear;
+ 2702: scissors;
+ 2705: white_check_mark;
+ 2708: airplane;
+ 2709: envelope;
+ 2712: black_nib;
+ 2714: heavy_check_mark;
+ 2716: heavy_multiplication_x;
+ 2721: star_of_david;
+ 2728: sparkles;
+ 2733: eight_spoked_asterisk;
+ 2734: eight_pointed_black_star;
+ 2744: snowflake;
+ 2747: sparkle;
+ 2753: question;
+ 2754: grey_question;
+ 2755: grey_exclamation;
+ 2757: exclamation;
+ 2763: heart_exclamation;
+ 2764: heart;
+ 2795: heavy_plus_sign;
+ 2796: heavy_minus_sign;
+ 2797: heavy_division_sign;
+ 2934: arrow_heading_up;
+ 2935: arrow_heading_down;
+ 3030: wavy_dash;
+ 3297: congratulations;
+ 3299: secret;
+ 1f9e1: orange_heart;
+ 1f49b: yellow_heart;
+ 1f49a: green_heart;
+ 1f499: blue_heart;
+ 1f49c: purple_heart;
+ 1f5a4: black_heart;
+ 1f90e: brown_heart;
+ 1f90d: white_heart;
+ 1f494: broken_heart;
+ 1f495: two_hearts;
+ 1f49e: revolving_hearts;
+ 1f493: heartbeat;
+ 1f497: heartpulse;
+ 1f496: sparkling_heart;
+ 1f498: cupid;
+ 1f49d: gift_heart;
+ 1f49f: heart_decoration;
+ 262e: peace;
+ 271d: cross;
+ 262a: star_and_crescent;
+ 1f549: om_symbol;
+ 1f52f: six_pointed_star;
+ 1f54e: menorah;
+ 262f: yin_yang;
+ 1f6d0: place_of_worship;
+ 26ce: ophiuchus;
+ 264a: gemini;
+ 264b: cancer;
+ 264c: leo;
+ 264d: virgo;
+ 264e: libra;
+ 264f: scorpius;
+ 1f194: id;
+ 269b: atom;
+ 1f251: accept;
+ 1f4f4: mobile_phone_off;
+ 1f4f3: vibration_mode;
+ 1f236: u6709;
+ 1f21a: u7121;
+ 1f238: u7533;
+ 1f23a: u55b6;
+ 1f237: u6708;
+ 1f19a: vs;
+ 1f4ae: white_flower;
+ 1f250: ideograph_advantage;
+ 1f234: u5408;
+ 1f235: u6e80;
+ 1f239: u5272;
+ 1f232: u7981;
+ 1f170: a;
+ 1f171: b;
+ 1f18e: ab;
+ 1f191: cl;
+ 1f17e: o2;
+ 1f198: sos;
+ 274c: x;
+ 2b55: o;
+ 1f6d1: octagonal_sign;
+ 26d4: no_entry;
+ 1f4db: name_badge;
+ 1f6ab: no_entry_sign;
+ 1f4af: 100;
+ 1f4a2: anger;
+ 1f6b7: no_pedestrians;
+ 1f6af: do_not_litter;
+ 1f6b3: no_bicycles;
+ 1f6b1: non-potable_water;
+ 1f51e: underage;
+ 1f4f5: no_mobile_phones;
+ 1f6ad: no_smoking;
+ 203c: bangbang;
+ 1f505: low_brightness;
+ 1f506: high_brightness;
+ 303d: part_alternation_mark;
+ 26a0: warning;
+ 1f6b8: children_crossing;
+ 1f531: trident;
+ 269c: fleur-de-lis;
+ 1f530: beginner;
+ 267b: recycle;
+ 1f22f: u6307;
+ 1f4b9: chart;
+ 274e: negative_squared_cross_mark;
+ 1f310: globe_with_meridians;
+ 1f4a0: diamond_shape_with_a_dot_inside;
+ 24c2: m;
+ 1f300: cyclone;
+ 1f4a4: zzz;
+ 1f3e7: atm;
+ 1f6be: wc;
+ 267f: wheelchair;
+ 1f17f: parking;
+ 1f233: u7a7a;
+ 1f202: sa;
+ 1f6c2: passport_control;
+ 1f6c3: customs;
+ 1f6c4: baggage_claim;
+ 1f6c5: left_luggage;
+ 1f6b9: mens;
+ 1f6ba: womens;
+ 1f6bc: baby_symbol;
+ 1f6bb: restroom;
+ 1f6ae: put_litter_in_its_place;
+ 1f3a6: cinema;
+ 1f4f6: signal_strength;
+ 1f201: koko;
+ 1f523: symbols;
+ 1f524: abc;
+ 1f521: abcd;
+ 1f520: capital_abcd;
+ 1f196: ng;
+ 1f197: ok;
+ 1f199: up;
+ 1f192: cool;
+ 1f195: new;
+ 1f193: free;
+ 30-20e3: zero;
+ 31-20e3: one;
+ 32-20e3: two;
+ 33-20e3: three;
+ 34-20e3: four;
+ 35-20e3: five;
+ 36-20e3: six;
+ 37-20e3: seven;
+ 38-20e3: eight;
+ 39-20e3: nine;
+ 1f51f: keycap_ten;
+ 1f522: 1234;
+ 23-20e3: hash;
+ 2a-20e3: asterisk;
+ 23cf: eject;
+ 25b6: arrow_forward;
+ 23f8: pause_button;
+ 23ef: play_pause;
+ 23f9: stop_button;
+ 23fa: record_button;
+ 23ed: track_next;
+ 23ee: track_previous;
+ 23e9: fast_forward;
+ 23ea: rewind;
+ 23eb: arrow_double_up;
+ 23ec: arrow_double_down;
+ 25c0: arrow_backward;
+ 1f53c: arrow_up_small;
+ 1f53d: arrow_down_small;
+ 27a1: arrow_right;
+ 2b05: arrow_left;
+ 2b06: arrow_up;
+ 2b07: arrow_down;
+ 21aa: arrow_right_hook;
+ 21a9: leftwards_arrow_with_hook;
+ 1f500: twisted_rightwards_arrows;
+ 1f501: repeat;
+ 1f502: repeat_one;
+ 1f504: arrows_counterclockwise;
+ 1f503: arrows_clockwise;
+ 1f3b5: musical_note;
+ 1f3b6: notes;
+ 267e: infinity;
+ 1f4b2: heavy_dollar_sign;
+ 1f4b1: currency_exchange;
+ a9: copyright;
+ ae: registered;
+ 27b0: curly_loop;
+ 27bf: loop;
+ 1f51a: end;
+ 1f519: back;
+ 1f51b: on;
+ 1f51d: top;
+ 1f51c: soon;
+ 1f518: radio_button;
+ 26aa: white_circle;
+ 26ab: black_circle;
+ 1f534: red_circle;
+ 1f535: blue_circle;
+ 1f7e4: brown_circle;
+ 1f7e3: purple_circle;
+ 1f7e2: green_circle;
+ 1f7e1: yellow_circle;
+ 1f7e0: orange_circle;
+ 1f53a: small_red_triangle;
+ 1f53b: small_red_triangle_down;
+ 1f538: small_orange_diamond;
+ 1f539: small_blue_diamond;
+ 1f536: large_orange_diamond;
+ 1f537: large_blue_diamond;
+ 1f533: white_square_button;
+ 1f532: black_square_button;
+ 25aa: black_small_square;
+ 25ab: white_small_square;
+ 25fe: black_medium_small_square;
+ 25fd: white_medium_small_square;
+ 25fc: black_medium_square;
+ 25fb: white_medium_square;
+ 2b1b: black_large_square;
+ 2b1c: white_large_square;
+ 1f7e7: orange_square;
+ 1f7e6: blue_square;
+ 1f7e5: red_square;
+ 1f7eb: brown_square;
+ 1f7ea: purple_square;
+ 1f7e9: green_square;
+ 1f7e8: yellow_square;
+ 1f508: speaker;
+ 1f507: mute;
+ 1f509: sound;
+ 1f50a: loud_sound;
+ 1f514: bell;
+ 1f515: no_bell;
+ 1f4e3: mega;
+ 1f4e2: loudspeaker;
+ 1f5e8: speech_left;
+ 1f441-200d-1f5e8: eye_in_speech_bubble;
+ 1f4ac: speech_balloon;
+ 1f4ad: thought_balloon;
+ 1f5ef: anger_right;
+ 1f0cf: black_joker;
+ 1f3b4: flower_playing_cards;
+ 1f004: mahjong;
+ 1f550: clock1;
+ 1f551: clock2;
+ 1f552: clock3;
+ 1f553: clock4;
+ 1f554: clock5;
+ 1f555: clock6;
+ 1f556: clock7;
+ 1f557: clock8;
+ 1f558: clock9;
+ 1f559: clock10;
+ 1f55a: clock11;
+ 1f55b: clock12;
+ 1f55c: clock130;
+ 1f55d: clock230;
+ 1f55e: clock330;
+ 1f55f: clock430;
+ 1f560: clock530;
+ 1f561: clock630;
+ 1f562: clock730;
+ 1f563: clock830;
+ 1f564: clock930;
+ 1f565: clock1030;
+ 1f566: clock1130;
+ 1f567: clock1230;
+ 30-20e3: digit_zero;
+ 31-20e3: digit_one;
+ 32-20e3: digit_two;
+ 33-20e3: digit_three;
+ 34-20e3: digit_four;
+ 35-20e3: digit_five;
+ 36-20e3: digit_six;
+ 37-20e3: digit_seven;
+ 38-20e3: digit_eight;
+ 39-20e3: digit_nine;
+ 23-20e3: pound_symbol;
+ 2a-20e3: asterisk_symbol;
+ 26bd: soccer;
+ 1f3c0: basketball;
+ 1f3c8: football;
+ 26be: baseball;
+ 1f94e: softball;
+ 1f3be: tennis;
+ 1f3d0: volleyball;
+ 1f3c9: rugby_football;
+ 1f94f: flying_disc;
+ 1f3b1: 8ball;
+ 1f3d3: ping_pong;
+ 1f3f8: badminton;
+ 1f3d2: hockey;
+ 1f3d1: field_hockey;
+ 1f94d: lacrosse;
+ 1f3cf: cricket_game;
+ 1f945: goal;
+ 26f3: golf;
+ 1f3f9: bow_and_arrow;
+ 1f3a3: fishing_pole_and_fish;
+ 1f94a: boxing_glove;
+ 1f94b: martial_arts_uniform;
+ 1f3bd: running_shirt_with_sash;
+ 1f6f9: skateboard;
+ 1f6f7: sled;
+ 1fa82: parachute;
+ 26f8: ice_skate;
+ 1f94c: curling_stone;
+ 1f3bf: ski;
+ 26f7: skier;
+ 1f3c2: snowboarder;
+ 1f3c2-1f3fb: snowboarder_tone1;
+ 1f3c2-1f3fc: snowboarder_tone2;
+ 1f3c2-1f3fd: snowboarder_tone3;
+ 1f3c2-1f3fe: snowboarder_tone4;
+ 1f3c2-1f3ff: snowboarder_tone5;
+ 1f3cb: person_lifting_weights;
+ 1f3cb-1f3fb: person_lifting_weights_tone1;
+ 1f3cb-1f3fc: person_lifting_weights_tone2;
+ 1f3cb-1f3fd: person_lifting_weights_tone3;
+ 1f3cb-1f3fe: person_lifting_weights_tone4;
+ 1f3cb-1f3ff: person_lifting_weights_tone5;
+ 1f3cb-fe0f-200d-2640-fe0f: woman_lifting_weights;
+ 1f3cb-1f3fb-200d-2640-fe0f: woman_lifting_weights_tone1;
+ 1f3cb-1f3fc-200d-2640-fe0f: woman_lifting_weights_tone2;
+ 1f3cb-1f3fd-200d-2640-fe0f: woman_lifting_weights_tone3;
+ 1f3cb-1f3fe-200d-2640-fe0f: woman_lifting_weights_tone4;
+ 1f3cb-1f3ff-200d-2640-fe0f: woman_lifting_weights_tone5;
+ 1f3cb-fe0f-200d-2642-fe0f: man_lifting_weights;
+ 1f3cb-1f3fb-200d-2642-fe0f: man_lifting_weights_tone1;
+ 1f3cb-1f3fc-200d-2642-fe0f: man_lifting_weights_tone2;
+ 1f3cb-1f3fd-200d-2642-fe0f: man_lifting_weights_tone3;
+ 1f3cb-1f3fe-200d-2642-fe0f: man_lifting_weights_tone4;
+ 1f3cb-1f3ff-200d-2642-fe0f: man_lifting_weights_tone5;
+ 1f93c: people_wrestling;
+ 1f93c-200d-2640-fe0f: women_wrestling;
+ 1f93c-200d-2642-fe0f: men_wrestling;
+ 1f938: person_doing_cartwheel;
+ 1f938-1f3fb: person_doing_cartwheel_tone1;
+ 1f938-1f3fc: person_doing_cartwheel_tone2;
+ 1f938-1f3fd: person_doing_cartwheel_tone3;
+ 1f938-1f3fe: person_doing_cartwheel_tone4;
+ 1f938-1f3ff: person_doing_cartwheel_tone5;
+ 1f938-200d-2640-fe0f: woman_cartwheeling;
+ 1f938-1f3fb-200d-2640-fe0f: woman_cartwheeling_tone1;
+ 1f938-1f3fc-200d-2640-fe0f: woman_cartwheeling_tone2;
+ 1f938-1f3fd-200d-2640-fe0f: woman_cartwheeling_tone3;
+ 1f938-1f3fe-200d-2640-fe0f: woman_cartwheeling_tone4;
+ 1f938-1f3ff-200d-2640-fe0f: woman_cartwheeling_tone5;
+ 1f938-200d-2642-fe0f: man_cartwheeling;
+ 1f938-1f3fb-200d-2642-fe0f: man_cartwheeling_tone1;
+ 1f938-1f3fc-200d-2642-fe0f: man_cartwheeling_tone2;
+ 1f938-1f3fd-200d-2642-fe0f: man_cartwheeling_tone3;
+ 1f938-1f3fe-200d-2642-fe0f: man_cartwheeling_tone4;
+ 1f938-1f3ff-200d-2642-fe0f: man_cartwheeling_tone5;
+ 26f9: person_bouncing_ball;
+ 26f9-1f3fb: person_bouncing_ball_tone1;
+ 26f9-1f3fc: person_bouncing_ball_tone2;
+ 26f9-1f3fd: person_bouncing_ball_tone3;
+ 26f9-1f3fe: person_bouncing_ball_tone4;
+ 26f9-1f3ff: person_bouncing_ball_tone5;
+ 26f9-fe0f-200d-2640-fe0f: woman_bouncing_ball;
+ 26f9-1f3fb-200d-2640-fe0f: woman_bouncing_ball_tone1;
+ 26f9-1f3fc-200d-2640-fe0f: woman_bouncing_ball_tone2;
+ 26f9-1f3fd-200d-2640-fe0f: woman_bouncing_ball_tone3;
+ 26f9-1f3fe-200d-2640-fe0f: woman_bouncing_ball_tone4;
+ 26f9-1f3ff-200d-2640-fe0f: woman_bouncing_ball_tone5;
+ 26f9-fe0f-200d-2642-fe0f: man_bouncing_ball;
+ 26f9-1f3fb-200d-2642-fe0f: man_bouncing_ball_tone1;
+ 26f9-1f3fc-200d-2642-fe0f: man_bouncing_ball_tone2;
+ 26f9-1f3fd-200d-2642-fe0f: man_bouncing_ball_tone3;
+ 26f9-1f3fe-200d-2642-fe0f: man_bouncing_ball_tone4;
+ 26f9-1f3ff-200d-2642-fe0f: man_bouncing_ball_tone5;
+ 1f93a: person_fencing;
+ 1f93e: person_playing_handball;
+ 1f93e-1f3fb: person_playing_handball_tone1;
+ 1f93e-1f3fc: person_playing_handball_tone2;
+ 1f93e-1f3fd: person_playing_handball_tone3;
+ 1f93e-1f3fe: person_playing_handball_tone4;
+ 1f93e-1f3ff: person_playing_handball_tone5;
+ 1f93e-200d-2640-fe0f: woman_playing_handball;
+ 1f93e-1f3fb-200d-2640-fe0f: woman_playing_handball_tone1;
+ 1f93e-1f3fc-200d-2640-fe0f: woman_playing_handball_tone2;
+ 1f93e-1f3fd-200d-2640-fe0f: woman_playing_handball_tone3;
+ 1f93e-1f3fe-200d-2640-fe0f: woman_playing_handball_tone4;
+ 1f93e-1f3ff-200d-2640-fe0f: woman_playing_handball_tone5;
+ 1f93e-200d-2642-fe0f: man_playing_handball;
+ 1f93e-1f3fb-200d-2642-fe0f: man_playing_handball_tone1;
+ 1f93e-1f3fc-200d-2642-fe0f: man_playing_handball_tone2;
+ 1f93e-1f3fd-200d-2642-fe0f: man_playing_handball_tone3;
+ 1f93e-1f3fe-200d-2642-fe0f: man_playing_handball_tone4;
+ 1f93e-1f3ff-200d-2642-fe0f: man_playing_handball_tone5;
+ 1f3cc: person_golfing;
+ 1f3cc-1f3fb: person_golfing_tone1;
+ 1f3cc-1f3fc: person_golfing_tone2;
+ 1f3cc-1f3fd: person_golfing_tone3;
+ 1f3cc-1f3fe: person_golfing_tone4;
+ 1f3cc-1f3ff: person_golfing_tone5;
+ 1f3cc-fe0f-200d-2640-fe0f: woman_golfing;
+ 1f3cc-1f3fb-200d-2640-fe0f: woman_golfing_tone1;
+ 1f3cc-1f3fc-200d-2640-fe0f: woman_golfing_tone2;
+ 1f3cc-1f3fd-200d-2640-fe0f: woman_golfing_tone3;
+ 1f3cc-1f3fe-200d-2640-fe0f: woman_golfing_tone4;
+ 1f3cc-1f3ff-200d-2640-fe0f: woman_golfing_tone5;
+ 1f3cc-fe0f-200d-2642-fe0f: man_golfing;
+ 1f3cc-1f3fb-200d-2642-fe0f: man_golfing_tone1;
+ 1f3cc-1f3fc-200d-2642-fe0f: man_golfing_tone2;
+ 1f3cc-1f3fd-200d-2642-fe0f: man_golfing_tone3;
+ 1f3cc-1f3fe-200d-2642-fe0f: man_golfing_tone4;
+ 1f3cc-1f3ff-200d-2642-fe0f: man_golfing_tone5;
+ 1f3c7: horse_racing;
+ 1f3c7-1f3fb: horse_racing_tone1;
+ 1f3c7-1f3fc: horse_racing_tone2;
+ 1f3c7-1f3fd: horse_racing_tone3;
+ 1f3c7-1f3fe: horse_racing_tone4;
+ 1f3c7-1f3ff: horse_racing_tone5;
+ 1f9d8: person_in_lotus_position;
+ 1f9d8-1f3fb: person_in_lotus_position_tone1;
+ 1f9d8-1f3fc: person_in_lotus_position_tone2;
+ 1f9d8-1f3fd: person_in_lotus_position_tone3;
+ 1f9d8-1f3fe: person_in_lotus_position_tone4;
+ 1f9d8-1f3ff: person_in_lotus_position_tone5;
+ 1f9d8-200d-2640-fe0f: woman_in_lotus_position;
+ 1f9d8-1f3fb-200d-2640-fe0f: woman_in_lotus_position_tone1;
+ 1f9d8-1f3fc-200d-2640-fe0f: woman_in_lotus_position_tone2;
+ 1f9d8-1f3fd-200d-2640-fe0f: woman_in_lotus_position_tone3;
+ 1f9d8-1f3fe-200d-2640-fe0f: woman_in_lotus_position_tone4;
+ 1f9d8-1f3ff-200d-2640-fe0f: woman_in_lotus_position_tone5;
+ 1f9d8-200d-2642-fe0f: man_in_lotus_position;
+ 1f9d8-1f3fb-200d-2642-fe0f: man_in_lotus_position_tone1;
+ 1f9d8-1f3fc-200d-2642-fe0f: man_in_lotus_position_tone2;
+ 1f9d8-1f3fd-200d-2642-fe0f: man_in_lotus_position_tone3;
+ 1f9d8-1f3fe-200d-2642-fe0f: man_in_lotus_position_tone4;
+ 1f9d8-1f3ff-200d-2642-fe0f: man_in_lotus_position_tone5;
+ 1f3c4: person_surfing;
+ 1f3c4-1f3fb: person_surfing_tone1;
+ 1f3c4-1f3fc: person_surfing_tone2;
+ 1f3c4-1f3fd: person_surfing_tone3;
+ 1f3c4-1f3fe: person_surfing_tone4;
+ 1f3c4-1f3ff: person_surfing_tone5;
+ 1f3c4-200d-2640-fe0f: woman_surfing;
+ 1f3c4-1f3fb-200d-2640-fe0f: woman_surfing_tone1;
+ 1f3c4-1f3fc-200d-2640-fe0f: woman_surfing_tone2;
+ 1f3c4-1f3fd-200d-2640-fe0f: woman_surfing_tone3;
+ 1f3c4-1f3fe-200d-2640-fe0f: woman_surfing_tone4;
+ 1f3c4-1f3ff-200d-2640-fe0f: woman_surfing_tone5;
+ 1f3c4-200d-2642-fe0f: man_surfing;
+ 1f3c4-1f3fb-200d-2642-fe0f: man_surfing_tone1;
+ 1f3c4-1f3fc-200d-2642-fe0f: man_surfing_tone2;
+ 1f3c4-1f3fd-200d-2642-fe0f: man_surfing_tone3;
+ 1f3c4-1f3fe-200d-2642-fe0f: man_surfing_tone4;
+ 1f3c4-1f3ff-200d-2642-fe0f: man_surfing_tone5;
+ 1f3ca: person_swimming;
+ 1f3ca-1f3fb: person_swimming_tone1;
+ 1f3ca-1f3fc: person_swimming_tone2;
+ 1f3ca-1f3fd: person_swimming_tone3;
+ 1f3ca-1f3fe: person_swimming_tone4;
+ 1f3ca-1f3ff: person_swimming_tone5;
+ 1f3ca-200d-2640-fe0f: woman_swimming;
+ 1f3ca-1f3fb-200d-2640-fe0f: woman_swimming_tone1;
+ 1f3ca-1f3fc-200d-2640-fe0f: woman_swimming_tone2;
+ 1f3ca-1f3fd-200d-2640-fe0f: woman_swimming_tone3;
+ 1f3ca-1f3fe-200d-2640-fe0f: woman_swimming_tone4;
+ 1f3ca-1f3ff-200d-2640-fe0f: woman_swimming_tone5;
+ 1f3ca-200d-2642-fe0f: man_swimming;
+ 1f3ca-1f3fb-200d-2642-fe0f: man_swimming_tone1;
+ 1f3ca-1f3fc-200d-2642-fe0f: man_swimming_tone2;
+ 1f3ca-1f3fd-200d-2642-fe0f: man_swimming_tone3;
+ 1f3ca-1f3fe-200d-2642-fe0f: man_swimming_tone4;
+ 1f3ca-1f3ff-200d-2642-fe0f: man_swimming_tone5;
+ 1f93d: person_playing_water_polo;
+ 1f93d-1f3fb: person_playing_water_polo_tone1;
+ 1f93d-1f3fc: person_playing_water_polo_tone2;
+ 1f93d-1f3fd: person_playing_water_polo_tone3;
+ 1f93d-1f3fe: person_playing_water_polo_tone4;
+ 1f93d-1f3ff: person_playing_water_polo_tone5;
+ 1f93d-200d-2640-fe0f: woman_playing_water_polo;
+ 1f93d-1f3fb-200d-2640-fe0f: woman_playing_water_polo_tone1;
+ 1f93d-1f3fc-200d-2640-fe0f: woman_playing_water_polo_tone2;
+ 1f93d-1f3fd-200d-2640-fe0f: woman_playing_water_polo_tone3;
+ 1f93d-1f3fe-200d-2640-fe0f: woman_playing_water_polo_tone4;
+ 1f93d-1f3ff-200d-2640-fe0f: woman_playing_water_polo_tone5;
+ 1f93d-200d-2642-fe0f: man_playing_water_polo;
+ 1f93d-1f3fb-200d-2642-fe0f: man_playing_water_polo_tone1;
+ 1f93d-1f3fc-200d-2642-fe0f: man_playing_water_polo_tone2;
+ 1f93d-1f3fd-200d-2642-fe0f: man_playing_water_polo_tone3;
+ 1f93d-1f3fe-200d-2642-fe0f: man_playing_water_polo_tone4;
+ 1f93d-1f3ff-200d-2642-fe0f: man_playing_water_polo_tone5;
+ 1f6a3: person_rowing_boat;
+ 1f6a3-1f3fb: person_rowing_boat_tone1;
+ 1f6a3-1f3fc: person_rowing_boat_tone2;
+ 1f6a3-1f3fd: person_rowing_boat_tone3;
+ 1f6a3-1f3fe: person_rowing_boat_tone4;
+ 1f6a3-1f3ff: person_rowing_boat_tone5;
+ 1f6a3-200d-2640-fe0f: woman_rowing_boat;
+ 1f6a3-1f3fb-200d-2640-fe0f: woman_rowing_boat_tone1;
+ 1f6a3-1f3fc-200d-2640-fe0f: woman_rowing_boat_tone2;
+ 1f6a3-1f3fd-200d-2640-fe0f: woman_rowing_boat_tone3;
+ 1f6a3-1f3fe-200d-2640-fe0f: woman_rowing_boat_tone4;
+ 1f6a3-1f3ff-200d-2640-fe0f: woman_rowing_boat_tone5;
+ 1f6a3-200d-2642-fe0f: man_rowing_boat;
+ 1f6a3-1f3fb-200d-2642-fe0f: man_rowing_boat_tone1;
+ 1f6a3-1f3fc-200d-2642-fe0f: man_rowing_boat_tone2;
+ 1f6a3-1f3fd-200d-2642-fe0f: man_rowing_boat_tone3;
+ 1f6a3-1f3fe-200d-2642-fe0f: man_rowing_boat_tone4;
+ 1f6a3-1f3ff-200d-2642-fe0f: man_rowing_boat_tone5;
+ 1f9d7: person_climbing;
+ 1f9d7-1f3fb: person_climbing_tone1;
+ 1f9d7-1f3fc: person_climbing_tone2;
+ 1f9d7-1f3fd: person_climbing_tone3;
+ 1f9d7-1f3fe: person_climbing_tone4;
+ 1f9d7-1f3ff: person_climbing_tone5;
+ 1f9d7-200d-2640-fe0f: woman_climbing;
+ 1f9d7-1f3fb-200d-2640-fe0f: woman_climbing_tone1;
+ 1f9d7-1f3fc-200d-2640-fe0f: woman_climbing_tone2;
+ 1f9d7-1f3fd-200d-2640-fe0f: woman_climbing_tone3;
+ 1f9d7-1f3fe-200d-2640-fe0f: woman_climbing_tone4;
+ 1f9d7-1f3ff-200d-2640-fe0f: woman_climbing_tone5;
+ 1f9d7-200d-2642-fe0f: man_climbing;
+ 1f9d7-1f3fb-200d-2642-fe0f: man_climbing_tone1;
+ 1f9d7-1f3fc-200d-2642-fe0f: man_climbing_tone2;
+ 1f9d7-1f3fd-200d-2642-fe0f: man_climbing_tone3;
+ 1f9d7-1f3fe-200d-2642-fe0f: man_climbing_tone4;
+ 1f9d7-1f3ff-200d-2642-fe0f: man_climbing_tone5;
+ 1f6b5: person_mountain_biking;
+ 1f6b5-1f3fb: person_mountain_biking_tone1;
+ 1f6b5-1f3fc: person_mountain_biking_tone2;
+ 1f6b5-1f3fd: person_mountain_biking_tone3;
+ 1f6b5-1f3fe: person_mountain_biking_tone4;
+ 1f6b5-1f3ff: person_mountain_biking_tone5;
+ 1f6b5-200d-2640-fe0f: woman_mountain_biking;
+ 1f6b5-1f3fb-200d-2640-fe0f: woman_mountain_biking_tone1;
+ 1f6b5-1f3fc-200d-2640-fe0f: woman_mountain_biking_tone2;
+ 1f6b5-1f3fd-200d-2640-fe0f: woman_mountain_biking_tone3;
+ 1f6b5-1f3fe-200d-2640-fe0f: woman_mountain_biking_tone4;
+ 1f6b5-1f3ff-200d-2640-fe0f: woman_mountain_biking_tone5;
+ 1f6b5-200d-2642-fe0f: man_mountain_biking;
+ 1f6b5-1f3fb-200d-2642-fe0f: man_mountain_biking_tone1;
+ 1f6b5-1f3fc-200d-2642-fe0f: man_mountain_biking_tone2;
+ 1f6b5-1f3fd-200d-2642-fe0f: man_mountain_biking_tone3;
+ 1f6b5-1f3fe-200d-2642-fe0f: man_mountain_biking_tone4;
+ 1f6b5-1f3ff-200d-2642-fe0f: man_mountain_biking_tone5;
+ 1f6b4: person_biking;
+ 1f6b4-1f3fb: person_biking_tone1;
+ 1f6b4-1f3fc: person_biking_tone2;
+ 1f6b4-1f3fd: person_biking_tone3;
+ 1f6b4-1f3fe: person_biking_tone4;
+ 1f6b4-1f3ff: person_biking_tone5;
+ 1f6b4-200d-2640-fe0f: woman_biking;
+ 1f6b4-1f3fb-200d-2640-fe0f: woman_biking_tone1;
+ 1f6b4-1f3fc-200d-2640-fe0f: woman_biking_tone2;
+ 1f6b4-1f3fd-200d-2640-fe0f: woman_biking_tone3;
+ 1f6b4-1f3fe-200d-2640-fe0f: woman_biking_tone4;
+ 1f6b4-1f3ff-200d-2640-fe0f: woman_biking_tone5;
+ 1f6b4-200d-2642-fe0f: man_biking;
+ 1f6b4-1f3fb-200d-2642-fe0f: man_biking_tone1;
+ 1f6b4-1f3fc-200d-2642-fe0f: man_biking_tone2;
+ 1f6b4-1f3fd-200d-2642-fe0f: man_biking_tone3;
+ 1f6b4-1f3fe-200d-2642-fe0f: man_biking_tone4;
+ 1f6b4-1f3ff-200d-2642-fe0f: man_biking_tone5;
+ 1f3c6: trophy;
+ 1f947: first_place;
+ 1f948: second_place;
+ 1f949: third_place;
+ 1f3c5: medal;
+ 1f396: military_medal;
+ 1f3f5: rosette;
+ 1f397: reminder_ribbon;
+ 1f3ab: ticket;
+ 1f39f: tickets;
+ 1f3aa: circus_tent;
+ 1f939: person_juggling;
+ 1f939-1f3fb: person_juggling_tone1;
+ 1f939-1f3fc: person_juggling_tone2;
+ 1f939-1f3fd: person_juggling_tone3;
+ 1f939-1f3fe: person_juggling_tone4;
+ 1f939-1f3ff: person_juggling_tone5;
+ 1f939-200d-2640-fe0f: woman_juggling;
+ 1f939-1f3fb-200d-2640-fe0f: woman_juggling_tone1;
+ 1f939-1f3fc-200d-2640-fe0f: woman_juggling_tone2;
+ 1f939-1f3fd-200d-2640-fe0f: woman_juggling_tone3;
+ 1f939-1f3fe-200d-2640-fe0f: woman_juggling_tone4;
+ 1f939-1f3ff-200d-2640-fe0f: woman_juggling_tone5;
+ 1f939-200d-2642-fe0f: man_juggling;
+ 1f939-1f3fb-200d-2642-fe0f: man_juggling_tone1;
+ 1f939-1f3fc-200d-2642-fe0f: man_juggling_tone2;
+ 1f939-1f3fd-200d-2642-fe0f: man_juggling_tone3;
+ 1f939-1f3fe-200d-2642-fe0f: man_juggling_tone4;
+ 1f939-1f3ff-200d-2642-fe0f: man_juggling_tone5;
+ 1f3ad: performing_arts;
+ 1f3a8: art;
+ 1f3ac: clapper;
+ 1f3a4: microphone;
+ 1f3a7: headphones;
+ 1f3bc: musical_score;
+ 1f3b9: musical_keyboard;
+ 1f941: drum;
+ 1f3b7: saxophone;
+ 1f3ba: trumpet;
+ 1fa95: banjo;
+ 1f3b8: guitar;
+ 1f3bb: violin;
+ 1f3b2: game_die;
+ 265f: chess_pawn;
+ 1f3af: dart;
+ 1fa81: kite;
+ 1fa80: yo_yo;
+ 1f3b3: bowling;
+ 1f3ae: video_game;
+ 1f3b0: slot_machine;
+ 1f9e9: jigsaw;
+ 231a: watch;
+ 1f4f1: iphone;
+ 1f4f2: calling;
+ 1f4bb: computer;
+ 1f5a5: desktop;
+ 1f5a8: printer;
+ 1f5b1: mouse_three_button;
+ 1f5b2: trackball;
+ 1f579: joystick;
+ 1f5dc: compression;
+ 1f4bd: minidisc;
+ 1f4be: floppy_disk;
+ 1f4bf: cd;
+ 1f4c0: dvd;
+ 1f4fc: vhs;
+ 1f4f7: camera;
+ 1f4f8: camera_with_flash;
+ 1f4f9: video_camera;
+ 1f3a5: movie_camera;
+ 1f4fd: projector;
+ 1f39e: film_frames;
+ 1f4de: telephone_receiver;
+ 260e: telephone;
+ 1f4df: pager;
+ 1f4e0: fax;
+ 1f4fa: tv;
+ 1f4fb: radio;
+ 1f399: microphone2;
+ 1f39a: level_slider;
+ 1f39b: control_knobs;
+ 1f9ed: compass;
+ 23f1: stopwatch;
+ 23f2: timer;
+ 23f0: alarm_clock;
+ 1f570: clock;
+ 231b: hourglass;
+ 23f3: hourglass_flowing_sand;
+ 1f4e1: satellite;
+ 1f50b: battery;
+ 1f50c: electric_plug;
+ 1f4a1: bulb;
+ 1f526: flashlight;
+ 1f56f: candle;
+ 1f9ef: fire_extinguisher;
+ 1f6e2: oil;
+ 1f4b8: money_with_wings;
+ 1f4b5: dollar;
+ 1f4b4: yen;
+ 1f4b6: euro;
+ 1f4b7: pound;
+ 1f4b0: moneybag;
+ 1f4b3: credit_card;
+ 1f48e: gem;
+ 1f9f0: toolbox;
+ 1f527: wrench;
+ 1f528: hammer;
+ 1f6e0: tools;
+ 26cf: pick;
+ 1f529: nut_and_bolt;
+ 1f9f1: bricks;
+ 26d3: chains;
+ 1f9f2: magnet;
+ 1f52b: gun;
+ 1f4a3: bomb;
+ 1f9e8: firecracker;
+ 1fa93: axe;
+ 1fa92: razor;
+ 1f52a: knife;
+ 1f5e1: dagger;
+ 1f6e1: shield;
+ 1f6ac: smoking;
+ 26b0: coffin;
+ 26b1: urn;
+ 1f3fa: amphora;
+ 1fa94: diya_lamp;
+ 1f52e: crystal_ball;
+ 1f4ff: prayer_beads;
+ 1f9ff: nazar_amulet;
+ 1f488: barber;
+ 1f52d: telescope;
+ 1f52c: microscope;
+ 1f573: hole;
+ 1f9af: probing_cane;
+ 1fa7a: stethoscope;
+ 1fa79: adhesive_bandage;
+ 1f48a: pill;
+ 1f489: syringe;
+ 1fa78: drop_of_blood;
+ 1f9ec: dna;
+ 1f9a0: microbe;
+ 1f9eb: petri_dish;
+ 1f9ea: test_tube;
+ 1f321: thermometer;
+ 1fa91: chair;
+ 1f9f9: broom;
+ 1f9fa: basket;
+ 1f9fb: roll_of_paper;
+ 1f6bd: toilet;
+ 1f6b0: potable_water;
+ 1f6bf: shower;
+ 1f6c1: bathtub;
+ 1f6c0: bath;
+ 1f6c0-1f3fb: bath_tone1;
+ 1f6c0-1f3fc: bath_tone2;
+ 1f6c0-1f3fd: bath_tone3;
+ 1f6c0-1f3fe: bath_tone4;
+ 1f6c0-1f3ff: bath_tone5;
+ 1f9fc: soap;
+ 1f9fd: sponge;
+ 1f9f4: squeeze_bottle;
+ 1f6ce: bellhop;
+ 1f511: key;
+ 1f5dd: key2;
+ 1f6aa: door;
+ 1f6cb: couch;
+ 1f6cf: bed;
+ 1f6cc: sleeping_accommodation;
+ 1f6cc-1f3fb: person_in_bed_tone1;
+ 1f6cc-1f3fc: person_in_bed_tone2;
+ 1f6cc-1f3fd: person_in_bed_tone3;
+ 1f6cc-1f3fe: person_in_bed_tone4;
+ 1f6cc-1f3ff: person_in_bed_tone5;
+ 1f9f8: teddy_bear;
+ 1f5bc: frame_photo;
+ 1f6cd: shopping_bags;
+ 1f6d2: shopping_cart;
+ 1f381: gift;
+ 1f388: balloon;
+ 1f38f: flags;
+ 1f380: ribbon;
+ 1f38a: confetti_ball;
+ 1f389: tada;
+ 1f38e: dolls;
+ 1f3ee: izakaya_lantern;
+ 1f390: wind_chime;
+ 1f9e7: red_envelope;
+ 1f4e9: envelope_with_arrow;
+ 1f4e8: incoming_envelope;
+ 1f4e7: e-mail;
+ 1f48c: love_letter;
+ 1f4e5: inbox_tray;
+ 1f4e4: outbox_tray;
+ 1f4e6: package;
+ 1f3f7: label;
+ 1f4ea: mailbox_closed;
+ 1f4eb: mailbox;
+ 1f4ec: mailbox_with_mail;
+ 1f4ed: mailbox_with_no_mail;
+ 1f4ee: postbox;
+ 1f4ef: postal_horn;
+ 1f4dc: scroll;
+ 1f4c3: page_with_curl;
+ 1f4c4: page_facing_up;
+ 1f4d1: bookmark_tabs;
+ 1f9fe: receipt;
+ 1f4ca: bar_chart;
+ 1f4c8: chart_with_upwards_trend;
+ 1f4c9: chart_with_downwards_trend;
+ 1f5d2: notepad_spiral;
+ 1f5d3: calendar_spiral;
+ 1f4c6: calendar;
+ 1f4c5: date;
+ 1f5d1: wastebasket;
+ 1f4c7: card_index;
+ 1f5c3: card_box;
+ 1f5f3: ballot_box;
+ 1f5c4: file_cabinet;
+ 1f4cb: clipboard;
+ 1f4c1: file_folder;
+ 1f4c2: open_file_folder;
+ 1f5c2: dividers;
+ 1f5de: newspaper2;
+ 1f4f0: newspaper;
+ 1f4d3: notebook;
+ 1f4d4: notebook_with_decorative_cover;
+ 1f4d2: ledger;
+ 1f4d5: closed_book;
+ 1f4d7: green_book;
+ 1f4d8: blue_book;
+ 1f4d9: orange_book;
+ 1f4da: books;
+ 1f4d6: book;
+ 1f516: bookmark;
+ 1f9f7: safety_pin;
+ 1f517: link;
+ 1f4ce: paperclip;
+ 1f587: paperclips;
+ 1f4d0: triangular_ruler;
+ 1f4cf: straight_ruler;
+ 1f9ee: abacus;
+ 1f4cc: pushpin;
+ 1f4cd: round_pushpin;
+ 1f58a: pen_ballpoint;
+ 1f58b: pen_fountain;
+ 1f58c: paintbrush;
+ 1f58d: crayon;
+ 1f4dd: pencil;
+ 270f: pencil2;
+ 1f50d: mag;
+ 1f50e: mag_right;
+ 1f50f: lock_with_ink_pen;
+ 1f510: closed_lock_with_key;
+ 1f512: lock;
+ 1f513: unlock;
+ 1f436: dog;
+ 1f431: cat;
+ 1f42d: mouse;
+ 1f439: hamster;
+ 1f430: rabbit;
+ 1f98a: fox;
+ 1f43b: bear;
+ 1f43c: panda_face;
+ 1f428: koala;
+ 1f42f: tiger;
+ 1f981: lion_face;
+ 1f42e: cow;
+ 1f437: pig;
+ 1f43d: pig_nose;
+ 1f438: frog;
+ 1f435: monkey_face;
+ 1f648: see_no_evil;
+ 1f649: hear_no_evil;
+ 1f64a: speak_no_evil;
+ 1f412: monkey;
+ 1f414: chicken;
+ 1f427: penguin;
+ 1f426: bird;
+ 1f424: baby_chick;
+ 1f423: hatching_chick;
+ 1f425: hatched_chick;
+ 1f986: duck;
+ 1f985: eagle;
+ 1f989: owl;
+ 1f987: bat;
+ 1f43a: wolf;
+ 1f417: boar;
+ 1f434: horse;
+ 1f984: unicorn;
+ 1f41d: bee;
+ 1f41b: bug;
+ 1f98b: butterfly;
+ 1f40c: snail;
+ 1f41a: shell;
+ 1f41e: beetle;
+ 1f41c: ant;
+ 1f99f: mosquito;
+ 1f997: cricket;
+ 1f577: spider;
+ 1f578: spider_web;
+ 1f982: scorpion;
+ 1f422: turtle;
+ 1f40d: snake;
+ 1f98e: lizard;
+ 1f996: t_rex;
+ 1f995: sauropod;
+ 1f419: octopus;
+ 1f991: squid;
+ 1f990: shrimp;
+ 1f99e: lobster;
+ 1f9aa: oyster;
+ 1f980: crab;
+ 1f421: blowfish;
+ 1f420: tropical_fish;
+ 1f41f: fish;
+ 1f42c: dolphin;
+ 1f433: whale;
+ 1f40b: whale2;
+ 1f988: shark;
+ 1f40a: crocodile;
+ 1f405: tiger2;
+ 1f406: leopard;
+ 1f993: zebra;
+ 1f98d: gorilla;
+ 1f9a7: orangutan;
+ 1f418: elephant;
+ 1f99b: hippopotamus;
+ 1f98f: rhino;
+ 1f42a: dromedary_camel;
+ 1f42b: camel;
+ 1f992: giraffe;
+ 1f998: kangaroo;
+ 1f403: water_buffalo;
+ 1f402: ox;
+ 1f404: cow2;
+ 1f40e: racehorse;
+ 1f416: pig2;
+ 1f40f: ram;
+ 1f999: llama;
+ 1f411: sheep;
+ 1f410: goat;
+ 1f98c: deer;
+ 1f415: dog2;
+ 1f9ae: guide_dog;
+ 1f415-200d-1f9ba: service_dog;
+ 1f429: poodle;
+ 1f408: cat2;
+ 1f413: rooster;
+ 1f983: turkey;
+ 1f99a: peacock;
+ 1f99c: parrot;
+ 1f9a2: swan;
+ 1f9a9: flamingo;
+ 1f54a: dove;
+ 1f407: rabbit2;
+ 1f9a5: sloth;
+ 1f9a6: otter;
+ 1f9a8: skunk;
+ 1f99d: raccoon;
+ 1f9a1: badger;
+ 1f401: mouse2;
+ 1f400: rat;
+ 1f43f: chipmunk;
+ 1f994: hedgehog;
+ 1f43e: feet;
+ 1f409: dragon;
+ 1f432: dragon_face;
+ 1f335: cactus;
+ 1f384: christmas_tree;
+ 1f332: evergreen_tree;
+ 1f333: deciduous_tree;
+ 1f334: palm_tree;
+ 1f331: seedling;
+ 1f33f: herb;
+ 1f340: four_leaf_clover;
+ 1f38d: bamboo;
+ 1f38b: tanabata_tree;
+ 1f343: leaves;
+ 1f342: fallen_leaf;
+ 1f341: maple_leaf;
+ 1f344: mushroom;
+ 1f33e: ear_of_rice;
+ 1f490: bouquet;
+ 1f337: tulip;
+ 1f339: rose;
+ 1f940: wilted_rose;
+ 1f33a: hibiscus;
+ 1f338: cherry_blossom;
+ 1f33c: blossom;
+ 1f33b: sunflower;
+ 1f31e: sun_with_face;
+ 1f31d: full_moon_with_face;
+ 1f31b: first_quarter_moon_with_face;
+ 1f31c: last_quarter_moon_with_face;
+ 1f31a: new_moon_with_face;
+ 1f315: full_moon;
+ 1f316: waning_gibbous_moon;
+ 1f317: last_quarter_moon;
+ 1f318: waning_crescent_moon;
+ 1f311: new_moon;
+ 1f312: waxing_crescent_moon;
+ 1f313: first_quarter_moon;
+ 1f314: waxing_gibbous_moon;
+ 1f319: crescent_moon;
+ 1f30e: earth_americas;
+ 1f30d: earth_africa;
+ 1f30f: earth_asia;
+ 1fa90: ringed_planet;
+ 1f4ab: dizzy;
+ 2b50: star;
+ 1f31f: star2;
+ 26a1: zap;
+ 1f4a5: boom;
+ 1f525: fire;
+ 1f32a: cloud_tornado;
+ 1f308: rainbow;
+ 1f324: white_sun_small_cloud;
+ 26c5: partly_sunny;
+ 1f325: white_sun_cloud;
+ 1f326: white_sun_rain_cloud;
+ 1f327: cloud_rain;
+ 26c8: thunder_cloud_rain;
+ 1f329: cloud_lightning;
+ 1f328: cloud_snow;
+ 26c4: snowman;
+ 1f32c: wind_blowing_face;
+ 1f4a8: dash;
+ 1f4a7: droplet;
+ 1f4a6: sweat_drops;
+ 1f30a: ocean;
+ 1f32b: fog;
+ 1f34f: green_apple;
+ 1f34e: apple;
+ 1f350: pear;
+ 1f34a: tangerine;
+ 1f34b: lemon;
+ 1f34c: banana;
+ 1f349: watermelon;
+ 1f347: grapes;
+ 1f353: strawberry;
+ 1f348: melon;
+ 1f352: cherries;
+ 1f351: peach;
+ 1f96d: mango;
+ 1f34d: pineapple;
+ 1f965: coconut;
+ 1f95d: kiwi;
+ 1f345: tomato;
+ 1f346: eggplant;
+ 1f951: avocado;
+ 1f966: broccoli;
+ 1f96c: leafy_green;
+ 1f952: cucumber;
+ 1f336: hot_pepper;
+ 1f33d: corn;
+ 1f955: carrot;
+ 1f9c5: onion;
+ 1f9c4: garlic;
+ 1f954: potato;
+ 1f360: sweet_potato;
+ 1f950: croissant;
+ 1f96f: bagel;
+ 1f35e: bread;
+ 1f956: french_bread;
+ 1f968: pretzel;
+ 1f9c0: cheese;
+ 1f95a: egg;
+ 1f373: cooking;
+ 1f95e: pancakes;
+ 1f9c7: waffle;
+ 1f953: bacon;
+ 1f969: cut_of_meat;
+ 1f357: poultry_leg;
+ 1f356: meat_on_bone;
+ 1f32d: hotdog;
+ 1f354: hamburger;
+ 1f35f: fries;
+ 1f355: pizza;
+ 1f96a: sandwich;
+ 1f9c6: falafel;
+ 1f959: stuffed_flatbread;
+ 1f32e: taco;
+ 1f32f: burrito;
+ 1f957: salad;
+ 1f958: shallow_pan_of_food;
+ 1f96b: canned_food;
+ 1f35d: spaghetti;
+ 1f35c: ramen;
+ 1f372: stew;
+ 1f35b: curry;
+ 1f363: sushi;
+ 1f371: bento;
+ 1f95f: dumpling;
+ 1f364: fried_shrimp;
+ 1f359: rice_ball;
+ 1f35a: rice;
+ 1f358: rice_cracker;
+ 1f365: fish_cake;
+ 1f960: fortune_cookie;
+ 1f96e: moon_cake;
+ 1f362: oden;
+ 1f361: dango;
+ 1f367: shaved_ice;
+ 1f368: ice_cream;
+ 1f366: icecream;
+ 1f967: pie;
+ 1f9c1: cupcake;
+ 1f370: cake;
+ 1f382: birthday;
+ 1f36e: custard;
+ 1f36d: lollipop;
+ 1f36c: candy;
+ 1f36b: chocolate_bar;
+ 1f37f: popcorn;
+ 1f369: doughnut;
+ 1f36a: cookie;
+ 1f330: chestnut;
+ 1f95c: peanuts;
+ 1f36f: honey_pot;
+ 1f9c8: butter;
+ 1f95b: milk;
+ 1f37c: baby_bottle;
+ 1f375: tea;
+ 1f9c9: mate;
+ 1f964: cup_with_straw;
+ 1f9c3: beverage_box;
+ 1f9ca: ice_cube;
+ 1f376: sake;
+ 1f37a: beer;
+ 1f37b: beers;
+ 1f942: champagne_glass;
+ 1f377: wine_glass;
+ 1f943: tumbler_glass;
+ 1f378: cocktail;
+ 1f379: tropical_drink;
+ 1f37e: champagne;
+ 1f944: spoon;
+ 1f374: fork_and_knife;
+ 1f37d: fork_knife_plate;
+ 1f963: bowl_with_spoon;
+ 1f961: takeout_box;
+ 1f962: chopsticks;
+ 1f9c2: salt;
+ 1f60a: blush;
+ 1f607: innocent;
+ 1f642: slight_smile;
+ 1f643: upside_down;
+ 1f609: wink;
+ 1f600: grinning;
+ 1f603: smiley;
+ 1f604: smile;
+ 1f601: grin;
+ 1f606: laughing;
+ 1f605: sweat_smile;
+ 1f602: joy;
+ 1f923: rofl;
+ 263a: relaxed;
+ 1f60c: relieved;
+ 1f60d: heart_eyes;
+ 1f970: smiling_face_with_3_hearts;
+ 1f618: kissing_heart;
+ 1f617: kissing;
+ 1f619: kissing_smiling_eyes;
+ 1f61a: kissing_closed_eyes;
+ 1f60b: yum;
+ 1f61b: stuck_out_tongue;
+ 1f61d: stuck_out_tongue_closed_eyes;
+ 1f61c: stuck_out_tongue_winking_eye;
+ 1f92a: zany_face;
+ 1f928: face_with_raised_eyebrow;
+ 1f9d0: face_with_monocle;
+ 1f913: nerd;
+ 1f60e: sunglasses;
+ 1f929: star_struck;
+ 1f973: partying_face;
+ 1f60f: smirk;
+ 1f612: unamused;
+ 1f61e: disappointed;
+ 1f614: pensive;
+ 1f61f: worried;
+ 1f615: confused;
+ 1f641: slight_frown;
+ 1f623: persevere;
+ 1f616: confounded;
+ 1f62b: tired_face;
+ 1f629: weary;
+ 1f971: yawning_face;
+ 1f97a: pleading_face;
+ 1f622: cry;
+ 1f62d: sob;
+ 1f624: triumph;
+ 1f620: angry;
+ 1f621: rage;
+ 1f92c: face_with_symbols_over_mouth;
+ 1f92f: exploding_head;
+ 1f633: flushed;
+ 1f975: hot_face;
+ 1f976: cold_face;
+ 1f631: scream;
+ 1f628: fearful;
+ 1f630: cold_sweat;
+ 1f625: disappointed_relieved;
+ 1f613: sweat;
+ 1f917: hugging;
+ 1f914: thinking;
+ 1f92d: face_with_hand_over_mouth;
+ 1f92b: shushing_face;
+ 1f925: lying_face;
+ 1f636: no_mouth;
+ 1f610: neutral_face;
+ 1f611: expressionless;
+ 1f62c: grimacing;
+ 1f644: rolling_eyes;
+ 1f62f: hushed;
+ 1f626: frowning;
+ 1f627: anguished;
+ 1f62e: open_mouth;
+ 1f632: astonished;
+ 1f634: sleeping;
+ 1f924: drooling_face;
+ 1f62a: sleepy;
+ 1f635: dizzy_face;
+ 1f910: zipper_mouth;
+ 1f974: woozy_face;
+ 1f922: nauseated_face;
+ 1f92e: face_vomiting;
+ 1f927: sneezing_face;
+ 1f637: mask;
+ 1f912: thermometer_face;
+ 1f915: head_bandage;
+ 1f911: money_mouth;
+ 1f920: cowboy;
+ 1f608: smiling_imp;
+ 1f47f: imp;
+ 1f479: japanese_ogre;
+ 1f47a: japanese_goblin;
+ 1f921: clown;
+ 1f4a9: poop;
+ 1f47b: ghost;
+ 1f480: skull;
+ 1f47d: alien;
+ 1f47e: space_invader;
+ 1f916: robot;
+ 1f383: jack_o_lantern;
+ 1f63a: smiley_cat;
+ 1f638: smile_cat;
+ 1f639: joy_cat;
+ 1f63b: heart_eyes_cat;
+ 1f63c: smirk_cat;
+ 1f63d: kissing_cat;
+ 1f640: scream_cat;
+ 1f63f: crying_cat_face;
+ 1f63e: pouting_cat;
+ 1f91d: handshake;
+ 1f932: palms_up_together;
+ 1f932-1f3fb: palms_up_together_tone1;
+ 1f932-1f3fc: palms_up_together_tone2;
+ 1f932-1f3fd: palms_up_together_tone3;
+ 1f932-1f3fe: palms_up_together_tone4;
+ 1f932-1f3ff: palms_up_together_tone5;
+ 1f450: open_hands;
+ 1f450-1f3fb: open_hands_tone1;
+ 1f450-1f3fc: open_hands_tone2;
+ 1f450-1f3fd: open_hands_tone3;
+ 1f450-1f3fe: open_hands_tone4;
+ 1f450-1f3ff: open_hands_tone5;
+ 1f64c: raised_hands;
+ 1f64c-1f3fb: raised_hands_tone1;
+ 1f64c-1f3fc: raised_hands_tone2;
+ 1f64c-1f3fd: raised_hands_tone3;
+ 1f64c-1f3fe: raised_hands_tone4;
+ 1f64c-1f3ff: raised_hands_tone5;
+ 1f44f: clap;
+ 1f44f-1f3fb: clap_tone1;
+ 1f44f-1f3fc: clap_tone2;
+ 1f44f-1f3fd: clap_tone3;
+ 1f44f-1f3fe: clap_tone4;
+ 1f44f-1f3ff: clap_tone5;
+ 1f44d: thumbsup;
+ 1f44d-1f3fb: thumbsup_tone1;
+ 1f44d-1f3fc: thumbsup_tone2;
+ 1f44d-1f3fd: thumbsup_tone3;
+ 1f44d-1f3fe: thumbsup_tone4;
+ 1f44d-1f3ff: thumbsup_tone5;
+ 1f44e: thumbsdown;
+ 1f44e-1f3fb: thumbsdown_tone1;
+ 1f44e-1f3fc: thumbsdown_tone2;
+ 1f44e-1f3fd: thumbsdown_tone3;
+ 1f44e-1f3fe: thumbsdown_tone4;
+ 1f44e-1f3ff: thumbsdown_tone5;
+ 1f44a: punch;
+ 1f44a-1f3fb: punch_tone1;
+ 1f44a-1f3fc: punch_tone2;
+ 1f44a-1f3fd: punch_tone3;
+ 1f44a-1f3fe: punch_tone4;
+ 1f44a-1f3ff: punch_tone5;
+ 270a: fist;
+ 270a-1f3fb: fist_tone1;
+ 270a-1f3fc: fist_tone2;
+ 270a-1f3fd: fist_tone3;
+ 270a-1f3fe: fist_tone4;
+ 270a-1f3ff: fist_tone5;
+ 1f91b: left_facing_fist;
+ 1f91b-1f3fb: left_facing_fist_tone1;
+ 1f91b-1f3fc: left_facing_fist_tone2;
+ 1f91b-1f3fd: left_facing_fist_tone3;
+ 1f91b-1f3fe: left_facing_fist_tone4;
+ 1f91b-1f3ff: left_facing_fist_tone5;
+ 1f91c: right_facing_fist;
+ 1f91c-1f3fb: right_facing_fist_tone1;
+ 1f91c-1f3fc: right_facing_fist_tone2;
+ 1f91c-1f3fd: right_facing_fist_tone3;
+ 1f91c-1f3fe: right_facing_fist_tone4;
+ 1f91c-1f3ff: right_facing_fist_tone5;
+ 1f91e: fingers_crossed;
+ 1f91e-1f3fb: fingers_crossed_tone1;
+ 1f91e-1f3fc: fingers_crossed_tone2;
+ 1f91e-1f3fd: fingers_crossed_tone3;
+ 1f91e-1f3fe: fingers_crossed_tone4;
+ 1f91e-1f3ff: fingers_crossed_tone5;
+ 270c: v;
+ 270c-1f3fb: v_tone1;
+ 270c-1f3fc: v_tone2;
+ 270c-1f3fd: v_tone3;
+ 270c-1f3fe: v_tone4;
+ 270c-1f3ff: v_tone5;
+ 1f91f: love_you_gesture;
+ 1f91f-1f3fb: love_you_gesture_tone1;
+ 1f91f-1f3fc: love_you_gesture_tone2;
+ 1f91f-1f3fd: love_you_gesture_tone3;
+ 1f91f-1f3fe: love_you_gesture_tone4;
+ 1f91f-1f3ff: love_you_gesture_tone5;
+ 1f918: metal;
+ 1f918-1f3fb: metal_tone1;
+ 1f918-1f3fc: metal_tone2;
+ 1f918-1f3fd: metal_tone3;
+ 1f918-1f3fe: metal_tone4;
+ 1f918-1f3ff: metal_tone5;
+ 1f44c: ok_hand;
+ 1f44c-1f3fb: ok_hand_tone1;
+ 1f44c-1f3fc: ok_hand_tone2;
+ 1f44c-1f3fd: ok_hand_tone3;
+ 1f44c-1f3fe: ok_hand_tone4;
+ 1f44c-1f3ff: ok_hand_tone5;
+ 1f90f: pinching_hand;
+ 1f90f-1f3fb: pinching_hand_tone1;
+ 1f90f-1f3fc: pinching_hand_tone2;
+ 1f90f-1f3fd: pinching_hand_tone3;
+ 1f90f-1f3fe: pinching_hand_tone4;
+ 1f90f-1f3ff: pinching_hand_tone5;
+ 1f448: point_left;
+ 1f448-1f3fb: point_left_tone1;
+ 1f448-1f3fc: point_left_tone2;
+ 1f448-1f3fd: point_left_tone3;
+ 1f448-1f3fe: point_left_tone4;
+ 1f448-1f3ff: point_left_tone5;
+ 1f449: point_right;
+ 1f449-1f3fb: point_right_tone1;
+ 1f449-1f3fc: point_right_tone2;
+ 1f449-1f3fd: point_right_tone3;
+ 1f449-1f3fe: point_right_tone4;
+ 1f449-1f3ff: point_right_tone5;
+ 1f446: point_up_2;
+ 1f446-1f3fb: point_up_2_tone1;
+ 1f446-1f3fc: point_up_2_tone2;
+ 1f446-1f3fd: point_up_2_tone3;
+ 1f446-1f3fe: point_up_2_tone4;
+ 1f446-1f3ff: point_up_2_tone5;
+ 1f447: point_down;
+ 1f447-1f3fb: point_down_tone1;
+ 1f447-1f3fc: point_down_tone2;
+ 1f447-1f3fd: point_down_tone3;
+ 1f447-1f3fe: point_down_tone4;
+ 1f447-1f3ff: point_down_tone5;
+ 261d: point_up;
+ 261d-1f3fb: point_up_tone1;
+ 261d-1f3fc: point_up_tone2;
+ 261d-1f3fd: point_up_tone3;
+ 261d-1f3fe: point_up_tone4;
+ 261d-1f3ff: point_up_tone5;
+ 270b: raised_hand;
+ 270b-1f3fb: raised_hand_tone1;
+ 270b-1f3fc: raised_hand_tone2;
+ 270b-1f3fd: raised_hand_tone3;
+ 270b-1f3fe: raised_hand_tone4;
+ 270b-1f3ff: raised_hand_tone5;
+ 1f91a: raised_back_of_hand;
+ 1f91a-1f3fb: raised_back_of_hand_tone1;
+ 1f91a-1f3fc: raised_back_of_hand_tone2;
+ 1f91a-1f3fd: raised_back_of_hand_tone3;
+ 1f91a-1f3fe: raised_back_of_hand_tone4;
+ 1f91a-1f3ff: raised_back_of_hand_tone5;
+ 1f590: hand_splayed;
+ 1f590-1f3fb: hand_splayed_tone1;
+ 1f590-1f3fc: hand_splayed_tone2;
+ 1f590-1f3fd: hand_splayed_tone3;
+ 1f590-1f3fe: hand_splayed_tone4;
+ 1f590-1f3ff: hand_splayed_tone5;
+ 1f596: vulcan;
+ 1f596-1f3fb: vulcan_tone1;
+ 1f596-1f3fc: vulcan_tone2;
+ 1f596-1f3fd: vulcan_tone3;
+ 1f596-1f3fe: vulcan_tone4;
+ 1f596-1f3ff: vulcan_tone5;
+ 1f44b: wave;
+ 1f44b-1f3fb: wave_tone1;
+ 1f44b-1f3fc: wave_tone2;
+ 1f44b-1f3fd: wave_tone3;
+ 1f44b-1f3fe: wave_tone4;
+ 1f44b-1f3ff: wave_tone5;
+ 1f919: call_me;
+ 1f919-1f3fb: call_me_tone1;
+ 1f919-1f3fc: call_me_tone2;
+ 1f919-1f3fd: call_me_tone3;
+ 1f919-1f3fe: call_me_tone4;
+ 1f919-1f3ff: call_me_tone5;
+ 1f4aa: muscle;
+ 1f4aa-1f3fb: muscle_tone1;
+ 1f4aa-1f3fc: muscle_tone2;
+ 1f4aa-1f3fd: muscle_tone3;
+ 1f4aa-1f3fe: muscle_tone4;
+ 1f4aa-1f3ff: muscle_tone5;
+ 1f9be: mechanical_arm;
+ 1f595: middle_finger;
+ 1f595-1f3fb: middle_finger_tone1;
+ 1f595-1f3fc: middle_finger_tone2;
+ 1f595-1f3fd: middle_finger_tone3;
+ 1f595-1f3fe: middle_finger_tone4;
+ 1f595-1f3ff: middle_finger_tone5;
+ 270d: writing_hand;
+ 270d-1f3fb: writing_hand_tone1;
+ 270d-1f3fc: writing_hand_tone2;
+ 270d-1f3fd: writing_hand_tone3;
+ 270d-1f3fe: writing_hand_tone4;
+ 270d-1f3ff: writing_hand_tone5;
+ 1f64f: pray;
+ 1f64f-1f3fb: pray_tone1;
+ 1f64f-1f3fc: pray_tone2;
+ 1f64f-1f3fd: pray_tone3;
+ 1f64f-1f3fe: pray_tone4;
+ 1f64f-1f3ff: pray_tone5;
+ 1f9b6: foot;
+ 1f9b6-1f3fb: foot_tone1;
+ 1f9b6-1f3fc: foot_tone2;
+ 1f9b6-1f3fd: foot_tone3;
+ 1f9b6-1f3fe: foot_tone4;
+ 1f9b6-1f3ff: foot_tone5;
+ 1f9b5: leg;
+ 1f9b5-1f3fb: leg_tone1;
+ 1f9b5-1f3fc: leg_tone2;
+ 1f9b5-1f3fd: leg_tone3;
+ 1f9b5-1f3fe: leg_tone4;
+ 1f9b5-1f3ff: leg_tone5;
+ 1f9bf: mechanical_leg;
+ 1f484: lipstick;
+ 1f48b: kiss;
+ 1f444: lips;
+ 1f445: tongue;
+ 1f9b7: tooth;
+ 1f9b4: bone;
+ 1f442: ear;
+ 1f442-1f3fb: ear_tone1;
+ 1f442-1f3fc: ear_tone2;
+ 1f442-1f3fd: ear_tone3;
+ 1f442-1f3fe: ear_tone4;
+ 1f442-1f3ff: ear_tone5;
+ 1f9bb: ear_with_hearing_aid;
+ 1f9bb-1f3fb: ear_with_hearing_aid_tone1;
+ 1f9bb-1f3fc: ear_with_hearing_aid_tone2;
+ 1f9bb-1f3fd: ear_with_hearing_aid_tone3;
+ 1f9bb-1f3fe: ear_with_hearing_aid_tone4;
+ 1f9bb-1f3ff: ear_with_hearing_aid_tone5;
+ 1f443: nose;
+ 1f443-1f3fb: nose_tone1;
+ 1f443-1f3fc: nose_tone2;
+ 1f443-1f3fd: nose_tone3;
+ 1f443-1f3fe: nose_tone4;
+ 1f443-1f3ff: nose_tone5;
+ 1f463: footprints;
+ 1f441: eye;
+ 1f440: eyes;
+ 1f9e0: brain;
+ 1f5e3: speaking_head;
+ 1f464: bust_in_silhouette;
+ 1f465: busts_in_silhouette;
+ 1f476: baby;
+ 1f476-1f3fb: baby_tone1;
+ 1f476-1f3fc: baby_tone2;
+ 1f476-1f3fd: baby_tone3;
+ 1f476-1f3fe: baby_tone4;
+ 1f476-1f3ff: baby_tone5;
+ 1f467: girl;
+ 1f467-1f3fb: girl_tone1;
+ 1f467-1f3fc: girl_tone2;
+ 1f467-1f3fd: girl_tone3;
+ 1f467-1f3fe: girl_tone4;
+ 1f467-1f3ff: girl_tone5;
+ 1f9d2: child;
+ 1f9d2-1f3fb: child_tone1;
+ 1f9d2-1f3fc: child_tone2;
+ 1f9d2-1f3fd: child_tone3;
+ 1f9d2-1f3fe: child_tone4;
+ 1f9d2-1f3ff: child_tone5;
+ 1f466: boy;
+ 1f466-1f3fb: boy_tone1;
+ 1f466-1f3fc: boy_tone2;
+ 1f466-1f3fd: boy_tone3;
+ 1f466-1f3fe: boy_tone4;
+ 1f466-1f3ff: boy_tone5;
+ 1f469: woman;
+ 1f469-1f3fb: woman_tone1;
+ 1f469-1f3fc: woman_tone2;
+ 1f469-1f3fd: woman_tone3;
+ 1f469-1f3fe: woman_tone4;
+ 1f469-1f3ff: woman_tone5;
+ 1f9d1: adult;
+ 1f9d1-1f3fb: adult_tone1;
+ 1f9d1-1f3fc: adult_tone2;
+ 1f9d1-1f3fd: adult_tone3;
+ 1f9d1-1f3fe: adult_tone4;
+ 1f9d1-1f3ff: adult_tone5;
+ 1f468: man;
+ 1f468-1f3fb: man_tone1;
+ 1f468-1f3fc: man_tone2;
+ 1f468-1f3fd: man_tone3;
+ 1f468-1f3fe: man_tone4;
+ 1f468-1f3ff: man_tone5;
+ 1f469-200d-1f9b1: woman_curly_haired;
+ 1f469-1f3fb-200d-1f9b1: woman_curly_haired_tone1;
+ 1f469-1f3fc-200d-1f9b1: woman_curly_haired_tone2;
+ 1f469-1f3fd-200d-1f9b1: woman_curly_haired_tone3;
+ 1f469-1f3fe-200d-1f9b1: woman_curly_haired_tone4;
+ 1f469-1f3ff-200d-1f9b1: woman_curly_haired_tone5;
+ 1f468-200d-1f9b1: man_curly_haired;
+ 1f468-1f3fb-200d-1f9b1: man_curly_haired_tone1;
+ 1f468-1f3fc-200d-1f9b1: man_curly_haired_tone2;
+ 1f468-1f3fd-200d-1f9b1: man_curly_haired_tone3;
+ 1f468-1f3fe-200d-1f9b1: man_curly_haired_tone4;
+ 1f468-1f3ff-200d-1f9b1: man_curly_haired_tone5;
+ 1f469-200d-1f9b0: woman_red_haired;
+ 1f469-1f3fb-200d-1f9b0: woman_red_haired_tone1;
+ 1f469-1f3fc-200d-1f9b0: woman_red_haired_tone2;
+ 1f469-1f3fd-200d-1f9b0: woman_red_haired_tone3;
+ 1f469-1f3fe-200d-1f9b0: woman_red_haired_tone4;
+ 1f469-1f3ff-200d-1f9b0: woman_red_haired_tone5;
+ 1f468-200d-1f9b0: man_red_haired;
+ 1f468-1f3fb-200d-1f9b0: man_red_haired_tone1;
+ 1f468-1f3fc-200d-1f9b0: man_red_haired_tone2;
+ 1f468-1f3fd-200d-1f9b0: man_red_haired_tone3;
+ 1f468-1f3fe-200d-1f9b0: man_red_haired_tone4;
+ 1f468-1f3ff-200d-1f9b0: man_red_haired_tone5;
+ 1f471-200d-2640-fe0f: blond-haired_woman;
+ 1f471-1f3fb-200d-2640-fe0f: blond-haired_woman_tone1;
+ 1f471-1f3fc-200d-2640-fe0f: blond-haired_woman_tone2;
+ 1f471-1f3fd-200d-2640-fe0f: blond-haired_woman_tone3;
+ 1f471-1f3fe-200d-2640-fe0f: blond-haired_woman_tone4;
+ 1f471-1f3ff-200d-2640-fe0f: blond-haired_woman_tone5;
+ 1f471: blond_haired_person;
+ 1f471-1f3fb: blond_haired_person_tone1;
+ 1f471-1f3fc: blond_haired_person_tone2;
+ 1f471-1f3fd: blond_haired_person_tone3;
+ 1f471-1f3fe: blond_haired_person_tone4;
+ 1f471-1f3ff: blond_haired_person_tone5;
+ 1f471-200d-2642-fe0f: blond-haired_man;
+ 1f471-1f3fb-200d-2642-fe0f: blond-haired_man_tone1;
+ 1f471-1f3fc-200d-2642-fe0f: blond-haired_man_tone2;
+ 1f471-1f3fd-200d-2642-fe0f: blond-haired_man_tone3;
+ 1f471-1f3fe-200d-2642-fe0f: blond-haired_man_tone4;
+ 1f471-1f3ff-200d-2642-fe0f: blond-haired_man_tone5;
+ 1f469-200d-1f9b3: woman_white_haired;
+ 1f469-1f3fb-200d-1f9b3: woman_white_haired_tone1;
+ 1f469-1f3fc-200d-1f9b3: woman_white_haired_tone2;
+ 1f469-1f3fd-200d-1f9b3: woman_white_haired_tone3;
+ 1f469-1f3fe-200d-1f9b3: woman_white_haired_tone4;
+ 1f469-1f3ff-200d-1f9b3: woman_white_haired_tone5;
+ 1f468-200d-1f9b3: man_white_haired;
+ 1f468-1f3fb-200d-1f9b3: man_white_haired_tone1;
+ 1f468-1f3fc-200d-1f9b3: man_white_haired_tone2;
+ 1f468-1f3fd-200d-1f9b3: man_white_haired_tone3;
+ 1f468-1f3fe-200d-1f9b3: man_white_haired_tone4;
+ 1f468-1f3ff-200d-1f9b3: man_white_haired_tone5;
+ 1f469-200d-1f9b2: woman_bald;
+ 1f469-1f3fb-200d-1f9b2: woman_bald_tone1;
+ 1f469-1f3fc-200d-1f9b2: woman_bald_tone2;
+ 1f469-1f3fd-200d-1f9b2: woman_bald_tone3;
+ 1f469-1f3fe-200d-1f9b2: woman_bald_tone4;
+ 1f469-1f3ff-200d-1f9b2: woman_bald_tone5;
+ 1f468-200d-1f9b2: man_bald;
+ 1f468-1f3fb-200d-1f9b2: man_bald_tone1;
+ 1f468-1f3fc-200d-1f9b2: man_bald_tone2;
+ 1f468-1f3fd-200d-1f9b2: man_bald_tone3;
+ 1f468-1f3fe-200d-1f9b2: man_bald_tone4;
+ 1f468-1f3ff-200d-1f9b2: man_bald_tone5;
+ 1f9d4: bearded_person;
+ 1f9d4-1f3fb: bearded_person_tone1;
+ 1f9d4-1f3fc: bearded_person_tone2;
+ 1f9d4-1f3fd: bearded_person_tone3;
+ 1f9d4-1f3fe: bearded_person_tone4;
+ 1f9d4-1f3ff: bearded_person_tone5;
+ 1f475: older_woman;
+ 1f475-1f3fb: older_woman_tone1;
+ 1f475-1f3fc: older_woman_tone2;
+ 1f475-1f3fd: older_woman_tone3;
+ 1f475-1f3fe: older_woman_tone4;
+ 1f475-1f3ff: older_woman_tone5;
+ 1f9d3: older_adult;
+ 1f9d3-1f3fb: older_adult_tone1;
+ 1f9d3-1f3fc: older_adult_tone2;
+ 1f9d3-1f3fd: older_adult_tone3;
+ 1f9d3-1f3fe: older_adult_tone4;
+ 1f9d3-1f3ff: older_adult_tone5;
+ 1f474: older_man;
+ 1f474-1f3fb: older_man_tone1;
+ 1f474-1f3fc: older_man_tone2;
+ 1f474-1f3fd: older_man_tone3;
+ 1f474-1f3fe: older_man_tone4;
+ 1f474-1f3ff: older_man_tone5;
+ 1f472: man_with_chinese_cap;
+ 1f472-1f3fb: man_with_chinese_cap_tone1;
+ 1f472-1f3fc: man_with_chinese_cap_tone2;
+ 1f472-1f3fd: man_with_chinese_cap_tone3;
+ 1f472-1f3fe: man_with_chinese_cap_tone4;
+ 1f472-1f3ff: man_with_chinese_cap_tone5;
+ 1f473: person_wearing_turban;
+ 1f473-1f3fb: person_wearing_turban_tone1;
+ 1f473-1f3fc: person_wearing_turban_tone2;
+ 1f473-1f3fd: person_wearing_turban_tone3;
+ 1f473-1f3fe: person_wearing_turban_tone4;
+ 1f473-1f3ff: person_wearing_turban_tone5;
+ 1f473-200d-2640-fe0f: woman_wearing_turban;
+ 1f473-1f3fb-200d-2640-fe0f: woman_wearing_turban_tone1;
+ 1f473-1f3fc-200d-2640-fe0f: woman_wearing_turban_tone2;
+ 1f473-1f3fd-200d-2640-fe0f: woman_wearing_turban_tone3;
+ 1f473-1f3fe-200d-2640-fe0f: woman_wearing_turban_tone4;
+ 1f473-1f3ff-200d-2640-fe0f: woman_wearing_turban_tone5;
+ 1f473-200d-2642-fe0f: man_wearing_turban;
+ 1f473-1f3fb-200d-2642-fe0f: man_wearing_turban_tone1;
+ 1f473-1f3fc-200d-2642-fe0f: man_wearing_turban_tone2;
+ 1f473-1f3fd-200d-2642-fe0f: man_wearing_turban_tone3;
+ 1f473-1f3fe-200d-2642-fe0f: man_wearing_turban_tone4;
+ 1f473-1f3ff-200d-2642-fe0f: man_wearing_turban_tone5;
+ 1f9d5: woman_with_headscarf;
+ 1f9d5-1f3fb: woman_with_headscarf_tone1;
+ 1f9d5-1f3fc: woman_with_headscarf_tone2;
+ 1f9d5-1f3fd: woman_with_headscarf_tone3;
+ 1f9d5-1f3fe: woman_with_headscarf_tone4;
+ 1f9d5-1f3ff: woman_with_headscarf_tone5;
+ 1f46e: police_officer;
+ 1f46e-1f3fb: police_officer_tone1;
+ 1f46e-1f3fc: police_officer_tone2;
+ 1f46e-1f3fd: police_officer_tone3;
+ 1f46e-1f3fe: police_officer_tone4;
+ 1f46e-1f3ff: police_officer_tone5;
+ 1f46e-200d-2640-fe0f: woman_police_officer;
+ 1f46e-1f3fb-200d-2640-fe0f: woman_police_officer_tone1;
+ 1f46e-1f3fc-200d-2640-fe0f: woman_police_officer_tone2;
+ 1f46e-1f3fd-200d-2640-fe0f: woman_police_officer_tone3;
+ 1f46e-1f3fe-200d-2640-fe0f: woman_police_officer_tone4;
+ 1f46e-1f3ff-200d-2640-fe0f: woman_police_officer_tone5;
+ 1f46e-200d-2642-fe0f: man_police_officer;
+ 1f46e-1f3fb-200d-2642-fe0f: man_police_officer_tone1;
+ 1f46e-1f3fc-200d-2642-fe0f: man_police_officer_tone2;
+ 1f46e-1f3fd-200d-2642-fe0f: man_police_officer_tone3;
+ 1f46e-1f3fe-200d-2642-fe0f: man_police_officer_tone4;
+ 1f46e-1f3ff-200d-2642-fe0f: man_police_officer_tone5;
+ 1f477: construction_worker;
+ 1f477-1f3fb: construction_worker_tone1;
+ 1f477-1f3fc: construction_worker_tone2;
+ 1f477-1f3fd: construction_worker_tone3;
+ 1f477-1f3fe: construction_worker_tone4;
+ 1f477-1f3ff: construction_worker_tone5;
+ 1f477-200d-2640-fe0f: woman_construction_worker;
+ 1f477-1f3fb-200d-2640-fe0f: woman_construction_worker_tone1;
+ 1f477-1f3fc-200d-2640-fe0f: woman_construction_worker_tone2;
+ 1f477-1f3fd-200d-2640-fe0f: woman_construction_worker_tone3;
+ 1f477-1f3fe-200d-2640-fe0f: woman_construction_worker_tone4;
+ 1f477-1f3ff-200d-2640-fe0f: woman_construction_worker_tone5;
+ 1f477-200d-2642-fe0f: man_construction_worker;
+ 1f477-1f3fb-200d-2642-fe0f: man_construction_worker_tone1;
+ 1f477-1f3fc-200d-2642-fe0f: man_construction_worker_tone2;
+ 1f477-1f3fd-200d-2642-fe0f: man_construction_worker_tone3;
+ 1f477-1f3fe-200d-2642-fe0f: man_construction_worker_tone4;
+ 1f477-1f3ff-200d-2642-fe0f: man_construction_worker_tone5;
+ 1f482: guard;
+ 1f482-1f3fb: guard_tone1;
+ 1f482-1f3fc: guard_tone2;
+ 1f482-1f3fd: guard_tone3;
+ 1f482-1f3fe: guard_tone4;
+ 1f482-1f3ff: guard_tone5;
+ 1f482-200d-2640-fe0f: woman_guard;
+ 1f482-1f3fb-200d-2640-fe0f: woman_guard_tone1;
+ 1f482-1f3fc-200d-2640-fe0f: woman_guard_tone2;
+ 1f482-1f3fd-200d-2640-fe0f: woman_guard_tone3;
+ 1f482-1f3fe-200d-2640-fe0f: woman_guard_tone4;
+ 1f482-1f3ff-200d-2640-fe0f: woman_guard_tone5;
+ 1f482-200d-2642-fe0f: man_guard;
+ 1f482-1f3fb-200d-2642-fe0f: man_guard_tone1;
+ 1f482-1f3fc-200d-2642-fe0f: man_guard_tone2;
+ 1f482-1f3fd-200d-2642-fe0f: man_guard_tone3;
+ 1f482-1f3fe-200d-2642-fe0f: man_guard_tone4;
+ 1f482-1f3ff-200d-2642-fe0f: man_guard_tone5;
+ 1f575: detective;
+ 1f575-1f3fb: detective_tone1;
+ 1f575-1f3fc: detective_tone2;
+ 1f575-1f3fd: detective_tone3;
+ 1f575-1f3fe: detective_tone4;
+ 1f575-1f3ff: detective_tone5;
+ 1f575-fe0f-200d-2640-fe0f: woman_detective;
+ 1f575-1f3fb-200d-2640-fe0f: woman_detective_tone1;
+ 1f575-1f3fc-200d-2640-fe0f: woman_detective_tone2;
+ 1f575-1f3fd-200d-2640-fe0f: woman_detective_tone3;
+ 1f575-1f3fe-200d-2640-fe0f: woman_detective_tone4;
+ 1f575-1f3ff-200d-2640-fe0f: woman_detective_tone5;
+ 1f575-fe0f-200d-2642-fe0f: man_detective;
+ 1f575-1f3fb-200d-2642-fe0f: man_detective_tone1;
+ 1f575-1f3fc-200d-2642-fe0f: man_detective_tone2;
+ 1f575-1f3fd-200d-2642-fe0f: man_detective_tone3;
+ 1f575-1f3fe-200d-2642-fe0f: man_detective_tone4;
+ 1f575-1f3ff-200d-2642-fe0f: man_detective_tone5;
+ 1f469-200d-2695-fe0f: woman_health_worker;
+ 1f469-1f3fb-200d-2695-fe0f: woman_health_worker_tone1;
+ 1f469-1f3fc-200d-2695-fe0f: woman_health_worker_tone2;
+ 1f469-1f3fd-200d-2695-fe0f: woman_health_worker_tone3;
+ 1f469-1f3fe-200d-2695-fe0f: woman_health_worker_tone4;
+ 1f469-1f3ff-200d-2695-fe0f: woman_health_worker_tone5;
+ 1f468-200d-2695-fe0f: man_health_worker;
+ 1f468-1f3fb-200d-2695-fe0f: man_health_worker_tone1;
+ 1f468-1f3fc-200d-2695-fe0f: man_health_worker_tone2;
+ 1f468-1f3fd-200d-2695-fe0f: man_health_worker_tone3;
+ 1f468-1f3fe-200d-2695-fe0f: man_health_worker_tone4;
+ 1f468-1f3ff-200d-2695-fe0f: man_health_worker_tone5;
+ 1f469-200d-1f33e: woman_farmer;
+ 1f469-1f3fb-200d-1f33e: woman_farmer_tone1;
+ 1f469-1f3fc-200d-1f33e: woman_farmer_tone2;
+ 1f469-1f3fd-200d-1f33e: woman_farmer_tone3;
+ 1f469-1f3fe-200d-1f33e: woman_farmer_tone4;
+ 1f469-1f3ff-200d-1f33e: woman_farmer_tone5;
+ 1f468-200d-1f33e: man_farmer;
+ 1f468-1f3fb-200d-1f33e: man_farmer_tone1;
+ 1f468-1f3fc-200d-1f33e: man_farmer_tone2;
+ 1f468-1f3fd-200d-1f33e: man_farmer_tone3;
+ 1f468-1f3fe-200d-1f33e: man_farmer_tone4;
+ 1f468-1f3ff-200d-1f33e: man_farmer_tone5;
+ 1f469-200d-1f373: woman_cook;
+ 1f469-1f3fb-200d-1f373: woman_cook_tone1;
+ 1f469-1f3fc-200d-1f373: woman_cook_tone2;
+ 1f469-1f3fd-200d-1f373: woman_cook_tone3;
+ 1f469-1f3fe-200d-1f373: woman_cook_tone4;
+ 1f469-1f3ff-200d-1f373: woman_cook_tone5;
+ 1f468-200d-1f373: man_cook;
+ 1f468-1f3fb-200d-1f373: man_cook_tone1;
+ 1f468-1f3fc-200d-1f373: man_cook_tone2;
+ 1f468-1f3fd-200d-1f373: man_cook_tone3;
+ 1f468-1f3fe-200d-1f373: man_cook_tone4;
+ 1f468-1f3ff-200d-1f373: man_cook_tone5;
+ 1f469-200d-1f393: woman_student;
+ 1f469-1f3fb-200d-1f393: woman_student_tone1;
+ 1f469-1f3fc-200d-1f393: woman_student_tone2;
+ 1f469-1f3fd-200d-1f393: woman_student_tone3;
+ 1f469-1f3fe-200d-1f393: woman_student_tone4;
+ 1f469-1f3ff-200d-1f393: woman_student_tone5;
+ 1f468-200d-1f393: man_student;
+ 1f468-1f3fb-200d-1f393: man_student_tone1;
+ 1f468-1f3fc-200d-1f393: man_student_tone2;
+ 1f468-1f3fd-200d-1f393: man_student_tone3;
+ 1f468-1f3fe-200d-1f393: man_student_tone4;
+ 1f468-1f3ff-200d-1f393: man_student_tone5;
+ 1f469-200d-1f3a4: woman_singer;
+ 1f469-1f3fb-200d-1f3a4: woman_singer_tone1;
+ 1f469-1f3fc-200d-1f3a4: woman_singer_tone2;
+ 1f469-1f3fd-200d-1f3a4: woman_singer_tone3;
+ 1f469-1f3fe-200d-1f3a4: woman_singer_tone4;
+ 1f469-1f3ff-200d-1f3a4: woman_singer_tone5;
+ 1f468-200d-1f3a4: man_singer;
+ 1f468-1f3fb-200d-1f3a4: man_singer_tone1;
+ 1f468-1f3fc-200d-1f3a4: man_singer_tone2;
+ 1f468-1f3fd-200d-1f3a4: man_singer_tone3;
+ 1f468-1f3fe-200d-1f3a4: man_singer_tone4;
+ 1f468-1f3ff-200d-1f3a4: man_singer_tone5;
+ 1f469-200d-1f3eb: woman_teacher;
+ 1f469-1f3fb-200d-1f3eb: woman_teacher_tone1;
+ 1f469-1f3fc-200d-1f3eb: woman_teacher_tone2;
+ 1f469-1f3fd-200d-1f3eb: woman_teacher_tone3;
+ 1f469-1f3fe-200d-1f3eb: woman_teacher_tone4;
+ 1f469-1f3ff-200d-1f3eb: woman_teacher_tone5;
+ 1f468-200d-1f3eb: man_teacher;
+ 1f468-1f3fb-200d-1f3eb: man_teacher_tone1;
+ 1f468-1f3fc-200d-1f3eb: man_teacher_tone2;
+ 1f468-1f3fd-200d-1f3eb: man_teacher_tone3;
+ 1f468-1f3fe-200d-1f3eb: man_teacher_tone4;
+ 1f468-1f3ff-200d-1f3eb: man_teacher_tone5;
+ 1f469-200d-1f3ed: woman_factory_worker;
+ 1f469-1f3fb-200d-1f3ed: woman_factory_worker_tone1;
+ 1f469-1f3fc-200d-1f3ed: woman_factory_worker_tone2;
+ 1f469-1f3fd-200d-1f3ed: woman_factory_worker_tone3;
+ 1f469-1f3fe-200d-1f3ed: woman_factory_worker_tone4;
+ 1f469-1f3ff-200d-1f3ed: woman_factory_worker_tone5;
+ 1f468-200d-1f3ed: man_factory_worker;
+ 1f468-1f3fb-200d-1f3ed: man_factory_worker_tone1;
+ 1f468-1f3fc-200d-1f3ed: man_factory_worker_tone2;
+ 1f468-1f3fd-200d-1f3ed: man_factory_worker_tone3;
+ 1f468-1f3fe-200d-1f3ed: man_factory_worker_tone4;
+ 1f468-1f3ff-200d-1f3ed: man_factory_worker_tone5;
+ 1f469-200d-1f4bb: woman_technologist;
+ 1f469-1f3fb-200d-1f4bb: woman_technologist_tone1;
+ 1f469-1f3fc-200d-1f4bb: woman_technologist_tone2;
+ 1f469-1f3fd-200d-1f4bb: woman_technologist_tone3;
+ 1f469-1f3fe-200d-1f4bb: woman_technologist_tone4;
+ 1f469-1f3ff-200d-1f4bb: woman_technologist_tone5;
+ 1f468-200d-1f4bb: man_technologist;
+ 1f468-1f3fb-200d-1f4bb: man_technologist_tone1;
+ 1f468-1f3fc-200d-1f4bb: man_technologist_tone2;
+ 1f468-1f3fd-200d-1f4bb: man_technologist_tone3;
+ 1f468-1f3fe-200d-1f4bb: man_technologist_tone4;
+ 1f468-1f3ff-200d-1f4bb: man_technologist_tone5;
+ 1f469-200d-1f4bc: woman_office_worker;
+ 1f469-1f3fb-200d-1f4bc: woman_office_worker_tone1;
+ 1f469-1f3fc-200d-1f4bc: woman_office_worker_tone2;
+ 1f469-1f3fd-200d-1f4bc: woman_office_worker_tone3;
+ 1f469-1f3fe-200d-1f4bc: woman_office_worker_tone4;
+ 1f469-1f3ff-200d-1f4bc: woman_office_worker_tone5;
+ 1f468-200d-1f4bc: man_office_worker;
+ 1f468-1f3fb-200d-1f4bc: man_office_worker_tone1;
+ 1f468-1f3fc-200d-1f4bc: man_office_worker_tone2;
+ 1f468-1f3fd-200d-1f4bc: man_office_worker_tone3;
+ 1f468-1f3fe-200d-1f4bc: man_office_worker_tone4;
+ 1f468-1f3ff-200d-1f4bc: man_office_worker_tone5;
+ 1f469-200d-1f527: woman_mechanic;
+ 1f469-1f3fb-200d-1f527: woman_mechanic_tone1;
+ 1f469-1f3fc-200d-1f527: woman_mechanic_tone2;
+ 1f469-1f3fd-200d-1f527: woman_mechanic_tone3;
+ 1f469-1f3fe-200d-1f527: woman_mechanic_tone4;
+ 1f469-1f3ff-200d-1f527: woman_mechanic_tone5;
+ 1f468-200d-1f527: man_mechanic;
+ 1f468-1f3fb-200d-1f527: man_mechanic_tone1;
+ 1f468-1f3fc-200d-1f527: man_mechanic_tone2;
+ 1f468-1f3fd-200d-1f527: man_mechanic_tone3;
+ 1f468-1f3fe-200d-1f527: man_mechanic_tone4;
+ 1f468-1f3ff-200d-1f527: man_mechanic_tone5;
+ 1f469-200d-1f52c: woman_scientist;
+ 1f469-1f3fb-200d-1f52c: woman_scientist_tone1;
+ 1f469-1f3fc-200d-1f52c: woman_scientist_tone2;
+ 1f469-1f3fd-200d-1f52c: woman_scientist_tone3;
+ 1f469-1f3fe-200d-1f52c: woman_scientist_tone4;
+ 1f469-1f3ff-200d-1f52c: woman_scientist_tone5;
+ 1f468-200d-1f52c: man_scientist;
+ 1f468-1f3fb-200d-1f52c: man_scientist_tone1;
+ 1f468-1f3fc-200d-1f52c: man_scientist_tone2;
+ 1f468-1f3fd-200d-1f52c: man_scientist_tone3;
+ 1f468-1f3fe-200d-1f52c: man_scientist_tone4;
+ 1f468-1f3ff-200d-1f52c: man_scientist_tone5;
+ 1f469-200d-1f3a8: woman_artist;
+ 1f469-1f3fb-200d-1f3a8: woman_artist_tone1;
+ 1f469-1f3fc-200d-1f3a8: woman_artist_tone2;
+ 1f469-1f3fd-200d-1f3a8: woman_artist_tone3;
+ 1f469-1f3fe-200d-1f3a8: woman_artist_tone4;
+ 1f469-1f3ff-200d-1f3a8: woman_artist_tone5;
+ 1f468-200d-1f3a8: man_artist;
+ 1f468-1f3fb-200d-1f3a8: man_artist_tone1;
+ 1f468-1f3fc-200d-1f3a8: man_artist_tone2;
+ 1f468-1f3fd-200d-1f3a8: man_artist_tone3;
+ 1f468-1f3fe-200d-1f3a8: man_artist_tone4;
+ 1f468-1f3ff-200d-1f3a8: man_artist_tone5;
+ 1f469-200d-1f692: woman_firefighter;
+ 1f469-1f3fb-200d-1f692: woman_firefighter_tone1;
+ 1f469-1f3fc-200d-1f692: woman_firefighter_tone2;
+ 1f469-1f3fd-200d-1f692: woman_firefighter_tone3;
+ 1f469-1f3fe-200d-1f692: woman_firefighter_tone4;
+ 1f469-1f3ff-200d-1f692: woman_firefighter_tone5;
+ 1f468-200d-1f692: man_firefighter;
+ 1f468-1f3fb-200d-1f692: man_firefighter_tone1;
+ 1f468-1f3fc-200d-1f692: man_firefighter_tone2;
+ 1f468-1f3fd-200d-1f692: man_firefighter_tone3;
+ 1f468-1f3fe-200d-1f692: man_firefighter_tone4;
+ 1f468-1f3ff-200d-1f692: man_firefighter_tone5;
+ 1f469-200d-2708-fe0f: woman_pilot;
+ 1f469-1f3fb-200d-2708-fe0f: woman_pilot_tone1;
+ 1f469-1f3fc-200d-2708-fe0f: woman_pilot_tone2;
+ 1f469-1f3fd-200d-2708-fe0f: woman_pilot_tone3;
+ 1f469-1f3fe-200d-2708-fe0f: woman_pilot_tone4;
+ 1f469-1f3ff-200d-2708-fe0f: woman_pilot_tone5;
+ 1f468-200d-2708-fe0f: man_pilot;
+ 1f468-1f3fb-200d-2708-fe0f: man_pilot_tone1;
+ 1f468-1f3fc-200d-2708-fe0f: man_pilot_tone2;
+ 1f468-1f3fd-200d-2708-fe0f: man_pilot_tone3;
+ 1f468-1f3fe-200d-2708-fe0f: man_pilot_tone4;
+ 1f468-1f3ff-200d-2708-fe0f: man_pilot_tone5;
+ 1f469-200d-1f680: woman_astronaut;
+ 1f469-1f3fb-200d-1f680: woman_astronaut_tone1;
+ 1f469-1f3fc-200d-1f680: woman_astronaut_tone2;
+ 1f469-1f3fd-200d-1f680: woman_astronaut_tone3;
+ 1f469-1f3fe-200d-1f680: woman_astronaut_tone4;
+ 1f469-1f3ff-200d-1f680: woman_astronaut_tone5;
+ 1f468-200d-1f680: man_astronaut;
+ 1f468-1f3fb-200d-1f680: man_astronaut_tone1;
+ 1f468-1f3fc-200d-1f680: man_astronaut_tone2;
+ 1f468-1f3fd-200d-1f680: man_astronaut_tone3;
+ 1f468-1f3fe-200d-1f680: man_astronaut_tone4;
+ 1f468-1f3ff-200d-1f680: man_astronaut_tone5;
+ 1f469-200d-2696-fe0f: woman_judge;
+ 1f469-1f3fb-200d-2696-fe0f: woman_judge_tone1;
+ 1f469-1f3fc-200d-2696-fe0f: woman_judge_tone2;
+ 1f469-1f3fd-200d-2696-fe0f: woman_judge_tone3;
+ 1f469-1f3fe-200d-2696-fe0f: woman_judge_tone4;
+ 1f469-1f3ff-200d-2696-fe0f: woman_judge_tone5;
+ 1f468-200d-2696-fe0f: man_judge;
+ 1f468-1f3fb-200d-2696-fe0f: man_judge_tone1;
+ 1f468-1f3fc-200d-2696-fe0f: man_judge_tone2;
+ 1f468-1f3fd-200d-2696-fe0f: man_judge_tone3;
+ 1f468-1f3fe-200d-2696-fe0f: man_judge_tone4;
+ 1f468-1f3ff-200d-2696-fe0f: man_judge_tone5;
+ 1f470: bride_with_veil;
+ 1f470-1f3fb: bride_with_veil_tone1;
+ 1f470-1f3fc: bride_with_veil_tone2;
+ 1f470-1f3fd: bride_with_veil_tone3;
+ 1f470-1f3fe: bride_with_veil_tone4;
+ 1f470-1f3ff: bride_with_veil_tone5;
+ 1f935: man_in_tuxedo;
+ 1f935-1f3fb: man_in_tuxedo_tone1;
+ 1f935-1f3fc: man_in_tuxedo_tone2;
+ 1f935-1f3fd: man_in_tuxedo_tone3;
+ 1f935-1f3fe: man_in_tuxedo_tone4;
+ 1f935-1f3ff: man_in_tuxedo_tone5;
+ 1f478: princess;
+ 1f478-1f3fb: princess_tone1;
+ 1f478-1f3fc: princess_tone2;
+ 1f478-1f3fd: princess_tone3;
+ 1f478-1f3fe: princess_tone4;
+ 1f478-1f3ff: princess_tone5;
+ 1f934: prince;
+ 1f934-1f3fb: prince_tone1;
+ 1f934-1f3fc: prince_tone2;
+ 1f934-1f3fd: prince_tone3;
+ 1f934-1f3fe: prince_tone4;
+ 1f934-1f3ff: prince_tone5;
+ 1f9b8: superhero;
+ 1f9b8-1f3fb: superhero_tone1;
+ 1f9b8-1f3fc: superhero_tone2;
+ 1f9b8-1f3fd: superhero_tone3;
+ 1f9b8-1f3fe: superhero_tone4;
+ 1f9b8-1f3ff: superhero_tone5;
+ 1f9b8-200d-2640-fe0f: woman_superhero;
+ 1f9b8-1f3fb-200d-2640-fe0f: woman_superhero_tone1;
+ 1f9b8-1f3fc-200d-2640-fe0f: woman_superhero_tone2;
+ 1f9b8-1f3fd-200d-2640-fe0f: woman_superhero_tone3;
+ 1f9b8-1f3fe-200d-2640-fe0f: woman_superhero_tone4;
+ 1f9b8-1f3ff-200d-2640-fe0f: woman_superhero_tone5;
+ 1f9b8-200d-2642-fe0f: man_superhero;
+ 1f9b8-1f3fb-200d-2642-fe0f: man_superhero_tone1;
+ 1f9b8-1f3fc-200d-2642-fe0f: man_superhero_tone2;
+ 1f9b8-1f3fd-200d-2642-fe0f: man_superhero_tone3;
+ 1f9b8-1f3fe-200d-2642-fe0f: man_superhero_tone4;
+ 1f9b8-1f3ff-200d-2642-fe0f: man_superhero_tone5;
+ 1f9b9: supervillain;
+ 1f9b9-1f3fb: supervillain_tone1;
+ 1f9b9-1f3fc: supervillain_tone2;
+ 1f9b9-1f3fd: supervillain_tone3;
+ 1f9b9-1f3fe: supervillain_tone4;
+ 1f9b9-1f3ff: supervillain_tone5;
+ 1f9b9-200d-2640-fe0f: woman_supervillain;
+ 1f9b9-1f3fb-200d-2640-fe0f: woman_supervillain_tone1;
+ 1f9b9-1f3fc-200d-2640-fe0f: woman_supervillain_tone2;
+ 1f9b9-1f3fd-200d-2640-fe0f: woman_supervillain_tone3;
+ 1f9b9-1f3fe-200d-2640-fe0f: woman_supervillain_tone4;
+ 1f9b9-1f3ff-200d-2640-fe0f: woman_supervillain_tone5;
+ 1f9b9-200d-2642-fe0f: man_supervillain;
+ 1f9b9-1f3fb-200d-2642-fe0f: man_supervillain_tone1;
+ 1f9b9-1f3fc-200d-2642-fe0f: man_supervillain_tone2;
+ 1f9b9-1f3fd-200d-2642-fe0f: man_supervillain_tone3;
+ 1f9b9-1f3fe-200d-2642-fe0f: man_supervillain_tone4;
+ 1f9b9-1f3ff-200d-2642-fe0f: man_supervillain_tone5;
+ 1f936: mrs_claus;
+ 1f936-1f3fb: mrs_claus_tone1;
+ 1f936-1f3fc: mrs_claus_tone2;
+ 1f936-1f3fd: mrs_claus_tone3;
+ 1f936-1f3fe: mrs_claus_tone4;
+ 1f936-1f3ff: mrs_claus_tone5;
+ 1f385: santa;
+ 1f385-1f3fb: santa_tone1;
+ 1f385-1f3fc: santa_tone2;
+ 1f385-1f3fd: santa_tone3;
+ 1f385-1f3fe: santa_tone4;
+ 1f385-1f3ff: santa_tone5;
+ 1f9d9: mage;
+ 1f9d9-1f3fb: mage_tone1;
+ 1f9d9-1f3fc: mage_tone2;
+ 1f9d9-1f3fd: mage_tone3;
+ 1f9d9-1f3fe: mage_tone4;
+ 1f9d9-1f3ff: mage_tone5;
+ 1f9d9-200d-2640-fe0f: woman_mage;
+ 1f9d9-1f3fb-200d-2640-fe0f: woman_mage_tone1;
+ 1f9d9-1f3fc-200d-2640-fe0f: woman_mage_tone2;
+ 1f9d9-1f3fd-200d-2640-fe0f: woman_mage_tone3;
+ 1f9d9-1f3fe-200d-2640-fe0f: woman_mage_tone4;
+ 1f9d9-1f3ff-200d-2640-fe0f: woman_mage_tone5;
+ 1f9d9-200d-2642-fe0f: man_mage;
+ 1f9d9-1f3fb-200d-2642-fe0f: man_mage_tone1;
+ 1f9d9-1f3fc-200d-2642-fe0f: man_mage_tone2;
+ 1f9d9-1f3fd-200d-2642-fe0f: man_mage_tone3;
+ 1f9d9-1f3fe-200d-2642-fe0f: man_mage_tone4;
+ 1f9d9-1f3ff-200d-2642-fe0f: man_mage_tone5;
+ 1f9dd: elf;
+ 1f9dd-1f3fb: elf_tone1;
+ 1f9dd-1f3fc: elf_tone2;
+ 1f9dd-1f3fd: elf_tone3;
+ 1f9dd-1f3fe: elf_tone4;
+ 1f9dd-1f3ff: elf_tone5;
+ 1f9dd-200d-2640-fe0f: woman_elf;
+ 1f9dd-1f3fb-200d-2640-fe0f: woman_elf_tone1;
+ 1f9dd-1f3fc-200d-2640-fe0f: woman_elf_tone2;
+ 1f9dd-1f3fd-200d-2640-fe0f: woman_elf_tone3;
+ 1f9dd-1f3fe-200d-2640-fe0f: woman_elf_tone4;
+ 1f9dd-1f3ff-200d-2640-fe0f: woman_elf_tone5;
+ 1f9dd-200d-2642-fe0f: man_elf;
+ 1f9dd-1f3fb-200d-2642-fe0f: man_elf_tone1;
+ 1f9dd-1f3fc-200d-2642-fe0f: man_elf_tone2;
+ 1f9dd-1f3fd-200d-2642-fe0f: man_elf_tone3;
+ 1f9dd-1f3fe-200d-2642-fe0f: man_elf_tone4;
+ 1f9dd-1f3ff-200d-2642-fe0f: man_elf_tone5;
+ 1f9db: vampire;
+ 1f9db-1f3fb: vampire_tone1;
+ 1f9db-1f3fc: vampire_tone2;
+ 1f9db-1f3fd: vampire_tone3;
+ 1f9db-1f3fe: vampire_tone4;
+ 1f9db-1f3ff: vampire_tone5;
+ 1f9db-200d-2640-fe0f: woman_vampire;
+ 1f9db-1f3fb-200d-2640-fe0f: woman_vampire_tone1;
+ 1f9db-1f3fc-200d-2640-fe0f: woman_vampire_tone2;
+ 1f9db-1f3fd-200d-2640-fe0f: woman_vampire_tone3;
+ 1f9db-1f3fe-200d-2640-fe0f: woman_vampire_tone4;
+ 1f9db-1f3ff-200d-2640-fe0f: woman_vampire_tone5;
+ 1f9db-200d-2642-fe0f: man_vampire;
+ 1f9db-1f3fb-200d-2642-fe0f: man_vampire_tone1;
+ 1f9db-1f3fc-200d-2642-fe0f: man_vampire_tone2;
+ 1f9db-1f3fd-200d-2642-fe0f: man_vampire_tone3;
+ 1f9db-1f3fe-200d-2642-fe0f: man_vampire_tone4;
+ 1f9db-1f3ff-200d-2642-fe0f: man_vampire_tone5;
+ 1f9df: zombie;
+ 1f9df-200d-2640-fe0f: woman_zombie;
+ 1f9df-200d-2642-fe0f: man_zombie;
+ 1f9de: genie;
+ 1f9de-200d-2640-fe0f: woman_genie;
+ 1f9de-200d-2642-fe0f: man_genie;
+ 1f9dc: merperson;
+ 1f9dc-1f3fb: merperson_tone1;
+ 1f9dc-1f3fc: merperson_tone2;
+ 1f9dc-1f3fd: merperson_tone3;
+ 1f9dc-1f3fe: merperson_tone4;
+ 1f9dc-1f3ff: merperson_tone5;
+ 1f9dc-200d-2640-fe0f: mermaid;
+ 1f9dc-1f3fb-200d-2640-fe0f: mermaid_tone1;
+ 1f9dc-1f3fc-200d-2640-fe0f: mermaid_tone2;
+ 1f9dc-1f3fd-200d-2640-fe0f: mermaid_tone3;
+ 1f9dc-1f3fe-200d-2640-fe0f: mermaid_tone4;
+ 1f9dc-1f3ff-200d-2640-fe0f: mermaid_tone5;
+ 1f9dc-200d-2642-fe0f: merman;
+ 1f9dc-1f3fb-200d-2642-fe0f: merman_tone1;
+ 1f9dc-1f3fc-200d-2642-fe0f: merman_tone2;
+ 1f9dc-1f3fd-200d-2642-fe0f: merman_tone3;
+ 1f9dc-1f3fe-200d-2642-fe0f: merman_tone4;
+ 1f9dc-1f3ff-200d-2642-fe0f: merman_tone5;
+ 1f9da: fairy;
+ 1f9da-1f3fb: fairy_tone1;
+ 1f9da-1f3fc: fairy_tone2;
+ 1f9da-1f3fd: fairy_tone3;
+ 1f9da-1f3fe: fairy_tone4;
+ 1f9da-1f3ff: fairy_tone5;
+ 1f9da-200d-2640-fe0f: woman_fairy;
+ 1f9da-1f3fb-200d-2640-fe0f: woman_fairy_tone1;
+ 1f9da-1f3fc-200d-2640-fe0f: woman_fairy_tone2;
+ 1f9da-1f3fd-200d-2640-fe0f: woman_fairy_tone3;
+ 1f9da-1f3fe-200d-2640-fe0f: woman_fairy_tone4;
+ 1f9da-1f3ff-200d-2640-fe0f: woman_fairy_tone5;
+ 1f9da-200d-2642-fe0f: man_fairy;
+ 1f9da-1f3fb-200d-2642-fe0f: man_fairy_tone1;
+ 1f9da-1f3fc-200d-2642-fe0f: man_fairy_tone2;
+ 1f9da-1f3fd-200d-2642-fe0f: man_fairy_tone3;
+ 1f9da-1f3fe-200d-2642-fe0f: man_fairy_tone4;
+ 1f9da-1f3ff-200d-2642-fe0f: man_fairy_tone5;
+ 1f47c: angel;
+ 1f47c-1f3fb: angel_tone1;
+ 1f47c-1f3fc: angel_tone2;
+ 1f47c-1f3fd: angel_tone3;
+ 1f47c-1f3fe: angel_tone4;
+ 1f47c-1f3ff: angel_tone5;
+ 1f930: pregnant_woman;
+ 1f930-1f3fb: pregnant_woman_tone1;
+ 1f930-1f3fc: pregnant_woman_tone2;
+ 1f930-1f3fd: pregnant_woman_tone3;
+ 1f930-1f3fe: pregnant_woman_tone4;
+ 1f930-1f3ff: pregnant_woman_tone5;
+ 1f931: breast_feeding;
+ 1f931-1f3fb: breast_feeding_tone1;
+ 1f931-1f3fc: breast_feeding_tone2;
+ 1f931-1f3fd: breast_feeding_tone3;
+ 1f931-1f3fe: breast_feeding_tone4;
+ 1f931-1f3ff: breast_feeding_tone5;
+ 1f647: person_bowing;
+ 1f647-1f3fb: person_bowing_tone1;
+ 1f647-1f3fc: person_bowing_tone2;
+ 1f647-1f3fd: person_bowing_tone3;
+ 1f647-1f3fe: person_bowing_tone4;
+ 1f647-1f3ff: person_bowing_tone5;
+ 1f647-200d-2640-fe0f: woman_bowing;
+ 1f647-1f3fb-200d-2640-fe0f: woman_bowing_tone1;
+ 1f647-1f3fc-200d-2640-fe0f: woman_bowing_tone2;
+ 1f647-1f3fd-200d-2640-fe0f: woman_bowing_tone3;
+ 1f647-1f3fe-200d-2640-fe0f: woman_bowing_tone4;
+ 1f647-1f3ff-200d-2640-fe0f: woman_bowing_tone5;
+ 1f647-200d-2642-fe0f: man_bowing;
+ 1f647-1f3fb-200d-2642-fe0f: man_bowing_tone1;
+ 1f647-1f3fc-200d-2642-fe0f: man_bowing_tone2;
+ 1f647-1f3fd-200d-2642-fe0f: man_bowing_tone3;
+ 1f647-1f3fe-200d-2642-fe0f: man_bowing_tone4;
+ 1f647-1f3ff-200d-2642-fe0f: man_bowing_tone5;
+ 1f481: person_tipping_hand;
+ 1f481-1f3fb: person_tipping_hand_tone1;
+ 1f481-1f3fc: person_tipping_hand_tone2;
+ 1f481-1f3fd: person_tipping_hand_tone3;
+ 1f481-1f3fe: person_tipping_hand_tone4;
+ 1f481-1f3ff: person_tipping_hand_tone5;
+ 1f481-200d-2640-fe0f: woman_tipping_hand;
+ 1f481-1f3fb-200d-2640-fe0f: woman_tipping_hand_tone1;
+ 1f481-1f3fc-200d-2640-fe0f: woman_tipping_hand_tone2;
+ 1f481-1f3fd-200d-2640-fe0f: woman_tipping_hand_tone3;
+ 1f481-1f3fe-200d-2640-fe0f: woman_tipping_hand_tone4;
+ 1f481-1f3ff-200d-2640-fe0f: woman_tipping_hand_tone5;
+ 1f481-200d-2642-fe0f: man_tipping_hand;
+ 1f481-1f3fb-200d-2642-fe0f: man_tipping_hand_tone1;
+ 1f481-1f3fc-200d-2642-fe0f: man_tipping_hand_tone2;
+ 1f481-1f3fd-200d-2642-fe0f: man_tipping_hand_tone3;
+ 1f481-1f3fe-200d-2642-fe0f: man_tipping_hand_tone4;
+ 1f481-1f3ff-200d-2642-fe0f: man_tipping_hand_tone5;
+ 1f645: person_gesturing_no;
+ 1f645-1f3fb: person_gesturing_no_tone1;
+ 1f645-1f3fc: person_gesturing_no_tone2;
+ 1f645-1f3fd: person_gesturing_no_tone3;
+ 1f645-1f3fe: person_gesturing_no_tone4;
+ 1f645-1f3ff: person_gesturing_no_tone5;
+ 1f645-200d-2640-fe0f: woman_gesturing_no;
+ 1f645-1f3fb-200d-2640-fe0f: woman_gesturing_no_tone1;
+ 1f645-1f3fc-200d-2640-fe0f: woman_gesturing_no_tone2;
+ 1f645-1f3fd-200d-2640-fe0f: woman_gesturing_no_tone3;
+ 1f645-1f3fe-200d-2640-fe0f: woman_gesturing_no_tone4;
+ 1f645-1f3ff-200d-2640-fe0f: woman_gesturing_no_tone5;
+ 1f645-200d-2642-fe0f: man_gesturing_no;
+ 1f645-1f3fb-200d-2642-fe0f: man_gesturing_no_tone1;
+ 1f645-1f3fc-200d-2642-fe0f: man_gesturing_no_tone2;
+ 1f645-1f3fd-200d-2642-fe0f: man_gesturing_no_tone3;
+ 1f645-1f3fe-200d-2642-fe0f: man_gesturing_no_tone4;
+ 1f645-1f3ff-200d-2642-fe0f: man_gesturing_no_tone5;
+ 1f646: person_gesturing_ok;
+ 1f646-1f3fb: person_gesturing_ok_tone1;
+ 1f646-1f3fc: person_gesturing_ok_tone2;
+ 1f646-1f3fd: person_gesturing_ok_tone3;
+ 1f646-1f3fe: person_gesturing_ok_tone4;
+ 1f646-1f3ff: person_gesturing_ok_tone5;
+ 1f646-200d-2640-fe0f: woman_gesturing_ok;
+ 1f646-1f3fb-200d-2640-fe0f: woman_gesturing_ok_tone1;
+ 1f646-1f3fc-200d-2640-fe0f: woman_gesturing_ok_tone2;
+ 1f646-1f3fd-200d-2640-fe0f: woman_gesturing_ok_tone3;
+ 1f646-1f3fe-200d-2640-fe0f: woman_gesturing_ok_tone4;
+ 1f646-1f3ff-200d-2640-fe0f: woman_gesturing_ok_tone5;
+ 1f646-200d-2642-fe0f: man_gesturing_ok;
+ 1f646-1f3fb-200d-2642-fe0f: man_gesturing_ok_tone1;
+ 1f646-1f3fc-200d-2642-fe0f: man_gesturing_ok_tone2;
+ 1f646-1f3fd-200d-2642-fe0f: man_gesturing_ok_tone3;
+ 1f646-1f3fe-200d-2642-fe0f: man_gesturing_ok_tone4;
+ 1f646-1f3ff-200d-2642-fe0f: man_gesturing_ok_tone5;
+ 1f64b: person_raising_hand;
+ 1f64b-1f3fb: person_raising_hand_tone1;
+ 1f64b-1f3fc: person_raising_hand_tone2;
+ 1f64b-1f3fd: person_raising_hand_tone3;
+ 1f64b-1f3fe: person_raising_hand_tone4;
+ 1f64b-1f3ff: person_raising_hand_tone5;
+ 1f64b-200d-2640-fe0f: woman_raising_hand;
+ 1f64b-1f3fb-200d-2640-fe0f: woman_raising_hand_tone1;
+ 1f64b-1f3fc-200d-2640-fe0f: woman_raising_hand_tone2;
+ 1f64b-1f3fd-200d-2640-fe0f: woman_raising_hand_tone3;
+ 1f64b-1f3fe-200d-2640-fe0f: woman_raising_hand_tone4;
+ 1f64b-1f3ff-200d-2640-fe0f: woman_raising_hand_tone5;
+ 1f64b-200d-2642-fe0f: man_raising_hand;
+ 1f64b-1f3fb-200d-2642-fe0f: man_raising_hand_tone1;
+ 1f64b-1f3fc-200d-2642-fe0f: man_raising_hand_tone2;
+ 1f64b-1f3fd-200d-2642-fe0f: man_raising_hand_tone3;
+ 1f64b-1f3fe-200d-2642-fe0f: man_raising_hand_tone4;
+ 1f64b-1f3ff-200d-2642-fe0f: man_raising_hand_tone5;
+ 1f9cf: deaf_person;
+ 1f9cf-1f3fb: deaf_person_tone1;
+ 1f9cf-1f3fc: deaf_person_tone2;
+ 1f9cf-1f3fd: deaf_person_tone3;
+ 1f9cf-1f3fe: deaf_person_tone4;
+ 1f9cf-1f3ff: deaf_person_tone5;
+ 1f9cf-200d-2640-fe0f: deaf_woman;
+ 1f9cf-1f3fb-200d-2640-fe0f: deaf_woman_tone1;
+ 1f9cf-1f3fc-200d-2640-fe0f: deaf_woman_tone2;
+ 1f9cf-1f3fd-200d-2640-fe0f: deaf_woman_tone3;
+ 1f9cf-1f3fe-200d-2640-fe0f: deaf_woman_tone4;
+ 1f9cf-1f3ff-200d-2640-fe0f: deaf_woman_tone5;
+ 1f9cf-200d-2642-fe0f: deaf_man;
+ 1f9cf-1f3fb-200d-2642-fe0f: deaf_man_tone1;
+ 1f9cf-1f3fc-200d-2642-fe0f: deaf_man_tone2;
+ 1f9cf-1f3fd-200d-2642-fe0f: deaf_man_tone3;
+ 1f9cf-1f3fe-200d-2642-fe0f: deaf_man_tone4;
+ 1f9cf-1f3ff-200d-2642-fe0f: deaf_man_tone5;
+ 1f926: person_facepalming;
+ 1f926-1f3fb: person_facepalming_tone1;
+ 1f926-1f3fc: person_facepalming_tone2;
+ 1f926-1f3fd: person_facepalming_tone3;
+ 1f926-1f3fe: person_facepalming_tone4;
+ 1f926-1f3ff: person_facepalming_tone5;
+ 1f926-200d-2640-fe0f: woman_facepalming;
+ 1f926-1f3fb-200d-2640-fe0f: woman_facepalming_tone1;
+ 1f926-1f3fc-200d-2640-fe0f: woman_facepalming_tone2;
+ 1f926-1f3fd-200d-2640-fe0f: woman_facepalming_tone3;
+ 1f926-1f3fe-200d-2640-fe0f: woman_facepalming_tone4;
+ 1f926-1f3ff-200d-2640-fe0f: woman_facepalming_tone5;
+ 1f926-200d-2642-fe0f: man_facepalming;
+ 1f926-1f3fb-200d-2642-fe0f: man_facepalming_tone1;
+ 1f926-1f3fc-200d-2642-fe0f: man_facepalming_tone2;
+ 1f926-1f3fd-200d-2642-fe0f: man_facepalming_tone3;
+ 1f926-1f3fe-200d-2642-fe0f: man_facepalming_tone4;
+ 1f926-1f3ff-200d-2642-fe0f: man_facepalming_tone5;
+ 1f937: person_shrugging;
+ 1f937-1f3fb: person_shrugging_tone1;
+ 1f937-1f3fc: person_shrugging_tone2;
+ 1f937-1f3fd: person_shrugging_tone3;
+ 1f937-1f3fe: person_shrugging_tone4;
+ 1f937-1f3ff: person_shrugging_tone5;
+ 1f937-200d-2640-fe0f: woman_shrugging;
+ 1f937-1f3fb-200d-2640-fe0f: woman_shrugging_tone1;
+ 1f937-1f3fc-200d-2640-fe0f: woman_shrugging_tone2;
+ 1f937-1f3fd-200d-2640-fe0f: woman_shrugging_tone3;
+ 1f937-1f3fe-200d-2640-fe0f: woman_shrugging_tone4;
+ 1f937-1f3ff-200d-2640-fe0f: woman_shrugging_tone5;
+ 1f937-200d-2642-fe0f: man_shrugging;
+ 1f937-1f3fb-200d-2642-fe0f: man_shrugging_tone1;
+ 1f937-1f3fc-200d-2642-fe0f: man_shrugging_tone2;
+ 1f937-1f3fd-200d-2642-fe0f: man_shrugging_tone3;
+ 1f937-1f3fe-200d-2642-fe0f: man_shrugging_tone4;
+ 1f937-1f3ff-200d-2642-fe0f: man_shrugging_tone5;
+ 1f64e: person_pouting;
+ 1f64e-1f3fb: person_pouting_tone1;
+ 1f64e-1f3fc: person_pouting_tone2;
+ 1f64e-1f3fd: person_pouting_tone3;
+ 1f64e-1f3fe: person_pouting_tone4;
+ 1f64e-1f3ff: person_pouting_tone5;
+ 1f64e-200d-2640-fe0f: woman_pouting;
+ 1f64e-1f3fb-200d-2640-fe0f: woman_pouting_tone1;
+ 1f64e-1f3fc-200d-2640-fe0f: woman_pouting_tone2;
+ 1f64e-1f3fd-200d-2640-fe0f: woman_pouting_tone3;
+ 1f64e-1f3fe-200d-2640-fe0f: woman_pouting_tone4;
+ 1f64e-1f3ff-200d-2640-fe0f: woman_pouting_tone5;
+ 1f64e-200d-2642-fe0f: man_pouting;
+ 1f64e-1f3fb-200d-2642-fe0f: man_pouting_tone1;
+ 1f64e-1f3fc-200d-2642-fe0f: man_pouting_tone2;
+ 1f64e-1f3fd-200d-2642-fe0f: man_pouting_tone3;
+ 1f64e-1f3fe-200d-2642-fe0f: man_pouting_tone4;
+ 1f64e-1f3ff-200d-2642-fe0f: man_pouting_tone5;
+ 1f64d: person_frowning;
+ 1f64d-1f3fb: person_frowning_tone1;
+ 1f64d-1f3fc: person_frowning_tone2;
+ 1f64d-1f3fd: person_frowning_tone3;
+ 1f64d-1f3fe: person_frowning_tone4;
+ 1f64d-1f3ff: person_frowning_tone5;
+ 1f64d-200d-2640-fe0f: woman_frowning;
+ 1f64d-1f3fb-200d-2640-fe0f: woman_frowning_tone1;
+ 1f64d-1f3fc-200d-2640-fe0f: woman_frowning_tone2;
+ 1f64d-1f3fd-200d-2640-fe0f: woman_frowning_tone3;
+ 1f64d-1f3fe-200d-2640-fe0f: woman_frowning_tone4;
+ 1f64d-1f3ff-200d-2640-fe0f: woman_frowning_tone5;
+ 1f64d-200d-2642-fe0f: man_frowning;
+ 1f64d-1f3fb-200d-2642-fe0f: man_frowning_tone1;
+ 1f64d-1f3fc-200d-2642-fe0f: man_frowning_tone2;
+ 1f64d-1f3fd-200d-2642-fe0f: man_frowning_tone3;
+ 1f64d-1f3fe-200d-2642-fe0f: man_frowning_tone4;
+ 1f64d-1f3ff-200d-2642-fe0f: man_frowning_tone5;
+ 1f487: person_getting_haircut;
+ 1f487-1f3fb: person_getting_haircut_tone1;
+ 1f487-1f3fc: person_getting_haircut_tone2;
+ 1f487-1f3fd: person_getting_haircut_tone3;
+ 1f487-1f3fe: person_getting_haircut_tone4;
+ 1f487-1f3ff: person_getting_haircut_tone5;
+ 1f487-200d-2640-fe0f: woman_getting_haircut;
+ 1f487-1f3fb-200d-2640-fe0f: woman_getting_haircut_tone1;
+ 1f487-1f3fc-200d-2640-fe0f: woman_getting_haircut_tone2;
+ 1f487-1f3fd-200d-2640-fe0f: woman_getting_haircut_tone3;
+ 1f487-1f3fe-200d-2640-fe0f: woman_getting_haircut_tone4;
+ 1f487-1f3ff-200d-2640-fe0f: woman_getting_haircut_tone5;
+ 1f487-200d-2642-fe0f: man_getting_haircut;
+ 1f487-1f3fb-200d-2642-fe0f: man_getting_haircut_tone1;
+ 1f487-1f3fc-200d-2642-fe0f: man_getting_haircut_tone2;
+ 1f487-1f3fd-200d-2642-fe0f: man_getting_haircut_tone3;
+ 1f487-1f3fe-200d-2642-fe0f: man_getting_haircut_tone4;
+ 1f487-1f3ff-200d-2642-fe0f: man_getting_haircut_tone5;
+ 1f486: person_getting_massage;
+ 1f486-1f3fb: person_getting_massage_tone1;
+ 1f486-1f3fc: person_getting_massage_tone2;
+ 1f486-1f3fd: person_getting_massage_tone3;
+ 1f486-1f3fe: person_getting_massage_tone4;
+ 1f486-1f3ff: person_getting_massage_tone5;
+ 1f486-200d-2640-fe0f: woman_getting_face_massage;
+ 1f486-1f3fb-200d-2640-fe0f: woman_getting_face_massage_tone1;
+ 1f486-1f3fc-200d-2640-fe0f: woman_getting_face_massage_tone2;
+ 1f486-1f3fd-200d-2640-fe0f: woman_getting_face_massage_tone3;
+ 1f486-1f3fe-200d-2640-fe0f: woman_getting_face_massage_tone4;
+ 1f486-1f3ff-200d-2640-fe0f: woman_getting_face_massage_tone5;
+ 1f486-200d-2642-fe0f: man_getting_face_massage;
+ 1f486-1f3fb-200d-2642-fe0f: man_getting_face_massage_tone1;
+ 1f486-1f3fc-200d-2642-fe0f: man_getting_face_massage_tone2;
+ 1f486-1f3fd-200d-2642-fe0f: man_getting_face_massage_tone3;
+ 1f486-1f3fe-200d-2642-fe0f: man_getting_face_massage_tone4;
+ 1f486-1f3ff-200d-2642-fe0f: man_getting_face_massage_tone5;
+ 1f9d6: person_in_steamy_room;
+ 1f9d6-1f3fb: person_in_steamy_room_tone1;
+ 1f9d6-1f3fc: person_in_steamy_room_tone2;
+ 1f9d6-1f3fd: person_in_steamy_room_tone3;
+ 1f9d6-1f3fe: person_in_steamy_room_tone4;
+ 1f9d6-1f3ff: person_in_steamy_room_tone5;
+ 1f9d6-200d-2640-fe0f: woman_in_steamy_room;
+ 1f9d6-1f3fb-200d-2640-fe0f: woman_in_steamy_room_tone1;
+ 1f9d6-1f3fc-200d-2640-fe0f: woman_in_steamy_room_tone2;
+ 1f9d6-1f3fd-200d-2640-fe0f: woman_in_steamy_room_tone3;
+ 1f9d6-1f3fe-200d-2640-fe0f: woman_in_steamy_room_tone4;
+ 1f9d6-1f3ff-200d-2640-fe0f: woman_in_steamy_room_tone5;
+ 1f9d6-200d-2642-fe0f: man_in_steamy_room;
+ 1f9d6-1f3fb-200d-2642-fe0f: man_in_steamy_room_tone1;
+ 1f9d6-1f3fc-200d-2642-fe0f: man_in_steamy_room_tone2;
+ 1f9d6-1f3fd-200d-2642-fe0f: man_in_steamy_room_tone3;
+ 1f9d6-1f3fe-200d-2642-fe0f: man_in_steamy_room_tone4;
+ 1f9d6-1f3ff-200d-2642-fe0f: man_in_steamy_room_tone5;
+ 1f485: nail_care;
+ 1f485-1f3fb: nail_care_tone1;
+ 1f485-1f3fc: nail_care_tone2;
+ 1f485-1f3fd: nail_care_tone3;
+ 1f485-1f3fe: nail_care_tone4;
+ 1f485-1f3ff: nail_care_tone5;
+ 1f933: selfie;
+ 1f933-1f3fb: selfie_tone1;
+ 1f933-1f3fc: selfie_tone2;
+ 1f933-1f3fd: selfie_tone3;
+ 1f933-1f3fe: selfie_tone4;
+ 1f933-1f3ff: selfie_tone5;
+ 1f483: dancer;
+ 1f483-1f3fb: dancer_tone1;
+ 1f483-1f3fc: dancer_tone2;
+ 1f483-1f3fd: dancer_tone3;
+ 1f483-1f3fe: dancer_tone4;
+ 1f483-1f3ff: dancer_tone5;
+ 1f57a: man_dancing;
+ 1f57a-1f3fb: man_dancing_tone1;
+ 1f57a-1f3fc: man_dancing_tone2;
+ 1f57a-1f3fd: man_dancing_tone3;
+ 1f57a-1f3ff: man_dancing_tone5;
+ 1f57a-1f3fe: man_dancing_tone4;
+ 1f46f: people_with_bunny_ears_partying;
+ 1f46f-200d-2640-fe0f: women_with_bunny_ears_partying;
+ 1f46f-200d-2642-fe0f: men_with_bunny_ears_partying;
+ 1f574: levitate;
+ 1f574-1f3fb: levitate_tone1;
+ 1f574-1f3fc: levitate_tone2;
+ 1f574-1f3fd: levitate_tone3;
+ 1f574-1f3fe: levitate_tone4;
+ 1f574-1f3ff: levitate_tone5;
+ 1f6b6: person_walking;
+ 1f6b6-1f3fb: person_walking_tone1;
+ 1f6b6-1f3fc: person_walking_tone2;
+ 1f6b6-1f3fd: person_walking_tone3;
+ 1f6b6-1f3fe: person_walking_tone4;
+ 1f6b6-1f3ff: person_walking_tone5;
+ 1f6b6-200d-2640-fe0f: woman_walking;
+ 1f6b6-1f3fb-200d-2640-fe0f: woman_walking_tone1;
+ 1f6b6-1f3fc-200d-2640-fe0f: woman_walking_tone2;
+ 1f6b6-1f3fd-200d-2640-fe0f: woman_walking_tone3;
+ 1f6b6-1f3fe-200d-2640-fe0f: woman_walking_tone4;
+ 1f6b6-1f3ff-200d-2640-fe0f: woman_walking_tone5;
+ 1f6b6-200d-2642-fe0f: man_walking;
+ 1f6b6-1f3fb-200d-2642-fe0f: man_walking_tone1;
+ 1f6b6-1f3fc-200d-2642-fe0f: man_walking_tone2;
+ 1f6b6-1f3fd-200d-2642-fe0f: man_walking_tone3;
+ 1f6b6-1f3fe-200d-2642-fe0f: man_walking_tone4;
+ 1f6b6-1f3ff-200d-2642-fe0f: man_walking_tone5;
+ 1f3c3: person_running;
+ 1f3c3-1f3fb: person_running_tone1;
+ 1f3c3-1f3fc: person_running_tone2;
+ 1f3c3-1f3fd: person_running_tone3;
+ 1f3c3-1f3fe: person_running_tone4;
+ 1f3c3-1f3ff: person_running_tone5;
+ 1f3c3-200d-2640-fe0f: woman_running;
+ 1f3c3-1f3fb-200d-2640-fe0f: woman_running_tone1;
+ 1f3c3-1f3fc-200d-2640-fe0f: woman_running_tone2;
+ 1f3c3-1f3fd-200d-2640-fe0f: woman_running_tone3;
+ 1f3c3-1f3fe-200d-2640-fe0f: woman_running_tone4;
+ 1f3c3-1f3ff-200d-2640-fe0f: woman_running_tone5;
+ 1f3c3-200d-2642-fe0f: man_running;
+ 1f3c3-1f3fb-200d-2642-fe0f: man_running_tone1;
+ 1f3c3-1f3fc-200d-2642-fe0f: man_running_tone2;
+ 1f3c3-1f3fd-200d-2642-fe0f: man_running_tone3;
+ 1f3c3-1f3fe-200d-2642-fe0f: man_running_tone4;
+ 1f3c3-1f3ff-200d-2642-fe0f: man_running_tone5;
+ 1f9cd: person_standing;
+ 1f9cd-1f3fb: person_standing_tone1;
+ 1f9cd-1f3fc: person_standing_tone2;
+ 1f9cd-1f3fd: person_standing_tone3;
+ 1f9cd-1f3fe: person_standing_tone4;
+ 1f9cd-1f3ff: person_standing_tone5;
+ 1f9cd-200d-2640-fe0f: woman_standing;
+ 1f9cd-1f3fb-200d-2640-fe0f: woman_standing_tone1;
+ 1f9cd-1f3fc-200d-2640-fe0f: woman_standing_tone2;
+ 1f9cd-1f3fd-200d-2640-fe0f: woman_standing_tone3;
+ 1f9cd-1f3fe-200d-2640-fe0f: woman_standing_tone4;
+ 1f9cd-1f3ff-200d-2640-fe0f: woman_standing_tone5;
+ 1f9cd-200d-2642-fe0f: man_standing;
+ 1f9cd-1f3fb-200d-2642-fe0f: man_standing_tone1;
+ 1f9cd-1f3fc-200d-2642-fe0f: man_standing_tone2;
+ 1f9cd-1f3fd-200d-2642-fe0f: man_standing_tone3;
+ 1f9cd-1f3fe-200d-2642-fe0f: man_standing_tone4;
+ 1f9cd-1f3ff-200d-2642-fe0f: man_standing_tone5;
+ 1f9ce: person_kneeling;
+ 1f9ce-1f3fb: person_kneeling_tone1;
+ 1f9ce-1f3fc: person_kneeling_tone2;
+ 1f9ce-1f3fd: person_kneeling_tone3;
+ 1f9ce-1f3fe: person_kneeling_tone4;
+ 1f9ce-1f3ff: person_kneeling_tone5;
+ 1f9ce-200d-2640-fe0f: woman_kneeling;
+ 1f9ce-1f3fb-200d-2640-fe0f: woman_kneeling_tone1;
+ 1f9ce-1f3fc-200d-2640-fe0f: woman_kneeling_tone2;
+ 1f9ce-1f3fd-200d-2640-fe0f: woman_kneeling_tone3;
+ 1f9ce-1f3fe-200d-2640-fe0f: woman_kneeling_tone4;
+ 1f9ce-1f3ff-200d-2640-fe0f: woman_kneeling_tone5;
+ 1f9ce-200d-2642-fe0f: man_kneeling;
+ 1f9ce-1f3fb-200d-2642-fe0f: man_kneeling_tone1;
+ 1f9ce-1f3fc-200d-2642-fe0f: man_kneeling_tone2;
+ 1f9ce-1f3fd-200d-2642-fe0f: man_kneeling_tone3;
+ 1f9ce-1f3fe-200d-2642-fe0f: man_kneeling_tone4;
+ 1f9ce-1f3ff-200d-2642-fe0f: man_kneeling_tone5;
+ 1f469-200d-1f9af: woman_with_probing_cane;
+ 1f469-1f3fb-200d-1f9af: woman_with_probing_cane_tone1;
+ 1f469-1f3fc-200d-1f9af: woman_with_probing_cane_tone2;
+ 1f469-1f3fd-200d-1f9af: woman_with_probing_cane_tone3;
+ 1f469-1f3fe-200d-1f9af: woman_with_probing_cane_tone4;
+ 1f469-1f3ff-200d-1f9af: woman_with_probing_cane_tone5;
+ 1f468-200d-1f9af: man_with_probing_cane;
+ 1f468-1f3fb-200d-1f9af: man_with_probing_cane_tone1;
+ 1f468-1f3fc-200d-1f9af: man_with_probing_cane_tone2;
+ 1f468-1f3fd-200d-1f9af: man_with_probing_cane_tone3;
+ 1f468-1f3fe-200d-1f9af: man_with_probing_cane_tone4;
+ 1f468-1f3ff-200d-1f9af: man_with_probing_cane_tone5;
+ 1f469-200d-1f9bc: woman_in_motorized_wheelchair;
+ 1f469-1f3fb-200d-1f9bc: woman_in_motorized_wheelchair_tone1;
+ 1f469-1f3fc-200d-1f9bc: woman_in_motorized_wheelchair_tone2;
+ 1f469-1f3fd-200d-1f9bc: woman_in_motorized_wheelchair_tone3;
+ 1f469-1f3fe-200d-1f9bc: woman_in_motorized_wheelchair_tone4;
+ 1f469-1f3ff-200d-1f9bc: woman_in_motorized_wheelchair_tone5;
+ 1f468-200d-1f9bc: man_in_motorized_wheelchair;
+ 1f468-1f3fb-200d-1f9bc: man_in_motorized_wheelchair_tone1;
+ 1f468-1f3fc-200d-1f9bc: man_in_motorized_wheelchair_tone2;
+ 1f468-1f3fd-200d-1f9bc: man_in_motorized_wheelchair_tone3;
+ 1f468-1f3fe-200d-1f9bc: man_in_motorized_wheelchair_tone4;
+ 1f468-1f3ff-200d-1f9bc: man_in_motorized_wheelchair_tone5;
+ 1f469-200d-1f9bd: woman_in_manual_wheelchair;
+ 1f469-1f3fb-200d-1f9bd: woman_in_manual_wheelchair_tone1;
+ 1f469-1f3fc-200d-1f9bd: woman_in_manual_wheelchair_tone2;
+ 1f469-1f3fd-200d-1f9bd: woman_in_manual_wheelchair_tone3;
+ 1f469-1f3fe-200d-1f9bd: woman_in_manual_wheelchair_tone4;
+ 1f469-1f3ff-200d-1f9bd: woman_in_manual_wheelchair_tone5;
+ 1f468-200d-1f9bd: man_in_manual_wheelchair;
+ 1f468-1f3fb-200d-1f9bd: man_in_manual_wheelchair_tone1;
+ 1f468-1f3fc-200d-1f9bd: man_in_manual_wheelchair_tone2;
+ 1f468-1f3fd-200d-1f9bd: man_in_manual_wheelchair_tone3;
+ 1f468-1f3fe-200d-1f9bd: man_in_manual_wheelchair_tone4;
+ 1f468-1f3ff-200d-1f9bd: man_in_manual_wheelchair_tone5;
+ 1f9d1-200d-1f91d-200d-1f9d1: people_holding_hands;
+ 1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone1;
+ 1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone2;
+ 1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone2_tone1;
+ 1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd: people_holding_hands_tone3;
+ 1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone3_tone1;
+ 1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone3_tone2;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe: people_holding_hands_tone4;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone4_tone1;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone4_tone2;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd: people_holding_hands_tone4_tone3;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff: people_holding_hands_tone5;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone5_tone1;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone5_tone2;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd: people_holding_hands_tone5_tone3;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe: people_holding_hands_tone5_tone4;
+ 1f46b: couple;
+ 1f46b-1f3fb: woman_and_man_holding_hands_tone1;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone1_tone2;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone1_tone3;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone1_tone4;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone1_tone5;
+ 1f46b-1f3fc: woman_and_man_holding_hands_tone2;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone2_tone1;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone2_tone3;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone2_tone4;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone2_tone5;
+ 1f46b-1f3fd: woman_and_man_holding_hands_tone3;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone3_tone1;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone3_tone2;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone3_tone4;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone3_tone5;
+ 1f46b-1f3fe: woman_and_man_holding_hands_tone4;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone4_tone1;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone4_tone2;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone4_tone3;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone4_tone5;
+ 1f46b-1f3ff: woman_and_man_holding_hands_tone5;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone5_tone1;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone5_tone2;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone5_tone3;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone5_tone4;
+ 1f46d: two_women_holding_hands;
+ 1f46d-1f3fb: women_holding_hands_tone1;
+ 1f46d-1f3fc: women_holding_hands_tone2;
+ 1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone2_tone1;
+ 1f46d-1f3fd: women_holding_hands_tone3;
+ 1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone3_tone1;
+ 1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc: women_holding_hands_tone3_tone2;
+ 1f46d-1f3fe: women_holding_hands_tone4;
+ 1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone4_tone1;
+ 1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc: women_holding_hands_tone4_tone2;
+ 1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd: women_holding_hands_tone4_tone3;
+ 1f46d-1f3ff: women_holding_hands_tone5;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone5_tone1;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc: women_holding_hands_tone5_tone2;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd: women_holding_hands_tone5_tone3;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe: women_holding_hands_tone5_tone4;
+ 1f46c: two_men_holding_hands;
+ 1f46c-1f3fb: men_holding_hands_tone1;
+ 1f46c-1f3fc: men_holding_hands_tone2;
+ 1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone2_tone1;
+ 1f46c-1f3fd: men_holding_hands_tone3;
+ 1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone3_tone1;
+ 1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc: men_holding_hands_tone3_tone2;
+ 1f46c-1f3fe: men_holding_hands_tone4;
+ 1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone4_tone1;
+ 1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc: men_holding_hands_tone4_tone2;
+ 1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd: men_holding_hands_tone4_tone3;
+ 1f46c-1f3ff: men_holding_hands_tone5;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone5_tone1;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc: men_holding_hands_tone5_tone2;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd: men_holding_hands_tone5_tone3;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe: men_holding_hands_tone5_tone4;
+ 1f491: couple_with_heart;
+ 1f469-200d-2764-fe0f-200d-1f468: couple_with_heart_woman_man;
+ 1f469-200d-2764-fe0f-200d-1f469: couple_ww;
+ 1f468-200d-2764-fe0f-200d-1f468: couple_mm;
+ 1f48f: couplekiss;
+ 1f469-200d-2764-fe0f-200d-1f48b-200d-1f468: kiss_woman_man;
+ 1f469-200d-2764-fe0f-200d-1f48b-200d-1f469: kiss_ww;
+ 1f468-200d-2764-fe0f-200d-1f48b-200d-1f468: kiss_mm;
+ 1f46a: family;
+ 1f468-200d-1f469-200d-1f466: family_man_woman_boy;
+ 1f468-200d-1f469-200d-1f467: family_mwg;
+ 1f468-200d-1f469-200d-1f467-200d-1f466: family_mwgb;
+ 1f468-200d-1f469-200d-1f466-200d-1f466: family_mwbb;
+ 1f468-200d-1f469-200d-1f467-200d-1f467: family_mwgg;
+ 1f469-200d-1f469-200d-1f466: family_wwb;
+ 1f469-200d-1f469-200d-1f467: family_wwg;
+ 1f469-200d-1f469-200d-1f467-200d-1f466: family_wwgb;
+ 1f469-200d-1f469-200d-1f466-200d-1f466: family_wwbb;
+ 1f469-200d-1f469-200d-1f467-200d-1f467: family_wwgg;
+ 1f468-200d-1f468-200d-1f466: family_mmb;
+ 1f468-200d-1f468-200d-1f467: family_mmg;
+ 1f468-200d-1f468-200d-1f467-200d-1f466: family_mmgb;
+ 1f468-200d-1f468-200d-1f466-200d-1f466: family_mmbb;
+ 1f468-200d-1f468-200d-1f467-200d-1f467: family_mmgg;
+ 1f469-200d-1f466: family_woman_boy;
+ 1f469-200d-1f467: family_woman_girl;
+ 1f469-200d-1f467-200d-1f466: family_woman_girl_boy;
+ 1f469-200d-1f466-200d-1f466: family_woman_boy_boy;
+ 1f469-200d-1f467-200d-1f467: family_woman_girl_girl;
+ 1f468-200d-1f466: family_man_boy;
+ 1f468-200d-1f467: family_man_girl;
+ 1f468-200d-1f467-200d-1f466: family_man_girl_boy;
+ 1f468-200d-1f466-200d-1f466: family_man_boy_boy;
+ 1f468-200d-1f467-200d-1f467: family_man_girl_girl;
+ 1f9f6: yarn;
+ 1f9f5: thread;
+ 1f9e5: coat;
+ 1f97c: lab_coat;
+ 1f9ba: safety_vest;
+ 1f45a: womans_clothes;
+ 1f455: shirt;
+ 1f456: jeans;
+ 1fa73: shorts;
+ 1f454: necktie;
+ 1f457: dress;
+ 1f459: bikini;
+ 1fa71: one_piece_swimsuit;
+ 1f458: kimono;
+ 1f97b: sari;
+ 1f97f: womans_flat_shoe;
+ 1f460: high_heel;
+ 1f461: sandal;
+ 1f462: boot;
+ 1fa70: ballet_shoes;
+ 1f45e: mans_shoe;
+ 1f45f: athletic_shoe;
+ 1f97e: hiking_boot;
+ 1fa72: briefs;
+ 1f9e6: socks;
+ 1f9e4: gloves;
+ 1f9e3: scarf;
+ 1f3a9: tophat;
+ 1f9e2: billed_cap;
+ 1f452: womans_hat;
+ 1f393: mortar_board;
+ 26d1: helmet_with_cross;
+ 1f451: crown;
+ 1f48d: ring;
+ 1f45d: pouch;
+ 1f45b: purse;
+ 1f45c: handbag;
+ 1f4bc: briefcase;
+ 1f392: school_satchel;
+ 1f9f3: luggage;
+ 1f453: eyeglasses;
+ 1f576: dark_sunglasses;
+ 1f97d: goggles;
+ 1f93f: diving_mask;
+ 1f302: closed_umbrella;
+ 1f9b1: curly_haired;
+ 1f9b0: red_haired;
+ 1f9b3: white_haired;
+ 1f9b2: bald;
+ 1f697: red_car;
+ 1f695: taxi;
+ 1f699: blue_car;
+ 1f68c: bus;
+ 1f68e: trolleybus;
+ 1f3ce: race_car;
+ 1f693: police_car;
+ 1f691: ambulance;
+ 1f692: fire_engine;
+ 1f690: minibus;
+ 1f69a: truck;
+ 1f69b: articulated_lorry;
+ 1f69c: tractor;
+ 1f6fa: auto_rickshaw;
+ 1f6f5: motor_scooter;
+ 1f3cd: motorcycle;
+ 1f6f4: scooter;
+ 1f6b2: bike;
+ 1f9bc: motorized_wheelchair;
+ 1f9bd: manual_wheelchair;
+ 1f6a8: rotating_light;
+ 1f694: oncoming_police_car;
+ 1f68d: oncoming_bus;
+ 1f698: oncoming_automobile;
+ 1f696: oncoming_taxi;
+ 1f6a1: aerial_tramway;
+ 1f6a0: mountain_cableway;
+ 1f69f: suspension_railway;
+ 1f683: railway_car;
+ 1f68b: train;
+ 1f69e: mountain_railway;
+ 1f69d: monorail;
+ 1f684: bullettrain_side;
+ 1f685: bullettrain_front;
+ 1f688: light_rail;
+ 1f682: steam_locomotive;
+ 1f686: train2;
+ 1f687: metro;
+ 1f68a: tram;
+ 1f689: station;
+ 1f6eb: airplane_departure;
+ 1f6ec: airplane_arriving;
+ 1f6e9: airplane_small;
+ 1f4ba: seat;
+ 1f6f0: satellite_orbital;
+ 1f680: rocket;
+ 1f6f8: flying_saucer;
+ 1f681: helicopter;
+ 1f6f6: canoe;
+ 26f5: sailboat;
+ 1f6a4: speedboat;
+ 1f6e5: motorboat;
+ 1f6f3: cruise_ship;
+ 26f4: ferry;
+ 1f6a2: ship;
+ 26fd: fuelpump;
+ 1f6a7: construction;
+ 1f6a6: vertical_traffic_light;
+ 1f6a5: traffic_light;
+ 1f68f: busstop;
+ 1f5fa: map;
+ 1f5ff: moyai;
+ 1f5fd: statue_of_liberty;
+ 1f5fc: tokyo_tower;
+ 1f3f0: european_castle;
+ 1f3ef: japanese_castle;
+ 1f3df: stadium;
+ 1f3a1: ferris_wheel;
+ 1f3a2: roller_coaster;
+ 1f3a0: carousel_horse;
+ 26f2: fountain;
+ 26f1: beach_umbrella;
+ 1f3d6: beach;
+ 1f3dd: island;
+ 1f3dc: desert;
+ 1f30b: volcano;
+ 26f0: mountain;
+ 1f3d4: mountain_snow;
+ 1f5fb: mount_fuji;
+ 1f3d5: camping;
+ 26fa: tent;
+ 1f3e0: house;
+ 1f3e1: house_with_garden;
+ 1f3d8: homes;
+ 1f3da: house_abandoned;
+ 1f3d7: construction_site;
+ 1f3ed: factory;
+ 1f3e2: office;
+ 1f3ec: department_store;
+ 1f3e3: post_office;
+ 1f3e4: european_post_office;
+ 1f3e5: hospital;
+ 1f3e6: bank;
+ 1f3e8: hotel;
+ 1f3ea: convenience_store;
+ 1f3eb: school;
+ 1f3e9: love_hotel;
+ 1f492: wedding;
+ 1f3db: classical_building;
+ 26ea: church;
+ 1f54c: mosque;
+ 1f6d5: hindu_temple;
+ 1f54d: synagogue;
+ 1f54b: kaaba;
+ 26e9: shinto_shrine;
+ 1f6e4: railway_track;
+ 1f6e3: motorway;
+ 1f5fe: japan;
+ 1f391: rice_scene;
+ 1f3de: park;
+ 1f305: sunrise;
+ 1f304: sunrise_over_mountains;
+ 1f320: stars;
+ 1f387: sparkler;
+ 1f386: fireworks;
+ 1f307: city_sunset;
+ 1f306: city_dusk;
+ 1f3d9: cityscape;
+ 1f303: night_with_stars;
+ 1f30c: milky_way;
+ 1f309: bridge_at_night;
+ 1f301: foggy;
+ 1f1ff: regional_indicator_z;
+ 1f1fe: regional_indicator_y;
+ 1f1fd: regional_indicator_x;
+ 1f1fc: regional_indicator_w;
+ 1f1fb: regional_indicator_v;
+ 1f1fa: regional_indicator_u;
+ 1f1f9: regional_indicator_t;
+ 1f1f8: regional_indicator_s;
+ 1f1f7: regional_indicator_r;
+ 1f1f6: regional_indicator_q;
+ 1f1f5: regional_indicator_p;
+ 1f1f4: regional_indicator_o;
+ 1f1f3: regional_indicator_n;
+ 1f1f2: regional_indicator_m;
+ 1f1f1: regional_indicator_l;
+ 1f1f0: regional_indicator_k;
+ 1f1ef: regional_indicator_j;
+ 1f1ee: regional_indicator_i;
+ 1f1ed: regional_indicator_h;
+ 1f1ec: regional_indicator_g;
+ 1f1eb: regional_indicator_f;
+ 1f1ea: regional_indicator_e;
+ 1f1e9: regional_indicator_d;
+ 1f1e8: regional_indicator_c;
+ 1f1e7: regional_indicator_b;
+ 1f1e6: regional_indicator_a;
+ 1f3f3: flag_white;
+ 1f3f4: flag_black;
+ 1f3c1: checkered_flag;
+ 1f6a9: triangular_flag_on_post;
+ 1f3f3-fe0f-200d-1f308: rainbow_flag;
+ 1f3f4-200d-2620-fe0f: pirate_flag;
+ 1f1e6-1f1eb: flag_af;
+ 1f1e6-1f1fd: flag_ax;
+ 1f1e6-1f1f1: flag_al;
+ 1f1e9-1f1ff: flag_dz;
+ 1f1e6-1f1f8: flag_as;
+ 1f1e6-1f1e9: flag_ad;
+ 1f1e6-1f1f4: flag_ao;
+ 1f1e6-1f1ee: flag_ai;
+ 1f1e6-1f1f6: flag_aq;
+ 1f1e6-1f1ec: flag_ag;
+ 1f1e6-1f1f7: flag_ar;
+ 1f1e6-1f1f2: flag_am;
+ 1f1e6-1f1fc: flag_aw;
+ 1f1e6-1f1fa: flag_au;
+ 1f1e6-1f1f9: flag_at;
+ 1f1e6-1f1ff: flag_az;
+ 1f1e7-1f1f8: flag_bs;
+ 1f1e7-1f1ed: flag_bh;
+ 1f1e7-1f1e9: flag_bd;
+ 1f1e7-1f1e7: flag_bb;
+ 1f1e7-1f1fe: flag_by;
+ 1f1e7-1f1ea: flag_be;
+ 1f1e7-1f1ff: flag_bz;
+ 1f1e7-1f1ef: flag_bj;
+ 1f1e7-1f1f2: flag_bm;
+ 1f1e7-1f1f9: flag_bt;
+ 1f1e7-1f1f4: flag_bo;
+ 1f1e7-1f1e6: flag_ba;
+ 1f1e7-1f1fc: flag_bw;
+ 1f1e7-1f1f7: flag_br;
+ 1f1ee-1f1f4: flag_io;
+ 1f1fb-1f1ec: flag_vg;
+ 1f1e7-1f1f3: flag_bn;
+ 1f1e7-1f1ec: flag_bg;
+ 1f1e7-1f1eb: flag_bf;
+ 1f1e7-1f1ee: flag_bi;
+ 1f1f0-1f1ed: flag_kh;
+ 1f1e8-1f1f2: flag_cm;
+ 1f1e8-1f1e6: flag_ca;
+ 1f1ee-1f1e8: flag_ic;
+ 1f1e8-1f1fb: flag_cv;
+ 1f1e7-1f1f6: flag_bq;
+ 1f1f0-1f1fe: flag_ky;
+ 1f1e8-1f1eb: flag_cf;
+ 1f1f9-1f1e9: flag_td;
+ 1f1e8-1f1f1: flag_cl;
+ 1f1e8-1f1f3: flag_cn;
+ 1f1e8-1f1fd: flag_cx;
+ 1f1e8-1f1e8: flag_cc;
+ 1f1e8-1f1f4: flag_co;
+ 1f1f0-1f1f2: flag_km;
+ 1f1e8-1f1ec: flag_cg;
+ 1f1e8-1f1e9: flag_cd;
+ 1f1e8-1f1f0: flag_ck;
+ 1f1e8-1f1f7: flag_cr;
+ 1f1e8-1f1ee: flag_ci;
+ 1f1ed-1f1f7: flag_hr;
+ 1f1e8-1f1fa: flag_cu;
+ 1f1e8-1f1fc: flag_cw;
+ 1f1e8-1f1fe: flag_cy;
+ 1f1e8-1f1ff: flag_cz;
+ 1f1e9-1f1f0: flag_dk;
+ 1f1e9-1f1ef: flag_dj;
+ 1f1e9-1f1f2: flag_dm;
+ 1f1e9-1f1f4: flag_do;
+ 1f1ea-1f1e8: flag_ec;
+ 1f1ea-1f1ec: flag_eg;
+ 1f1f8-1f1fb: flag_sv;
+ 1f1ec-1f1f6: flag_gq;
+ 1f1ea-1f1f7: flag_er;
+ 1f1ea-1f1ea: flag_ee;
+ 1f1ea-1f1f9: flag_et;
+ 1f1ea-1f1fa: flag_eu;
+ 1f1eb-1f1f0: flag_fk;
+ 1f1eb-1f1f4: flag_fo;
+ 1f1eb-1f1ef: flag_fj;
+ 1f1eb-1f1ee: flag_fi;
+ 1f1eb-1f1f7: flag_fr;
+ 1f1ec-1f1eb: flag_gf;
+ 1f1f5-1f1eb: flag_pf;
+ 1f1f9-1f1eb: flag_tf;
+ 1f1ec-1f1e6: flag_ga;
+ 1f1ec-1f1f2: flag_gm;
+ 1f1ec-1f1ea: flag_ge;
+ 1f1e9-1f1ea: flag_de;
+ 1f1ec-1f1ed: flag_gh;
+ 1f1ec-1f1ee: flag_gi;
+ 1f1ec-1f1f7: flag_gr;
+ 1f1ec-1f1f1: flag_gl;
+ 1f1ec-1f1e9: flag_gd;
+ 1f1ec-1f1f5: flag_gp;
+ 1f1ec-1f1fa: flag_gu;
+ 1f1ec-1f1f9: flag_gt;
+ 1f1ec-1f1ec: flag_gg;
+ 1f1ec-1f1f3: flag_gn;
+ 1f1ec-1f1fc: flag_gw;
+ 1f1ec-1f1fe: flag_gy;
+ 1f1ed-1f1f9: flag_ht;
+ 1f1ed-1f1f3: flag_hn;
+ 1f1ed-1f1f0: flag_hk;
+ 1f1ed-1f1fa: flag_hu;
+ 1f1ee-1f1f8: flag_is;
+ 1f1ee-1f1f3: flag_in;
+ 1f1ee-1f1e9: flag_id;
+ 1f1ee-1f1f7: flag_ir;
+ 1f1ee-1f1f6: flag_iq;
+ 1f1ee-1f1ea: flag_ie;
+ 1f1ee-1f1f2: flag_im;
+ 1f1ee-1f1f1: flag_il;
+ 1f1ee-1f1f9: flag_it;
+ 1f1ef-1f1f2: flag_jm;
+ 1f1ef-1f1f5: flag_jp;
+ 1f38c: crossed_flags;
+ 1f1ef-1f1ea: flag_je;
+ 1f1ef-1f1f4: flag_jo;
+ 1f1f0-1f1ff: flag_kz;
+ 1f1f0-1f1ea: flag_ke;
+ 1f1f0-1f1ee: flag_ki;
+ 1f1fd-1f1f0: flag_xk;
+ 1f1f0-1f1fc: flag_kw;
+ 1f1f0-1f1ec: flag_kg;
+ 1f1f1-1f1e6: flag_la;
+ 1f1f1-1f1fb: flag_lv;
+ 1f1f1-1f1e7: flag_lb;
+ 1f1f1-1f1f8: flag_ls;
+ 1f1f1-1f1f7: flag_lr;
+ 1f1f1-1f1fe: flag_ly;
+ 1f1f1-1f1ee: flag_li;
+ 1f1f1-1f1f9: flag_lt;
+ 1f1f1-1f1fa: flag_lu;
+ 1f1f2-1f1f4: flag_mo;
+ 1f1f2-1f1f0: flag_mk;
+ 1f1f2-1f1ec: flag_mg;
+ 1f1f2-1f1fc: flag_mw;
+ 1f1f2-1f1fe: flag_my;
+ 1f1f2-1f1fb: flag_mv;
+ 1f1f2-1f1f1: flag_ml;
+ 1f1f2-1f1f9: flag_mt;
+ 1f1f2-1f1ed: flag_mh;
+ 1f1f2-1f1f6: flag_mq;
+ 1f1f2-1f1f7: flag_mr;
+ 1f1f2-1f1fa: flag_mu;
+ 1f1fe-1f1f9: flag_yt;
+ 1f1f2-1f1fd: flag_mx;
+ 1f1eb-1f1f2: flag_fm;
+ 1f1f2-1f1e9: flag_md;
+ 1f1f2-1f1e8: flag_mc;
+ 1f1f2-1f1f3: flag_mn;
+ 1f1f2-1f1ea: flag_me;
+ 1f1f2-1f1f8: flag_ms;
+ 1f1f2-1f1e6: flag_ma;
+ 1f1f2-1f1ff: flag_mz;
+ 1f1f2-1f1f2: flag_mm;
+ 1f1f3-1f1e6: flag_na;
+ 1f1f3-1f1f7: flag_nr;
+ 1f1f3-1f1f5: flag_np;
+ 1f1f3-1f1f1: flag_nl;
+ 1f1f3-1f1e8: flag_nc;
+ 1f1f3-1f1ff: flag_nz;
+ 1f1f3-1f1ee: flag_ni;
+ 1f1f3-1f1ea: flag_ne;
+ 1f1f3-1f1ec: flag_ng;
+ 1f1f3-1f1fa: flag_nu;
+ 1f1f3-1f1eb: flag_nf;
+ 1f1f0-1f1f5: flag_kp;
+ 1f1f2-1f1f5: flag_mp;
+ 1f1f3-1f1f4: flag_no;
+ 1f1f4-1f1f2: flag_om;
+ 1f1f5-1f1f0: flag_pk;
+ 1f1f5-1f1fc: flag_pw;
+ 1f1f5-1f1f8: flag_ps;
+ 1f1f5-1f1e6: flag_pa;
+ 1f1f5-1f1ec: flag_pg;
+ 1f1f5-1f1fe: flag_py;
+ 1f1f5-1f1ea: flag_pe;
+ 1f1f5-1f1ed: flag_ph;
+ 1f1f5-1f1f3: flag_pn;
+ 1f1f5-1f1f1: flag_pl;
+ 1f1f5-1f1f9: flag_pt;
+ 1f1f5-1f1f7: flag_pr;
+ 1f1f6-1f1e6: flag_qa;
+ 1f1f7-1f1ea: flag_re;
+ 1f1f7-1f1f4: flag_ro;
+ 1f1f7-1f1fa: flag_ru;
+ 1f1f7-1f1fc: flag_rw;
+ 1f1fc-1f1f8: flag_ws;
+ 1f1f8-1f1f2: flag_sm;
+ 1f1f8-1f1f9: flag_st;
+ 1f1f8-1f1e6: flag_sa;
+ 1f1f8-1f1f3: flag_sn;
+ 1f1f7-1f1f8: flag_rs;
+ 1f1f8-1f1e8: flag_sc;
+ 1f1f8-1f1f1: flag_sl;
+ 1f1f8-1f1ec: flag_sg;
+ 1f1f8-1f1fd: flag_sx;
+ 1f1f8-1f1f0: flag_sk;
+ 1f1f8-1f1ee: flag_si;
+ 1f1ec-1f1f8: flag_gs;
+ 1f1f8-1f1e7: flag_sb;
+ 1f1f8-1f1f4: flag_so;
+ 1f1ff-1f1e6: flag_za;
+ 1f1f0-1f1f7: flag_kr;
+ 1f1f8-1f1f8: flag_ss;
+ 1f1ea-1f1f8: flag_es;
+ 1f1f1-1f1f0: flag_lk;
+ 1f1e7-1f1f1: flag_bl;
+ 1f1f8-1f1ed: flag_sh;
+ 1f1f0-1f1f3: flag_kn;
+ 1f1f1-1f1e8: flag_lc;
+ 1f1f5-1f1f2: flag_pm;
+ 1f1fb-1f1e8: flag_vc;
+ 1f1f8-1f1e9: flag_sd;
+ 1f1f8-1f1f7: flag_sr;
+ 1f1f8-1f1ff: flag_sz;
+ 1f1f8-1f1ea: flag_se;
+ 1f1e8-1f1ed: flag_ch;
+ 1f1f8-1f1fe: flag_sy;
+ 1f1f9-1f1fc: flag_tw;
+ 1f1f9-1f1ef: flag_tj;
+ 1f1f9-1f1ff: flag_tz;
+ 1f1f9-1f1ed: flag_th;
+ 1f1f9-1f1f1: flag_tl;
+ 1f1f9-1f1ec: flag_tg;
+ 1f1f9-1f1f0: flag_tk;
+ 1f1f9-1f1f4: flag_to;
+ 1f1f9-1f1f9: flag_tt;
+ 1f1f9-1f1f3: flag_tn;
+ 1f1f9-1f1f7: flag_tr;
+ 1f1f9-1f1f2: flag_tm;
+ 1f1f9-1f1e8: flag_tc;
+ 1f1fb-1f1ee: flag_vi;
+ 1f1f9-1f1fb: flag_tv;
+ 1f1fa-1f1ec: flag_ug;
+ 1f1fa-1f1e6: flag_ua;
+ 1f1e6-1f1ea: flag_ae;
+ 1f1ec-1f1e7: flag_gb;
+ 1f3f4-e0067-e0062-e0065-e006e-e0067-e007f: england;
+ 1f3f4-e0067-e0062-e0073-e0063-e0074-e007f: scotland;
+ 1f3f4-e0067-e0062-e0077-e006c-e0073-e007f: wales;
+ 1f1fa-1f1f8: flag_us;
+ 1f1fa-1f1fe: flag_uy;
+ 1f1fa-1f1ff: flag_uz;
+ 1f1fb-1f1fa: flag_vu;
+ 1f1fb-1f1e6: flag_va;
+ 1f1fb-1f1ea: flag_ve;
+ 1f1fb-1f1f3: flag_vn;
+ 1f1fc-1f1eb: flag_wf;
+ 1f1ea-1f1ed: flag_eh;
+ 1f1fe-1f1ea: flag_ye;
+ 1f1ff-1f1f2: flag_zm;
+ 1f1ff-1f1fc: flag_zw;
+ 1f1e6-1f1e8: flag_ac;
+ 1f1e7-1f1fb: flag_bv;
+ 1f1e8-1f1f5: flag_cp;
+ 1f1ea-1f1e6: flag_ea;
+ 1f1e9-1f1ec: flag_dg;
+ 1f1ed-1f1f2: flag_hm;
+ 1f1f2-1f1eb: flag_mf;
+ 1f1f8-1f1ef: flag_sj;
+ 1f1f9-1f1e6: flag_ta;
+ 1f1fa-1f1f2: flag_um;
+ 1f1fa-1f1f3: united_nations;
+ 1f3fb: tone1;
+ 1f3fc: tone2;
+ 1f3fd: tone3;
+ 1f3fe: tone4;
+ 1f3ff: tone5;
+};
+
+@size-map: {
+ small: 1;
+ medium: 2;
+ large: 4;
+ big: 5;
+};
+
+each(@size-map, {
+ em[data-emoji].@{key} {
+ font-size: 1.5em * @value;
+ vertical-align: middle;
+ }
+});
+
+each(@emoji-map,{
+ & when (@variationEmojiColons) {
+ em[data-emoji=":@{value}:"]:before {
+ background-image: url("@{emojiPath}@{key}.@{emojiFileType}");
+ }
+ em[data-emoji="@{value}"]:before:extend(em[data-emoji=":@{value}:"]:before) when (@variationEmojiNoColons) {}
+ }
+ em[data-emoji="@{value}"]:before when (@variationEmojiNoColons) and not (@variationEmojiColons) {
+ background-image: url("@{emojiPath}@{key}.@{emojiFileType}");
+ }
+});
diff --git a/assets/semantic/src/themes/default/elements/emoji.variables b/assets/semantic/src/themes/default/elements/emoji.variables
new file mode 100644
index 0000000..92444c4
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/emoji.variables
@@ -0,0 +1,18 @@
+/*******************************
+ Emoji
+*******************************/
+
+/*--------------
+ Path
+---------------*/
+@emojiPath: "https://twemoji.maxcdn.com/v/latest/svg/";
+@emojiFileType: "svg";
+
+/*--------------
+ Definition
+---------------*/
+
+/* Emoji Variables */
+@opacity: 1;
+@loadingDuration: 2s;
+@emojiLineHeight: @headerLineHeight;
diff --git a/assets/semantic/src/themes/default/elements/flag.overrides b/assets/semantic/src/themes/default/elements/flag.overrides
new file mode 100644
index 0000000..37303a0
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/flag.overrides
@@ -0,0 +1,994 @@
+/* Flag Sprite Based On http://www.famfamfam.com/lab/icons/flags/ */
+
+/*******************************
+ Theme Overrides
+*******************************/
+/*rtl:begin:ignore*/
+
+i.flag.ad:before,
+i.flag.andorra:before {
+ background-position: 0 0;
+}
+i.flag.ae:before,
+i.flag.united.arab.emirates:before,
+i.flag.uae:before {
+ background-position: 0 -26px;
+}
+i.flag.af:before,
+i.flag.afghanistan:before {
+ background-position: 0 -52px;
+}
+i.flag.ag:before,
+i.flag.antigua:before {
+ background-position: 0 -78px;
+}
+i.flag.ai:before,
+i.flag.anguilla:before {
+ background-position: 0 -104px;
+}
+i.flag.al:before,
+i.flag.albania:before {
+ background-position: 0 -130px;
+}
+i.flag.am:before,
+i.flag.armenia:before {
+ background-position: 0 -156px;
+}
+i.flag.an:before,
+i.flag.netherlands.antilles:before {
+ background-position: 0 -182px;
+}
+i.flag.ao:before,
+i.flag.angola:before {
+ background-position: 0 -208px;
+}
+i.flag.ar:before,
+i.flag.argentina:before {
+ background-position: 0 -234px;
+}
+i.flag.as:before,
+i.flag.american.samoa:before {
+ background-position: 0 -260px;
+}
+i.flag.at:before,
+i.flag.austria:before {
+ background-position: 0 -286px;
+}
+i.flag.au:before,
+i.flag.australia:before {
+ background-position: 0 -312px;
+}
+i.flag.aw:before,
+i.flag.aruba:before {
+ background-position: 0 -338px;
+}
+i.flag.ax:before,
+i.flag.aland.islands:before {
+ background-position: 0 -364px;
+}
+i.flag.az:before,
+i.flag.azerbaijan:before {
+ background-position: 0 -390px;
+}
+i.flag.ba:before,
+i.flag.bosnia:before {
+ background-position: 0 -416px;
+}
+i.flag.bb:before,
+i.flag.barbados:before {
+ background-position: 0 -442px;
+}
+i.flag.bd:before,
+i.flag.bangladesh:before {
+ background-position: 0 -468px;
+}
+i.flag.be:before,
+i.flag.belgium:before {
+ background-position: 0 -494px;
+}
+i.flag.bf:before,
+i.flag.burkina.faso:before {
+ background-position: 0 -520px;
+}
+i.flag.bg:before,
+i.flag.bulgaria:before {
+ background-position: 0 -546px;
+}
+i.flag.bh:before,
+i.flag.bahrain:before {
+ background-position: 0 -572px;
+}
+i.flag.bi:before,
+i.flag.burundi:before {
+ background-position: 0 -598px;
+}
+i.flag.bj:before,
+i.flag.benin:before {
+ background-position: 0 -624px;
+}
+i.flag.bm:before,
+i.flag.bermuda:before {
+ background-position: 0 -650px;
+}
+i.flag.bn:before,
+i.flag.brunei:before {
+ background-position: 0 -676px;
+}
+i.flag.bo:before,
+i.flag.bolivia:before {
+ background-position: 0 -702px;
+}
+i.flag.br:before,
+i.flag.brazil:before {
+ background-position: 0 -728px;
+}
+i.flag.bs:before,
+i.flag.bahamas:before {
+ background-position: 0 -754px;
+}
+i.flag.bt:before,
+i.flag.bhutan:before {
+ background-position: 0 -780px;
+}
+i.flag.bv:before,
+i.flag.bouvet.island:before {
+ background-position: 0 -806px;
+}
+i.flag.bw:before,
+i.flag.botswana:before {
+ background-position: 0 -832px;
+}
+i.flag.by:before,
+i.flag.belarus:before {
+ background-position: 0 -858px;
+}
+i.flag.bz:before,
+i.flag.belize:before {
+ background-position: 0 -884px;
+}
+i.flag.ca:before,
+i.flag.canada:before {
+ background-position: 0 -910px;
+}
+i.flag.cc:before,
+i.flag.cocos.islands:before {
+ background-position: 0 -962px;
+}
+i.flag.cd:before,
+i.flag.congo:before {
+ background-position: 0 -988px;
+}
+i.flag.cf:before,
+i.flag.central.african.republic:before {
+ background-position: 0 -1014px;
+}
+i.flag.cg:before,
+i.flag.congo.brazzaville:before {
+ background-position: 0 -1040px;
+}
+i.flag.ch:before,
+i.flag.switzerland:before {
+ background-position: 0 -1066px;
+}
+i.flag.ci:before,
+i.flag.cote.divoire:before {
+ background-position: 0 -1092px;
+}
+i.flag.ck:before,
+i.flag.cook.islands:before {
+ background-position: 0 -1118px;
+}
+i.flag.cl:before,
+i.flag.chile:before {
+ background-position: 0 -1144px;
+}
+i.flag.cm:before,
+i.flag.cameroon:before {
+ background-position: 0 -1170px;
+}
+i.flag.cn:before,
+i.flag.china:before {
+ background-position: 0 -1196px;
+}
+i.flag.co:before,
+i.flag.colombia:before {
+ background-position: 0 -1222px;
+}
+i.flag.cr:before,
+i.flag.costa.rica:before {
+ background-position: 0 -1248px;
+}
+i.flag.cs:before,
+i.flag.serbia:before {
+ background-position: 0 -1274px;
+}
+i.flag.cu:before,
+i.flag.cuba:before {
+ background-position: 0 -1300px;
+}
+i.flag.cv:before,
+i.flag.cape.verde:before {
+ background-position: 0 -1326px;
+}
+i.flag.cx:before,
+i.flag.christmas.island:before {
+ background-position: 0 -1352px;
+}
+i.flag.cy:before,
+i.flag.cyprus:before {
+ background-position: 0 -1378px;
+}
+i.flag.cz:before,
+i.flag.czech.republic:before {
+ background-position: 0 -1404px;
+}
+i.flag.de:before,
+i.flag.germany:before {
+ background-position: 0 -1430px;
+}
+i.flag.dj:before,
+i.flag.djibouti:before {
+ background-position: 0 -1456px;
+}
+i.flag.dk:before,
+i.flag.denmark:before {
+ background-position: 0 -1482px;
+}
+i.flag.dm:before,
+i.flag.dominica:before {
+ background-position: 0 -1508px;
+}
+i.flag.do:before,
+i.flag.dominican.republic:before {
+ background-position: 0 -1534px;
+}
+i.flag.dz:before,
+i.flag.algeria:before {
+ background-position: 0 -1560px;
+}
+i.flag.ec:before,
+i.flag.ecuador:before {
+ background-position: 0 -1586px;
+}
+i.flag.ee:before,
+i.flag.estonia:before {
+ background-position: 0 -1612px;
+}
+i.flag.eg:before,
+i.flag.egypt:before {
+ background-position: 0 -1638px;
+}
+i.flag.eh:before,
+i.flag.western.sahara:before {
+ background-position: 0 -1664px;
+}
+i.flag.gb.eng:before,
+i.flag.england:before {
+ background-position: 0 -1690px;
+}
+i.flag.er:before,
+i.flag.eritrea:before {
+ background-position: 0 -1716px;
+}
+i.flag.es:before,
+i.flag.spain:before {
+ background-position: 0 -1742px;
+}
+i.flag.et:before,
+i.flag.ethiopia:before {
+ background-position: 0 -1768px;
+}
+i.flag.eu:before,
+i.flag.european.union:before {
+ background-position: 0 -1794px;
+}
+i.flag.fi:before,
+i.flag.finland:before {
+ background-position: 0 -1846px;
+}
+i.flag.fj:before,
+i.flag.fiji:before {
+ background-position: 0 -1872px;
+}
+i.flag.fk:before,
+i.flag.falkland.islands:before {
+ background-position: 0 -1898px;
+}
+i.flag.fm:before,
+i.flag.micronesia:before {
+ background-position: 0 -1924px;
+}
+i.flag.fo:before,
+i.flag.faroe.islands:before {
+ background-position: 0 -1950px;
+}
+i.flag.fr:before,
+i.flag.france:before {
+ background-position: 0 -1976px;
+}
+i.flag.ga:before,
+i.flag.gabon:before {
+ background-position: -36px 0;
+}
+i.flag.gb:before,
+i.flag.uk:before,
+i.flag.united.kingdom:before {
+ background-position: -36px -26px;
+}
+i.flag.gd:before,
+i.flag.grenada:before {
+ background-position: -36px -52px;
+}
+i.flag.ge:before,
+i.flag.georgia:before {
+ background-position: -36px -78px;
+}
+i.flag.gf:before,
+i.flag.french.guiana:before {
+ background-position: -36px -104px;
+}
+i.flag.gh:before,
+i.flag.ghana:before {
+ background-position: -36px -130px;
+}
+i.flag.gi:before,
+i.flag.gibraltar:before {
+ background-position: -36px -156px;
+}
+i.flag.gl:before,
+i.flag.greenland:before {
+ background-position: -36px -182px;
+}
+i.flag.gm:before,
+i.flag.gambia:before {
+ background-position: -36px -208px;
+}
+i.flag.gn:before,
+i.flag.guinea:before {
+ background-position: -36px -234px;
+}
+i.flag.gp:before,
+i.flag.guadeloupe:before {
+ background-position: -36px -260px;
+}
+i.flag.gq:before,
+i.flag.equatorial.guinea:before {
+ background-position: -36px -286px;
+}
+i.flag.gr:before,
+i.flag.greece:before {
+ background-position: -36px -312px;
+}
+i.flag.gs:before,
+i.flag.sandwich.islands:before {
+ background-position: -36px -338px;
+}
+i.flag.gt:before,
+i.flag.guatemala:before {
+ background-position: -36px -364px;
+}
+i.flag.gu:before,
+i.flag.guam:before {
+ background-position: -36px -390px;
+}
+i.flag.gw:before,
+i.flag.guinea-bissau:before {
+ background-position: -36px -416px;
+}
+i.flag.gy:before,
+i.flag.guyana:before {
+ background-position: -36px -442px;
+}
+i.flag.hk:before,
+i.flag.hong.kong:before {
+ background-position: -36px -468px;
+}
+i.flag.hm:before,
+i.flag.heard.island:before {
+ background-position: -36px -494px;
+}
+i.flag.hn:before,
+i.flag.honduras:before {
+ background-position: -36px -520px;
+}
+i.flag.hr:before,
+i.flag.croatia:before {
+ background-position: -36px -546px;
+}
+i.flag.ht:before,
+i.flag.haiti:before {
+ background-position: -36px -572px;
+}
+i.flag.hu:before,
+i.flag.hungary:before {
+ background-position: -36px -598px;
+}
+i.flag.id:before,
+i.flag.indonesia:before {
+ background-position: -36px -624px;
+}
+i.flag.ie:before,
+i.flag.ireland:before {
+ background-position: -36px -650px;
+}
+i.flag.il:before,
+i.flag.israel:before {
+ background-position: -36px -676px;
+}
+i.flag.in:before,
+i.flag.india:before {
+ background-position: -36px -702px;
+}
+i.flag.io:before,
+i.flag.indian.ocean.territory:before {
+ background-position: -36px -728px;
+}
+i.flag.iq:before,
+i.flag.iraq:before {
+ background-position: -36px -754px;
+}
+i.flag.ir:before,
+i.flag.iran:before {
+ background-position: -36px -780px;
+}
+i.flag.is:before,
+i.flag.iceland:before {
+ background-position: -36px -806px;
+}
+i.flag.it:before,
+i.flag.italy:before {
+ background-position: -36px -832px;
+}
+i.flag.jm:before,
+i.flag.jamaica:before {
+ background-position: -36px -858px;
+}
+i.flag.jo:before,
+i.flag.jordan:before {
+ background-position: -36px -884px;
+}
+i.flag.jp:before,
+i.flag.japan:before {
+ background-position: -36px -910px;
+}
+i.flag.ke:before,
+i.flag.kenya:before {
+ background-position: -36px -936px;
+}
+i.flag.kg:before,
+i.flag.kyrgyzstan:before {
+ background-position: -36px -962px;
+}
+i.flag.kh:before,
+i.flag.cambodia:before {
+ background-position: -36px -988px;
+}
+i.flag.ki:before,
+i.flag.kiribati:before {
+ background-position: -36px -1014px;
+}
+i.flag.km:before,
+i.flag.comoros:before {
+ background-position: -36px -1040px;
+}
+i.flag.kn:before,
+i.flag.saint.kitts.and.nevis:before {
+ background-position: -36px -1066px;
+}
+i.flag.kp:before,
+i.flag.north.korea:before {
+ background-position: -36px -1092px;
+}
+i.flag.kr:before,
+i.flag.south.korea:before {
+ background-position: -36px -1118px;
+}
+i.flag.kw:before,
+i.flag.kuwait:before {
+ background-position: -36px -1144px;
+}
+i.flag.ky:before,
+i.flag.cayman.islands:before {
+ background-position: -36px -1170px;
+}
+i.flag.kz:before,
+i.flag.kazakhstan:before {
+ background-position: -36px -1196px;
+}
+i.flag.la:before,
+i.flag.laos:before {
+ background-position: -36px -1222px;
+}
+i.flag.lb:before,
+i.flag.lebanon:before {
+ background-position: -36px -1248px;
+}
+i.flag.lc:before,
+i.flag.saint.lucia:before {
+ background-position: -36px -1274px;
+}
+i.flag.li:before,
+i.flag.liechtenstein:before {
+ background-position: -36px -1300px;
+}
+i.flag.lk:before,
+i.flag.sri.lanka:before {
+ background-position: -36px -1326px;
+}
+i.flag.lr:before,
+i.flag.liberia:before {
+ background-position: -36px -1352px;
+}
+i.flag.ls:before,
+i.flag.lesotho:before {
+ background-position: -36px -1378px;
+}
+i.flag.lt:before,
+i.flag.lithuania:before {
+ background-position: -36px -1404px;
+}
+i.flag.lu:before,
+i.flag.luxembourg:before {
+ background-position: -36px -1430px;
+}
+i.flag.lv:before,
+i.flag.latvia:before {
+ background-position: -36px -1456px;
+}
+i.flag.ly:before,
+i.flag.libya:before {
+ background-position: -36px -1482px;
+}
+i.flag.ma:before,
+i.flag.morocco:before {
+ background-position: -36px -1508px;
+}
+i.flag.mc:before,
+i.flag.monaco:before {
+ background-position: -36px -1534px;
+}
+i.flag.md:before,
+i.flag.moldova:before {
+ background-position: -36px -1560px;
+}
+i.flag.me:before,
+i.flag.montenegro:before {
+ background-position: -36px -1586px;
+}
+i.flag.mg:before,
+i.flag.madagascar:before {
+ background-position: -36px -1613px;
+}
+i.flag.mh:before,
+i.flag.marshall.islands:before {
+ background-position: -36px -1639px;
+}
+i.flag.mk:before,
+i.flag.macedonia:before {
+ background-position: -36px -1665px;
+}
+i.flag.ml:before,
+i.flag.mali:before {
+ background-position: -36px -1691px;
+}
+i.flag.mm:before,
+i.flag.myanmar:before,
+i.flag.burma:before {
+ background-position: -36px -1717px;
+}
+i.flag.mn:before,
+i.flag.mongolia:before {
+ background-position: -36px -1743px;
+}
+i.flag.mo:before,
+i.flag.macau:before {
+ background-position: -36px -1769px;
+}
+i.flag.mp:before,
+i.flag.northern.mariana.islands:before {
+ background-position: -36px -1795px;
+}
+i.flag.mq:before,
+i.flag.martinique:before {
+ background-position: -36px -1821px;
+}
+i.flag.mr:before,
+i.flag.mauritania:before {
+ background-position: -36px -1847px;
+}
+i.flag.ms:before,
+i.flag.montserrat:before {
+ background-position: -36px -1873px;
+}
+i.flag.mt:before,
+i.flag.malta:before {
+ background-position: -36px -1899px;
+}
+i.flag.mu:before,
+i.flag.mauritius:before {
+ background-position: -36px -1925px;
+}
+i.flag.mv:before,
+i.flag.maldives:before {
+ background-position: -36px -1951px;
+}
+i.flag.mw:before,
+i.flag.malawi:before {
+ background-position: -36px -1977px;
+}
+i.flag.mx:before,
+i.flag.mexico:before {
+ background-position: -72px 0;
+}
+i.flag.my:before,
+i.flag.malaysia:before {
+ background-position: -72px -26px;
+}
+i.flag.mz:before,
+i.flag.mozambique:before {
+ background-position: -72px -52px;
+}
+i.flag.na:before,
+i.flag.namibia:before {
+ background-position: -72px -78px;
+}
+i.flag.nc:before,
+i.flag.new.caledonia:before {
+ background-position: -72px -104px;
+}
+i.flag.ne:before,
+i.flag.niger:before {
+ background-position: -72px -130px;
+}
+i.flag.nf:before,
+i.flag.norfolk.island:before {
+ background-position: -72px -156px;
+}
+i.flag.ng:before,
+i.flag.nigeria:before {
+ background-position: -72px -182px;
+}
+i.flag.ni:before,
+i.flag.nicaragua:before {
+ background-position: -72px -208px;
+}
+i.flag.nl:before,
+i.flag.netherlands:before {
+ background-position: -72px -234px;
+}
+i.flag.no:before,
+i.flag.norway:before {
+ background-position: -72px -260px;
+}
+i.flag.np:before,
+i.flag.nepal:before {
+ background-position: -72px -286px;
+}
+i.flag.nr:before,
+i.flag.nauru:before {
+ background-position: -72px -312px;
+}
+i.flag.nu:before,
+i.flag.niue:before {
+ background-position: -72px -338px;
+}
+i.flag.nz:before,
+i.flag.new.zealand:before {
+ background-position: -72px -364px;
+}
+i.flag.om:before,
+i.flag.oman:before {
+ background-position: -72px -390px;
+}
+i.flag.pa:before,
+i.flag.panama:before {
+ background-position: -72px -416px;
+}
+i.flag.pe:before,
+i.flag.peru:before {
+ background-position: -72px -442px;
+}
+i.flag.pf:before,
+i.flag.french.polynesia:before {
+ background-position: -72px -468px;
+}
+i.flag.pg:before,
+i.flag.new.guinea:before {
+ background-position: -72px -494px;
+}
+i.flag.ph:before,
+i.flag.philippines:before {
+ background-position: -72px -520px;
+}
+i.flag.pk:before,
+i.flag.pakistan:before {
+ background-position: -72px -546px;
+}
+i.flag.pl:before,
+i.flag.poland:before {
+ background-position: -72px -572px;
+}
+i.flag.pm:before,
+i.flag.saint.pierre:before {
+ background-position: -72px -598px;
+}
+i.flag.pn:before,
+i.flag.pitcairn.islands:before {
+ background-position: -72px -624px;
+}
+i.flag.pr:before,
+i.flag.puerto.rico:before {
+ background-position: -72px -650px;
+}
+i.flag.ps:before,
+i.flag.palestine:before {
+ background-position: -72px -676px;
+}
+i.flag.pt:before,
+i.flag.portugal:before {
+ background-position: -72px -702px;
+}
+i.flag.pw:before,
+i.flag.palau:before {
+ background-position: -72px -728px;
+}
+i.flag.py:before,
+i.flag.paraguay:before {
+ background-position: -72px -754px;
+}
+i.flag.qa:before,
+i.flag.qatar:before {
+ background-position: -72px -780px;
+}
+i.flag.re:before,
+i.flag.reunion:before {
+ background-position: -72px -806px;
+}
+i.flag.ro:before,
+i.flag.romania:before {
+ background-position: -72px -832px;
+}
+i.flag.rs:before,
+i.flag.serbia:before {
+ background-position: -72px -858px;
+}
+i.flag.ru:before,
+i.flag.russia:before {
+ background-position: -72px -884px;
+}
+i.flag.rw:before,
+i.flag.rwanda:before {
+ background-position: -72px -910px;
+}
+i.flag.sa:before,
+i.flag.saudi.arabia:before {
+ background-position: -72px -936px;
+}
+i.flag.sb:before,
+i.flag.solomon.islands:before {
+ background-position: -72px -962px;
+}
+i.flag.sc:before,
+i.flag.seychelles:before {
+ background-position: -72px -988px;
+}
+i.flag.gb.sct:before,
+i.flag.scotland:before {
+ background-position: -72px -1014px;
+}
+i.flag.sd:before,
+i.flag.sudan:before {
+ background-position: -72px -1040px;
+}
+i.flag.se:before,
+i.flag.sweden:before {
+ background-position: -72px -1066px;
+}
+i.flag.sg:before,
+i.flag.singapore:before {
+ background-position: -72px -1092px;
+}
+i.flag.sh:before,
+i.flag.saint.helena:before {
+ background-position: -72px -1118px;
+}
+i.flag.si:before,
+i.flag.slovenia:before {
+ background-position: -72px -1144px;
+}
+i.flag.sj:before,
+i.flag.svalbard:before,
+i.flag.jan.mayen:before {
+ background-position: -72px -1170px;
+}
+i.flag.sk:before,
+i.flag.slovakia:before {
+ background-position: -72px -1196px;
+}
+i.flag.sl:before,
+i.flag.sierra.leone:before {
+ background-position: -72px -1222px;
+}
+i.flag.sm:before,
+i.flag.san.marino:before {
+ background-position: -72px -1248px;
+}
+i.flag.sn:before,
+i.flag.senegal:before {
+ background-position: -72px -1274px;
+}
+i.flag.so:before,
+i.flag.somalia:before {
+ background-position: -72px -1300px;
+}
+i.flag.sr:before,
+i.flag.suriname:before {
+ background-position: -72px -1326px;
+}
+i.flag.st:before,
+i.flag.sao.tome:before {
+ background-position: -72px -1352px;
+}
+i.flag.sv:before,
+i.flag.el.salvador:before {
+ background-position: -72px -1378px;
+}
+i.flag.sy:before,
+i.flag.syria:before {
+ background-position: -72px -1404px;
+}
+i.flag.sz:before,
+i.flag.swaziland:before {
+ background-position: -72px -1430px;
+}
+i.flag.tc:before,
+i.flag.caicos.islands:before {
+ background-position: -72px -1456px;
+}
+i.flag.td:before,
+i.flag.chad:before {
+ background-position: -72px -1482px;
+}
+i.flag.tf:before,
+i.flag.french.territories:before {
+ background-position: -72px -1508px;
+}
+i.flag.tg:before,
+i.flag.togo:before {
+ background-position: -72px -1534px;
+}
+i.flag.th:before,
+i.flag.thailand:before {
+ background-position: -72px -1560px;
+}
+i.flag.tj:before,
+i.flag.tajikistan:before {
+ background-position: -72px -1586px;
+}
+i.flag.tk:before,
+i.flag.tokelau:before {
+ background-position: -72px -1612px;
+}
+i.flag.tl:before,
+i.flag.timorleste:before {
+ background-position: -72px -1638px;
+}
+i.flag.tm:before,
+i.flag.turkmenistan:before {
+ background-position: -72px -1664px;
+}
+i.flag.tn:before,
+i.flag.tunisia:before {
+ background-position: -72px -1690px;
+}
+i.flag.to:before,
+i.flag.tonga:before {
+ background-position: -72px -1716px;
+}
+i.flag.tr:before,
+i.flag.turkey:before {
+ background-position: -72px -1742px;
+}
+i.flag.tt:before,
+i.flag.trinidad:before {
+ background-position: -72px -1768px;
+}
+i.flag.tv:before,
+i.flag.tuvalu:before {
+ background-position: -72px -1794px;
+}
+i.flag.tw:before,
+i.flag.taiwan:before {
+ background-position: -72px -1820px;
+}
+i.flag.tz:before,
+i.flag.tanzania:before {
+ background-position: -72px -1846px;
+}
+i.flag.ua:before,
+i.flag.ukraine:before {
+ background-position: -72px -1872px;
+}
+i.flag.ug:before,
+i.flag.uganda:before {
+ background-position: -72px -1898px;
+}
+i.flag.um:before,
+i.flag.us.minor.islands:before {
+ background-position: -72px -1924px;
+}
+i.flag.us:before,
+i.flag.america:before,
+i.flag.united.states:before {
+ background-position: -72px -1950px;
+}
+i.flag.uy:before,
+i.flag.uruguay:before {
+ background-position: -72px -1976px;
+}
+i.flag.uz:before,
+i.flag.uzbekistan:before {
+ background-position: -108px 0;
+}
+i.flag.va:before,
+i.flag.vatican.city:before {
+ background-position: -108px -26px;
+}
+i.flag.vc:before,
+i.flag.saint.vincent:before {
+ background-position: -108px -52px;
+}
+i.flag.ve:before,
+i.flag.venezuela:before {
+ background-position: -108px -78px;
+}
+i.flag.vg:before,
+i.flag.british.virgin.islands:before {
+ background-position: -108px -104px;
+}
+i.flag.vi:before,
+i.flag.us.virgin.islands:before {
+ background-position: -108px -130px;
+}
+i.flag.vn:before,
+i.flag.vietnam:before {
+ background-position: -108px -156px;
+}
+i.flag.vu:before,
+i.flag.vanuatu:before {
+ background-position: -108px -182px;
+}
+i.flag.gb.wls:before,
+i.flag.wales:before {
+ background-position: -108px -208px;
+}
+i.flag.wf:before,
+i.flag.wallis.and.futuna:before {
+ background-position: -108px -234px;
+}
+i.flag.ws:before,
+i.flag.samoa:before {
+ background-position: -108px -260px;
+}
+i.flag.ye:before,
+i.flag.yemen:before {
+ background-position: -108px -286px;
+}
+i.flag.yt:before,
+i.flag.mayotte:before {
+ background-position: -108px -312px;
+}
+i.flag.za:before,
+i.flag.south.africa:before {
+ background-position: -108px -338px;
+}
+i.flag.zm:before,
+i.flag.zambia:before {
+ background-position: -108px -364px;
+}
+i.flag.zw:before,
+i.flag.zimbabwe:before {
+ background-position: -108px -390px;
+}
+
+/*rtl:end:ignore*/
diff --git a/assets/semantic/src/themes/default/elements/flag.variables b/assets/semantic/src/themes/default/elements/flag.variables
new file mode 100644
index 0000000..b72b62f
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/flag.variables
@@ -0,0 +1,13 @@
+/*******************************
+ Flag
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@spritePath: "@{imagePath}/flags.png";
+@width: 16px;
+@height: 11px;
+@verticalAlign: baseline;
+@margin: 0.5em;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/elements/header.overrides b/assets/semantic/src/themes/default/elements/header.overrides
new file mode 100644
index 0000000..00b8819
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/header.overrides
@@ -0,0 +1,4 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/default/elements/header.variables b/assets/semantic/src/themes/default/elements/header.variables
new file mode 100644
index 0000000..d6b8ff8
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/header.variables
@@ -0,0 +1,168 @@
+/*******************************
+ Header
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@textTransform: none;
+@fontFamily: @headerFont;
+@fontWeight: @headerFontWeight;
+@lineHeight: @headerLineHeight;
+@lineHeightOffset: @headerLineHeightOffset;
+
+@topMargin: @headerTopMargin;
+@bottomMargin: @headerBottomMargin;
+@margin: @topMargin 0 @bottomMargin;
+
+@firstMargin: -@lineHeightOffset;
+@lastMargin: 0;
+@horizontalPadding: 0;
+@verticalPadding: 0;
+
+/* Sub Heading */
+@subHeadingDistance: @2px;
+@subHeadingFontSize: @relativeTiny;
+@subHeadingFontWeight: @bold;
+@subHeadingTextTransform: uppercase;
+@subHeadingColor: '';
+
+@miniSubHeadingSize: @relativeMini;
+@tinySubHeadingSize: @relativeMini;
+@smallSubHeadingSize: @relativeMini;
+@largeSubHeadingSize: @relativeSmall;
+@bigSubHeadingSize: @relativeMedium;
+@hugeSubHeadingSize: @relativeMedium;
+@massiveSubHeadingSize: @relativeLarge;
+
+/* Sub Header */
+@subHeaderMargin: 0;
+@subHeaderLineHeight: 1.2em;
+@subHeaderColor: @mutedTextColor;
+
+/* Icon */
+@iconOpacity: 1;
+@iconSize: 1.5em;
+@iconOffset: 0;
+@iconMargin: 0.75rem;
+@iconAlignment: middle;
+
+/* Image */
+@imageWidth: 2.5em;
+@imageHeight: auto;
+@imageOffset: @lineHeightOffset;
+@imageMargin: @iconMargin;
+@imageAlignment: middle;
+
+/* Label */
+@labelSize: '';
+@labelDistance: 0.5rem;
+@labelVerticalAlign: middle;
+
+/* Content */
+@contentAlignment: top;
+@contentIconAlignment: middle;
+@contentImageAlignment: middle;
+
+/* Paragraph after Header */
+@nextParagraphDistance: 0;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Sizing */
+@massiveFontSize: unit(32 / 14, em);
+@hugeFontSize : unit(@h1, em);
+@bigFontSize : unit(26 / 14, em);
+@largeFontSize : unit(@h2, em);
+@mediumFontSize : unit(@h3, em);
+@smallFontSize : unit(@h4, em);
+@tinyFontSize : unit(@h5, em);
+@miniFontSize : unit(@h6, em);
+
+/* Sub Header */
+@h1SubHeaderFontSize: @large;
+@h2SubHeaderFontSize: @large;
+@h3SubHeaderFontSize: @medium;
+@h4SubHeaderFontSize: @medium;
+@h5SubHeaderFontSize: @small;
+@h6SubHeaderFontSize: @small;
+
+@massiveSubHeaderFontSize : @huge;
+@hugeSubHeaderFontSize : @h1SubHeaderFontSize;
+@bigSubHeaderFontSize : @h1SubHeaderFontSize;
+@largeSubHeaderFontSize : @h2SubHeaderFontSize;
+@subHeaderFontSize : @h3SubHeaderFontSize;
+@smallSubHeaderFontSize : @h4SubHeaderFontSize;
+@tinySubHeaderFontSize : @h5SubHeaderFontSize;
+@miniSubHeaderFontSize : @h6SubHeaderFontSize;
+
+/* Icon Header */
+@iconHeaderSize: 3em;
+@iconHeaderOpacity: 1;
+@iconHeaderMargin: 0.5rem;
+@circularHeaderIconSize: 2em;
+@squareHeaderIconSize: 2em;
+@cornerIconHeaderSize: calc(@iconHeaderSize * 0.45);
+
+/* No Line Height Offset */
+@iconHeaderTopMargin: 2rem;
+@iconHeaderBottomMargin: @bottomMargin;
+@iconHeaderFirstMargin: 0;
+
+/* Divided */
+@dividedBorderWidth: 1px;
+@dividedBorder: @dividedBorderWidth solid @borderColor;
+@dividedColoredBorderWidth: 2px;
+
+@dividedBorderPadding: @3px;
+@dividedSubHeaderPadding: @3px;
+@dividedIconPadding: 0;
+
+/* Block */
+@blockBackground: @darkWhite;
+@blockBoxShadow: none;
+@blockBorderWidth: 1px;
+@blockBorder: @blockBorderWidth solid @solidBorderColor;
+@blockHorizontalPadding: @medium;
+@blockVerticalPadding: @mini;
+@blockBorderRadius: @defaultBorderRadius;
+
+@miniBlock: @mini;
+@tinyBlock: @tiny;
+@smallBlock: @small;
+@mediumBlock: @medium;
+@largeBlock: @large;
+@bigBlock: @big;
+@hugeBlock: @huge;
+@massiveBlock: @massive;
+
+/* Attached */
+@attachedOffset: -1px;
+@attachedBoxShadow: none;
+@attachedBorder: 1px solid @solidBorderColor;
+@attachedVerticalPadding: @blockVerticalPadding;
+@attachedHorizontalPadding: @blockHorizontalPadding;
+@attachedBackground: @white;
+@attachedBorderRadius: @blockBorderRadius;
+
+@miniAttachedSize: @relativeMini;
+@tinyAttachedSize: @relativeTiny;
+@smallAttachedSize: @relativeSmall;
+@mediumAttachedSize: @relativeMedium;
+@largeAttachedSize: @relativeLarge;
+@bigAttachedSize: @relativeBig;
+@hugeAttachedSize: @relativeHuge;
+@massiveAttachedSize: @relativeMassive;
+
+/* Inverted */
+@invertedColor: @white;
+@invertedSubHeaderColor: @invertedMutedTextColor;
+@invertedDividedBorderColor: @whiteBorderColor;
+@invertedBlockBackground: @lightBlack @subtleGradient;
+@invertedAttachedBackground: @black;
+
+/* Floated */
+@floatedMargin: 0.5em;
diff --git a/assets/semantic/src/themes/default/elements/icon.overrides b/assets/semantic/src/themes/default/elements/icon.overrides
new file mode 100644
index 0000000..3657ef6
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/icon.overrides
@@ -0,0 +1,2038 @@
+/*
+* Font Awesome 5.13.0 by @fontawesome [https://fontawesome.com]
+* License - https://fontawesome.com/license (Icons: CC BY 4.0 License, Fonts: SIL OFL 1.1 License, CSS: MIT License)
+*/
+
+/*******************************
+
+Fomantic-UI integration of FontAwesome :
+
+// class names are separated
+i.icon.angle-left => i.icon.angle.left
+
+// variations are extracted
+i.icon.circle => i.icon.circle
+i.icon.circle-o => i.icon.circle.outline
+
+// abbreviation are replaced by full words
+i.icon.*-h => i.icon.*.horizontal
+i.icon.*-v => i.icon.*.vertical
+i.icon.alpha => i.icon.alphabet
+i.icon.asc => i.icon.ascending
+i.icon.desc => i.icon.descending
+i.icon.alt => i.icon.alternate
+
+
+Icons are order A-Z in their group, Solid, Outline, Thin (Pro only) and Brand
+
+*******************************/
+
+
+/*******************************
+ Icons
+*******************************/
+
+/* Deprecated *In/Out Naming Conflict) */
+i.icon.linkedin.in:before { content: "\f0e1"; }
+i.icon.zoom.in:before { content: "\f00e"; }
+i.icon.zoom.out:before { content: "\f010"; }
+i.icon.sign.in:before { content: "\f2f6"; }
+i.icon.in.cart:before { content: "\f218"; }
+i.icon.log.out:before { content: "\f2f5"; }
+i.icon.sign.out:before { content: "\f2f5"; }
+
+
+/*******************************
+ Solid Icons
+*******************************/
+
+/* Icons */
+i.icon.ad:before { content: "\f641"; }
+i.icon.address.book:before { content: "\f2b9"; }
+i.icon.address.card:before { content: "\f2bb"; }
+i.icon.adjust:before { content: "\f042"; }
+i.icon.air.freshener:before { content: "\f5d0"; }
+i.icon.align.center:before { content: "\f037"; }
+i.icon.align.justify:before { content: "\f039"; }
+i.icon.align.left:before { content: "\f036"; }
+i.icon.align.right:before { content: "\f038"; }
+i.icon.allergies:before { content: "\f461"; }
+i.icon.ambulance:before { content: "\f0f9"; }
+i.icon.american.sign.language.interpreting:before { content: "\f2a3"; }
+i.icon.anchor:before { content: "\f13d"; }
+i.icon.angle.double.down:before { content: "\f103"; }
+i.icon.angle.double.left:before { content: "\f100"; }
+i.icon.angle.double.right:before { content: "\f101"; }
+i.icon.angle.double.up:before { content: "\f102"; }
+i.icon.angle.down:before { content: "\f107"; }
+i.icon.angle.left:before { content: "\f104"; }
+i.icon.angle.right:before { content: "\f105"; }
+i.icon.angle.up:before { content: "\f106"; }
+i.icon.angry:before { content: "\f556"; }
+i.icon.ankh:before { content: "\f644"; }
+i.icon.archive:before { content: "\f187"; }
+i.icon.archway:before { content: "\f557"; }
+i.icon.arrow.alternate.circle.down:before { content: "\f358"; }
+i.icon.arrow.alternate.circle.left:before { content: "\f359"; }
+i.icon.arrow.alternate.circle.right:before { content: "\f35a"; }
+i.icon.arrow.alternate.circle.up:before { content: "\f35b"; }
+i.icon.arrow.circle.down:before { content: "\f0ab"; }
+i.icon.arrow.circle.left:before { content: "\f0a8"; }
+i.icon.arrow.circle.right:before { content: "\f0a9"; }
+i.icon.arrow.circle.up:before { content: "\f0aa"; }
+i.icon.arrow.left:before { content: "\f060"; }
+i.icon.arrow.right:before { content: "\f061"; }
+i.icon.arrow.up:before { content: "\f062"; }
+i.icon.arrow.down:before { content: "\f063"; }
+i.icon.arrows.alternate:before { content: "\f0b2"; }
+i.icon.arrows.alternate.horizontal:before { content: "\f337"; }
+i.icon.arrows.alternate.vertical:before { content: "\f338"; }
+i.icon.assistive.listening.systems:before { content: "\f2a2"; }
+i.icon.asterisk:before { content: "\f069"; }
+i.icon.at:before { content: "\f1fa"; }
+i.icon.atlas:before { content: "\f558"; }
+i.icon.atom:before { content: "\f5d2"; }
+i.icon.audio.description:before { content: "\f29e"; }
+i.icon.award:before { content: "\f559"; }
+i.icon.baby:before { content: "\f77c"; }
+i.icon.baby.carriage:before { content: "\f77d"; }
+i.icon.backspace:before { content: "\f55a"; }
+i.icon.backward:before { content: "\f04a"; }
+i.icon.bacon:before { content: "\f7e5"; }
+i.icon.bahai:before { content: "\f666"; }
+i.icon.balance.scale:before { content: "\f24e"; }
+i.icon.balance.scale.left:before { content: "\f515"; }
+i.icon.balance.scale.right:before { content: "\f516"; }
+i.icon.ban:before { content: "\f05e"; }
+i.icon.band.aid:before { content: "\f462"; }
+i.icon.barcode:before { content: "\f02a"; }
+i.icon.bars:before { content: "\f0c9"; }
+i.icon.baseball.ball:before { content: "\f433"; }
+i.icon.basketball.ball:before { content: "\f434"; }
+i.icon.bath:before { content: "\f2cd"; }
+i.icon.battery.empty:before { content: "\f244"; }
+i.icon.battery.full:before { content: "\f240"; }
+i.icon.battery.half:before { content: "\f242"; }
+i.icon.battery.quarter:before { content: "\f243"; }
+i.icon.battery.three.quarters:before { content: "\f241"; }
+i.icon.bed:before { content: "\f236"; }
+i.icon.beer:before { content: "\f0fc"; }
+i.icon.bell:before { content: "\f0f3"; }
+i.icon.bell.slash:before { content: "\f1f6"; }
+i.icon.bezier.curve:before { content: "\f55b"; }
+i.icon.bible:before { content: "\f647"; }
+i.icon.bicycle:before { content: "\f206"; }
+i.icon.biking:before { content: "\f84a"; }
+i.icon.binoculars:before { content: "\f1e5"; }
+i.icon.biohazard:before { content: "\f780"; }
+i.icon.birthday.cake:before { content: "\f1fd"; }
+i.icon.blender:before { content: "\f517"; }
+i.icon.blender.phone:before { content: "\f6b6"; }
+i.icon.blind:before { content: "\f29d"; }
+i.icon.blog:before { content: "\f781"; }
+i.icon.bold:before { content: "\f032"; }
+i.icon.bolt:before { content: "\f0e7"; }
+i.icon.bomb:before { content: "\f1e2"; }
+i.icon.bone:before { content: "\f5d7"; }
+i.icon.bong:before { content: "\f55c"; }
+i.icon.book:before { content: "\f02d"; }
+i.icon.book.dead:before { content: "\f6b7"; }
+i.icon.book.medical:before { content: "\f7e6"; }
+i.icon.book.open:before { content: "\f518"; }
+i.icon.book.reader:before { content: "\f5da"; }
+i.icon.bookmark:before { content: "\f02e"; }
+i.icon.border.all:before { content: "\f84c"; }
+i.icon.border.none:before { content: "\f850"; }
+i.icon.border.style:before { content: "\f853"; }
+i.icon.bowling.ball:before { content: "\f436"; }
+i.icon.box:before { content: "\f466"; }
+i.icon.box.open:before { content: "\f49e"; }
+i.icon.box.tissue:before { content: "\f95b"; }
+i.icon.boxes:before { content: "\f468"; }
+i.icon.braille:before { content: "\f2a1"; }
+i.icon.brain:before { content: "\f5dc"; }
+i.icon.bread.slice:before { content: "\f7ec"; }
+i.icon.briefcase:before { content: "\f0b1"; }
+i.icon.briefcase.medical:before { content: "\f469"; }
+i.icon.broadcast.tower:before { content: "\f519"; }
+i.icon.broom:before { content: "\f51a"; }
+i.icon.brush:before { content: "\f55d"; }
+i.icon.bug:before { content: "\f188"; }
+i.icon.building:before { content: "\f1ad"; }
+i.icon.bullhorn:before { content: "\f0a1"; }
+i.icon.bullseye:before { content: "\f140"; }
+i.icon.burn:before { content: "\f46a"; }
+i.icon.bus:before { content: "\f207"; }
+i.icon.bus.alternate:before { content: "\f55e"; }
+i.icon.business.time:before { content: "\f64a"; }
+i.icon.calculator:before { content: "\f1ec"; }
+i.icon.calendar:before { content: "\f133"; }
+i.icon.calendar.alternate:before { content: "\f073"; }
+i.icon.calendar.check:before { content: "\f274"; }
+i.icon.calendar.day:before { content: "\f783"; }
+i.icon.calendar.minus:before { content: "\f272"; }
+i.icon.calendar.plus:before { content: "\f271"; }
+i.icon.calendar.times:before { content: "\f273"; }
+i.icon.calendar.week:before { content: "\f784"; }
+i.icon.camera:before { content: "\f030"; }
+i.icon.camera.retro:before { content: "\f083"; }
+i.icon.campground:before { content: "\f6bb"; }
+i.icon.candy.cane:before { content: "\f786"; }
+i.icon.cannabis:before { content: "\f55f"; }
+i.icon.capsules:before { content: "\f46b"; }
+i.icon.car:before { content: "\f1b9"; }
+i.icon.car.alternate:before { content: "\f5de"; }
+i.icon.car.battery:before { content: "\f5df"; }
+i.icon.car.crash:before { content: "\f5e1"; }
+i.icon.car.side:before { content: "\f5e4"; }
+i.icon.caravan:before { content: "\f8ff"; }
+i.icon.caret.down:before { content: "\f0d7"; }
+i.icon.caret.left:before { content: "\f0d9"; }
+i.icon.caret.right:before { content: "\f0da"; }
+i.icon.caret.square.down:before { content: "\f150"; }
+i.icon.caret.square.left:before { content: "\f191"; }
+i.icon.caret.square.right:before { content: "\f152"; }
+i.icon.caret.square.up:before { content: "\f151"; }
+i.icon.caret.up:before { content: "\f0d8"; }
+i.icon.carrot:before { content: "\f787"; }
+i.icon.cart.arrow.down:before { content: "\f218"; }
+i.icon.cart.plus:before { content: "\f217"; }
+i.icon.cash.register:before { content: "\f788"; }
+i.icon.cat:before { content: "\f6be"; }
+i.icon.certificate:before { content: "\f0a3"; }
+i.icon.chair:before { content: "\f6c0"; }
+i.icon.chalkboard:before { content: "\f51b"; }
+i.icon.chalkboard.teacher:before { content: "\f51c"; }
+i.icon.charging.station:before { content: "\f5e7"; }
+i.icon.chart.area:before { content: "\f1fe"; }
+i.icon.chart.bar:before { content: "\f080"; }
+i.icon.chart.line:before { content: "\f201"; }
+i.icon.chartline:before { content: "\f201"; }
+i.icon.chart.pie:before { content: "\f200"; }
+i.icon.check:before { content: "\f00c"; }
+i.icon.check.circle:before { content: "\f058"; }
+i.icon.check.double:before { content: "\f560"; }
+i.icon.check.square:before { content: "\f14a"; }
+i.icon.cheese:before { content: "\f7ef"; }
+i.icon.chess:before { content: "\f439"; }
+i.icon.chess.bishop:before { content: "\f43a"; }
+i.icon.chess.board:before { content: "\f43c"; }
+i.icon.chess.king:before { content: "\f43f"; }
+i.icon.chess.knight:before { content: "\f441"; }
+i.icon.chess.pawn:before { content: "\f443"; }
+i.icon.chess.queen:before { content: "\f445"; }
+i.icon.chess.rook:before { content: "\f447"; }
+i.icon.chevron.circle.down:before { content: "\f13a"; }
+i.icon.chevron.circle.left:before { content: "\f137"; }
+i.icon.chevron.circle.right:before { content: "\f138"; }
+i.icon.chevron.circle.up:before { content: "\f139"; }
+i.icon.chevron.down:before { content: "\f078"; }
+i.icon.chevron.left:before { content: "\f053"; }
+i.icon.chevron.right:before { content: "\f054"; }
+i.icon.chevron.up:before { content: "\f077"; }
+i.icon.child:before { content: "\f1ae"; }
+i.icon.church:before { content: "\f51d"; }
+i.icon.circle:before { content: "\f111"; }
+i.icon.circle.notch:before { content: "\f1ce"; }
+i.icon.city:before { content: "\f64f"; }
+i.icon.clinic.medical:before { content: "\f7f2"; }
+i.icon.clipboard:before { content: "\f328"; }
+i.icon.clipboard.check:before { content: "\f46c"; }
+i.icon.clipboard.list:before { content: "\f46d"; }
+i.icon.clock:before { content: "\f017"; }
+i.icon.clone:before { content: "\f24d"; }
+i.icon.closed.captioning:before { content: "\f20a"; }
+i.icon.cloud:before { content: "\f0c2"; }
+i.icon.cloud.download.alternate:before { content: "\f381"; }
+i.icon.cloud.meatball:before { content: "\f73b"; }
+i.icon.cloud.moon:before { content: "\f6c3"; }
+i.icon.cloud.moon.rain:before { content: "\f73c"; }
+i.icon.cloud.rain:before { content: "\f73d"; }
+i.icon.cloud.showers.heavy:before { content: "\f740"; }
+i.icon.cloud.sun:before { content: "\f6c4"; }
+i.icon.cloud.sun.rain:before { content: "\f743"; }
+i.icon.cloud.upload.alternate:before { content: "\f382"; }
+i.icon.cocktail:before { content: "\f561"; }
+i.icon.code:before { content: "\f121"; }
+i.icon.code.branch:before { content: "\f126"; }
+i.icon.coffee:before { content: "\f0f4"; }
+i.icon.cog:before { content: "\f013"; }
+i.icon.cogs:before { content: "\f085"; }
+i.icon.coins:before { content: "\f51e"; }
+i.icon.columns:before { content: "\f0db"; }
+i.icon.comment:before { content: "\f075"; }
+i.icon.comment.alternate:before { content: "\f27a"; }
+i.icon.comment.dollar:before { content: "\f651"; }
+i.icon.comment.dots:before { content: "\f4ad"; }
+i.icon.comment.medical:before { content: "\f7f5"; }
+i.icon.comment.slash:before { content: "\f4b3"; }
+i.icon.comments:before { content: "\f086"; }
+i.icon.comments.dollar:before { content: "\f653"; }
+i.icon.compact.disc:before { content: "\f51f"; }
+i.icon.compass:before { content: "\f14e"; }
+i.icon.compress:before { content: "\f066"; }
+i.icon.compress.alternate:before { content: "\f422"; }
+i.icon.compress.arrows.alternate:before { content: "\f78c"; }
+i.icon.concierge.bell:before { content: "\f562"; }
+i.icon.cookie:before { content: "\f563"; }
+i.icon.cookie.bite:before { content: "\f564"; }
+i.icon.copy:before { content: "\f0c5"; }
+i.icon.copyright:before { content: "\f1f9"; }
+i.icon.couch:before { content: "\f4b8"; }
+i.icon.credit.card:before { content: "\f09d"; }
+i.icon.crop:before { content: "\f125"; }
+i.icon.crop.alternate:before { content: "\f565"; }
+i.icon.cross:before { content: "\f654"; }
+i.icon.crosshairs:before { content: "\f05b"; }
+i.icon.crow:before { content: "\f520"; }
+i.icon.crown:before { content: "\f521"; }
+i.icon.crutch:before { content: "\f7f7"; }
+i.icon.cube:before { content: "\f1b2"; }
+i.icon.cubes:before { content: "\f1b3"; }
+i.icon.cut:before { content: "\f0c4"; }
+i.icon.database:before { content: "\f1c0"; }
+i.icon.deaf:before { content: "\f2a4"; }
+i.icon.democrat:before { content: "\f747"; }
+i.icon.desktop:before { content: "\f108"; }
+i.icon.dharmachakra:before { content: "\f655"; }
+i.icon.diagnoses:before { content: "\f470"; }
+i.icon.dice:before { content: "\f522"; }
+i.icon.dice.d20:before { content: "\f6cf"; }
+i.icon.dice.d6:before { content: "\f6d1"; }
+i.icon.dice.five:before { content: "\f523"; }
+i.icon.dice.four:before { content: "\f524"; }
+i.icon.dice.one:before { content: "\f525"; }
+i.icon.dice.six:before { content: "\f526"; }
+i.icon.dice.three:before { content: "\f527"; }
+i.icon.dice.two:before { content: "\f528"; }
+i.icon.digital.tachograph:before { content: "\f566"; }
+i.icon.directions:before { content: "\f5eb"; }
+i.icon.disease:before { content: "\f7fa"; }
+i.icon.divide:before { content: "\f529"; }
+i.icon.dizzy:before { content: "\f567"; }
+i.icon.dna:before { content: "\f471"; }
+i.icon.dog:before { content: "\f6d3"; }
+i.icon.dollar.sign:before { content: "\f155"; }
+i.icon.dolly:before { content: "\f472"; }
+i.icon.dolly.flatbed:before { content: "\f474"; }
+i.icon.donate:before { content: "\f4b9"; }
+i.icon.door.closed:before { content: "\f52a"; }
+i.icon.door.open:before { content: "\f52b"; }
+i.icon.dot.circle:before { content: "\f192"; }
+i.icon.dove:before { content: "\f4ba"; }
+i.icon.download:before { content: "\f019"; }
+i.icon.drafting.compass:before { content: "\f568"; }
+i.icon.dragon:before { content: "\f6d5"; }
+i.icon.draw.polygon:before { content: "\f5ee"; }
+i.icon.drum:before { content: "\f569"; }
+i.icon.drum.steelpan:before { content: "\f56a"; }
+i.icon.drumstick.bite:before { content: "\f6d7"; }
+i.icon.dumbbell:before { content: "\f44b"; }
+i.icon.dumpster:before { content: "\f793"; }
+i.icon.dumpster.fire:before { content: "\f794"; }
+i.icon.dungeon:before { content: "\f6d9"; }
+i.icon.edit:before { content: "\f044"; }
+i.icon.egg:before { content: "\f7fb"; }
+i.icon.eject:before { content: "\f052"; }
+i.icon.ellipsis.horizontal:before { content: "\f141"; }
+i.icon.ellipsis.vertical:before { content: "\f142"; }
+i.icon.envelope:before { content: "\f0e0"; }
+i.icon.envelope.open:before { content: "\f2b6"; }
+i.icon.envelope.open.text:before { content: "\f658"; }
+i.icon.envelope.square:before { content: "\f199"; }
+i.icon.equals:before { content: "\f52c"; }
+i.icon.eraser:before { content: "\f12d"; }
+i.icon.ethernet:before { content: "\f796"; }
+i.icon.euro.sign:before { content: "\f153"; }
+i.icon.exchange.alternate:before { content: "\f362"; }
+i.icon.exclamation:before { content: "\f12a"; }
+i.icon.exclamation.circle:before { content: "\f06a"; }
+i.icon.exclamation.triangle:before { content: "\f071"; }
+i.icon.expand:before { content: "\f065"; }
+i.icon.expand.alternate:before { content: "\f424"; }
+i.icon.expand.arrows.alternate:before { content: "\f31e"; }
+i.icon.external.alternate:before { content: "\f35d"; }
+i.icon.external.link.square.alternate:before { content: "\f360"; }
+i.icon.eye:before { content: "\f06e"; }
+i.icon.eye.dropper:before { content: "\f1fb"; }
+i.icon.eye.slash:before { content: "\f070"; }
+i.icon.fan:before { content: "\f863"; }
+i.icon.fast.backward:before { content: "\f049"; }
+i.icon.fast.forward:before { content: "\f050"; }
+i.icon.faucet:before { content: "\f905"; }
+i.icon.fax:before { content: "\f1ac"; }
+i.icon.feather:before { content: "\f52d"; }
+i.icon.feather.alternate:before { content: "\f56b"; }
+i.icon.female:before { content: "\f182"; }
+i.icon.fighter.jet:before { content: "\f0fb"; }
+i.icon.file:before { content: "\f15b"; }
+i.icon.file.alternate:before { content: "\f15c"; }
+i.icon.file.archive:before { content: "\f1c6"; }
+i.icon.file.audio:before { content: "\f1c7"; }
+i.icon.file.code:before { content: "\f1c9"; }
+i.icon.file.contract:before { content: "\f56c"; }
+i.icon.file.csv:before { content: "\f6dd"; }
+i.icon.file.download:before { content: "\f56d"; }
+i.icon.file.excel:before { content: "\f1c3"; }
+i.icon.file.export:before { content: "\f56e"; }
+i.icon.file.image:before { content: "\f1c5"; }
+i.icon.file.import:before { content: "\f56f"; }
+i.icon.file.invoice:before { content: "\f570"; }
+i.icon.file.invoice.dollar:before { content: "\f571"; }
+i.icon.file.medical:before { content: "\f477"; }
+i.icon.file.medical.alternate:before { content: "\f478"; }
+i.icon.file.pdf:before { content: "\f1c1"; }
+i.icon.file.powerpoint:before { content: "\f1c4"; }
+i.icon.file.prescription:before { content: "\f572"; }
+i.icon.file.signature:before { content: "\f573"; }
+i.icon.file.upload:before { content: "\f574"; }
+i.icon.file.video:before { content: "\f1c8"; }
+i.icon.file.word:before { content: "\f1c2"; }
+i.icon.fill:before { content: "\f575"; }
+i.icon.fill.drip:before { content: "\f576"; }
+i.icon.film:before { content: "\f008"; }
+i.icon.filter:before { content: "\f0b0"; }
+i.icon.fingerprint:before { content: "\f577"; }
+i.icon.fire:before { content: "\f06d"; }
+i.icon.fire.alternate:before { content: "\f7e4"; }
+i.icon.fire.extinguisher:before { content: "\f134"; }
+i.icon.first.aid:before { content: "\f479"; }
+i.icon.fish:before { content: "\f578"; }
+i.icon.fist.raised:before { content: "\f6de"; }
+i.icon.flag:before { content: "\f024"; }
+i.icon.flag.checkered:before { content: "\f11e"; }
+i.icon.flag.usa:before { content: "\f74d"; }
+i.icon.flask:before { content: "\f0c3"; }
+i.icon.flushed:before { content: "\f579"; }
+i.icon.folder:before { content: "\f07b"; }
+i.icon.folder.minus:before { content: "\f65d"; }
+i.icon.folder.open:before { content: "\f07c"; }
+i.icon.folder.plus:before { content: "\f65e"; }
+i.icon.font:before { content: "\f031"; }
+i.icon.football.ball:before { content: "\f44e"; }
+i.icon.forward:before { content: "\f04e"; }
+i.icon.frog:before { content: "\f52e"; }
+i.icon.frown:before { content: "\f119"; }
+i.icon.frown.open:before { content: "\f57a"; }
+i.icon.fruit-apple:before { content: "\f5d1"; }
+i.icon.funnel.dollar:before { content: "\f662"; }
+i.icon.futbol:before { content: "\f1e3"; }
+i.icon.gamepad:before { content: "\f11b"; }
+i.icon.gas.pump:before { content: "\f52f"; }
+i.icon.gavel:before { content: "\f0e3"; }
+i.icon.gem:before { content: "\f3a5"; }
+i.icon.genderless:before { content: "\f22d"; }
+i.icon.ghost:before { content: "\f6e2"; }
+i.icon.gift:before { content: "\f06b"; }
+i.icon.gifts:before { content: "\f79c"; }
+i.icon.glass.cheers:before { content: "\f79f"; }
+i.icon.glass.martini:before { content: "\f000"; }
+i.icon.glass.martini.alternate:before { content: "\f57b"; }
+i.icon.glass.whiskey:before { content: "\f7a0"; }
+i.icon.glasses:before { content: "\f530"; }
+i.icon.globe:before { content: "\f0ac"; }
+i.icon.globe.africa:before { content: "\f57c"; }
+i.icon.globe.americas:before { content: "\f57d"; }
+i.icon.globe.asia:before { content: "\f57e"; }
+i.icon.globe.europe:before { content: "\f7a2"; }
+i.icon.golf.ball:before { content: "\f450"; }
+i.icon.gopuram:before { content: "\f664"; }
+i.icon.graduation.cap:before { content: "\f19d"; }
+i.icon.greater.than:before { content: "\f531"; }
+i.icon.greater.than.equal:before { content: "\f532"; }
+i.icon.grimace:before { content: "\f57f"; }
+i.icon.grin:before { content: "\f580"; }
+i.icon.grin.alternate:before { content: "\f581"; }
+i.icon.grin.beam:before { content: "\f582"; }
+i.icon.grin.beam.sweat:before { content: "\f583"; }
+i.icon.grin.hearts:before { content: "\f584"; }
+i.icon.grin.squint:before { content: "\f585"; }
+i.icon.grin.squint.tears:before { content: "\f586"; }
+i.icon.grin.stars:before { content: "\f587"; }
+i.icon.grin.tears:before { content: "\f588"; }
+i.icon.grin.tongue:before { content: "\f589"; }
+i.icon.grin.tongue.squint:before { content: "\f58a"; }
+i.icon.grin.tongue.wink:before { content: "\f58b"; }
+i.icon.grin.wink:before { content: "\f58c"; }
+i.icon.grip.horizontal:before { content: "\f58d"; }
+i.icon.grip.lines:before { content: "\f7a4"; }
+i.icon.grip.lines.vertical:before { content: "\f7a5"; }
+i.icon.grip.vertical:before { content: "\f58e"; }
+i.icon.guitar:before { content: "\f7a6"; }
+i.icon.h.square:before { content: "\f0fd"; }
+i.icon.hamburger:before { content: "\f805"; }
+i.icon.hammer:before { content: "\f6e3"; }
+i.icon.hamsa:before { content: "\f665"; }
+i.icon.hand.holding:before { content: "\f4bd"; }
+i.icon.hand.holding.heart:before { content: "\f4be"; }
+i.icon.hand.holding.medical:before { content: "\f95c"; }
+i.icon.hand.holding.usd:before { content: "\f4c0"; }
+i.icon.hand.holding.water:before { content: "\f4c1"; }
+i.icon.hand.lizard:before { content: "\f258"; }
+i.icon.hand.middle.finger:before { content: "\f806"; }
+i.icon.hand.paper:before { content: "\f256"; }
+i.icon.hand.peace:before { content: "\f25b"; }
+i.icon.hand.point.down:before { content: "\f0a7"; }
+i.icon.hand.point.left:before { content: "\f0a5"; }
+i.icon.hand.point.right:before { content: "\f0a4"; }
+i.icon.hand.point.up:before { content: "\f0a6"; }
+i.icon.hand.pointer:before { content: "\f25a"; }
+i.icon.hand.rock:before { content: "\f255"; }
+i.icon.hand.scissors:before { content: "\f257"; }
+i.icon.hand.sparkles:before { content: "\f95d"; }
+i.icon.hand.spock:before { content: "\f259"; }
+i.icon.hands:before { content: "\f4c2"; }
+i.icon.hands.helping:before { content: "\f4c4"; }
+i.icon.hands.wash:before { content: "\f95e"; }
+i.icon.handshake:before { content: "\f2b5"; }
+i.icon.handshake.alternate.slash:before { content: "\f95f"; }
+i.icon.handshake.slash:before { content: "\f960"; }
+i.icon.hanukiah:before { content: "\f6e6"; }
+i.icon.hard.hat:before { content: "\f807"; }
+i.icon.hashtag:before { content: "\f292"; }
+i.icon.hat.cowboy:before { content: "\f8c0"; }
+i.icon.hat.cowboy.side:before { content: "\f8c1"; }
+i.icon.hat.wizard:before { content: "\f6e8"; }
+i.icon.hdd:before { content: "\f0a0"; }
+i.icon.head.side.cough:before { content: "\f961"; }
+i.icon.head.side.cough.slash:before { content: "\f962"; }
+i.icon.head.side.mask:before { content: "\f963"; }
+i.icon.head.side.virus:before { content: "\f964"; }
+i.icon.heading:before { content: "\f1dc"; }
+i.icon.headphones:before { content: "\f025"; }
+i.icon.headphones.alternate:before { content: "\f58f"; }
+i.icon.headset:before { content: "\f590"; }
+i.icon.heart:before { content: "\f004"; }
+i.icon.heart.broken:before { content: "\f7a9"; }
+i.icon.heartbeat:before { content: "\f21e"; }
+i.icon.helicopter:before { content: "\f533"; }
+i.icon.highlighter:before { content: "\f591"; }
+i.icon.hiking:before { content: "\f6ec"; }
+i.icon.hippo:before { content: "\f6ed"; }
+i.icon.history:before { content: "\f1da"; }
+i.icon.hockey.puck:before { content: "\f453"; }
+i.icon.holly.berry:before { content: "\f7aa"; }
+i.icon.home:before { content: "\f015"; }
+i.icon.horse:before { content: "\f6f0"; }
+i.icon.horse.head:before { content: "\f7ab"; }
+i.icon.hospital:before { content: "\f0f8"; }
+i.icon.hospital.alternate:before { content: "\f47d"; }
+i.icon.hospital.symbol:before { content: "\f47e"; }
+i.icon.hospital.user:before { content: "\f80d"; }
+i.icon.hot.tub:before { content: "\f593"; }
+i.icon.hotdog:before { content: "\f80f"; }
+i.icon.hotel:before { content: "\f594"; }
+i.icon.hourglass:before { content: "\f254"; }
+i.icon.hourglass.end:before { content: "\f253"; }
+i.icon.hourglass.half:before { content: "\f252"; }
+i.icon.hourglass.start:before { content: "\f251"; }
+i.icon.house.damage:before { content: "\f6f1"; }
+i.icon.house.user:before { content: "\f965"; }
+i.icon.hryvnia:before { content: "\f6f2"; }
+i.icon.i.cursor:before { content: "\f246"; }
+i.icon.ice.cream:before { content: "\f810"; }
+i.icon.icicles:before { content: "\f7ad"; }
+i.icon.icons:before { content: "\f86d"; }
+i.icon.id.badge:before { content: "\f2c1"; }
+i.icon.id.card:before { content: "\f2c2"; }
+i.icon.id.card.alternate:before { content: "\f47f"; }
+i.icon.igloo:before { content: "\f7ae"; }
+i.icon.image:before { content: "\f03e"; }
+i.icon.images:before { content: "\f302"; }
+i.icon.inbox:before { content: "\f01c"; }
+i.icon.indent:before { content: "\f03c"; }
+i.icon.industry:before { content: "\f275"; }
+i.icon.infinity:before { content: "\f534"; }
+i.icon.info:before { content: "\f129"; }
+i.icon.info.circle:before { content: "\f05a"; }
+i.icon.italic:before { content: "\f033"; }
+i.icon.jedi:before { content: "\f669"; }
+i.icon.joint:before { content: "\f595"; }
+i.icon.journal.whills:before { content: "\f66a"; }
+i.icon.kaaba:before { content: "\f66b"; }
+i.icon.key:before { content: "\f084"; }
+i.icon.keyboard:before { content: "\f11c"; }
+i.icon.khanda:before { content: "\f66d"; }
+i.icon.kiss:before { content: "\f596"; }
+i.icon.kiss.beam:before { content: "\f597"; }
+i.icon.kiss.wink.heart:before { content: "\f598"; }
+i.icon.kiwi.bird:before { content: "\f535"; }
+i.icon.landmark:before { content: "\f66f"; }
+i.icon.language:before { content: "\f1ab"; }
+i.icon.laptop:before { content: "\f109"; }
+i.icon.laptop.code:before { content: "\f5fc"; }
+i.icon.laptop.house:before { content: "\f966"; }
+i.icon.laptop.medical:before { content: "\f812"; }
+i.icon.laugh:before { content: "\f599"; }
+i.icon.laugh.beam:before { content: "\f59a"; }
+i.icon.laugh.squint:before { content: "\f59b"; }
+i.icon.laugh.wink:before { content: "\f59c"; }
+i.icon.layer.group:before { content: "\f5fd"; }
+i.icon.leaf:before { content: "\f06c"; }
+i.icon.lemon:before { content: "\f094"; }
+i.icon.less.than:before { content: "\f536"; }
+i.icon.less.than.equal:before { content: "\f537"; }
+i.icon.level.down.alternate:before { content: "\f3be"; }
+i.icon.level.up.alternate:before { content: "\f3bf"; }
+i.icon.life.ring:before { content: "\f1cd"; }
+i.icon.lightbulb:before { content: "\f0eb"; }
+i.icon.linkify:before { content: "\f0c1"; }
+i.icon.lira.sign:before { content: "\f195"; }
+i.icon.list:before { content: "\f03a"; }
+i.icon.list.alternate:before { content: "\f022"; }
+i.icon.list.ol:before { content: "\f0cb"; }
+i.icon.list.ul:before { content: "\f0ca"; }
+i.icon.location.arrow:before { content: "\f124"; }
+i.icon.lock:before { content: "\f023"; }
+i.icon.lock.open:before { content: "\f3c1"; }
+i.icon.long.arrow.alternate.down:before { content: "\f309"; }
+i.icon.long.arrow.alternate.left:before { content: "\f30a"; }
+i.icon.long.arrow.alternate.right:before { content: "\f30b"; }
+i.icon.long.arrow.alternate.up:before { content: "\f30c"; }
+i.icon.low.vision:before { content: "\f2a8"; }
+i.icon.luggage.cart:before { content: "\f59d"; }
+i.icon.lungs:before { content: "\f604"; }
+i.icon.lungs.virus:before { content: "\f967"; }
+i.icon.magic:before { content: "\f0d0"; }
+i.icon.magnet:before { content: "\f076"; }
+i.icon.mail.bulk:before { content: "\f674"; }
+i.icon.male:before { content: "\f183"; }
+i.icon.map:before { content: "\f279"; }
+i.icon.map.marked:before { content: "\f59f"; }
+i.icon.map.marked.alternate:before { content: "\f5a0"; }
+i.icon.map.marker:before { content: "\f041"; }
+i.icon.map.marker.alternate:before { content: "\f3c5"; }
+i.icon.map.pin:before { content: "\f276"; }
+i.icon.map.signs:before { content: "\f277"; }
+i.icon.marker:before { content: "\f5a1"; }
+i.icon.mars:before { content: "\f222"; }
+i.icon.mars.double:before { content: "\f227"; }
+i.icon.mars.stroke:before { content: "\f229"; }
+i.icon.mars.stroke.horizontal:before { content: "\f22b"; }
+i.icon.mars.stroke.vertical:before { content: "\f22a"; }
+i.icon.mask:before { content: "\f6fa"; }
+i.icon.medal:before { content: "\f5a2"; }
+i.icon.medkit:before { content: "\f0fa"; }
+i.icon.meh:before { content: "\f11a"; }
+i.icon.meh.blank:before { content: "\f5a4"; }
+i.icon.meh.rolling.eyes:before { content: "\f5a5"; }
+i.icon.memory:before { content: "\f538"; }
+i.icon.menorah:before { content: "\f676"; }
+i.icon.mercury:before { content: "\f223"; }
+i.icon.meteor:before { content: "\f753"; }
+i.icon.microchip:before { content: "\f2db"; }
+i.icon.microphone:before { content: "\f130"; }
+i.icon.microphone.alternate:before { content: "\f3c9"; }
+i.icon.microphone.alternate.slash:before { content: "\f539"; }
+i.icon.microphone.slash:before { content: "\f131"; }
+i.icon.microscope:before { content: "\f610"; }
+i.icon.minus:before { content: "\f068"; }
+i.icon.minus.circle:before { content: "\f056"; }
+i.icon.minus.square:before { content: "\f146"; }
+i.icon.mitten:before { content: "\f7b5"; }
+i.icon.mobile:before { content: "\f10b"; }
+i.icon.mobile.alternate:before { content: "\f3cd"; }
+i.icon.money.bill:before { content: "\f0d6"; }
+i.icon.money.bill.alternate:before { content: "\f3d1"; }
+i.icon.money.bill.wave:before { content: "\f53a"; }
+i.icon.money.bill.wave.alternate:before { content: "\f53b"; }
+i.icon.money.check:before { content: "\f53c"; }
+i.icon.money.check.alternate:before { content: "\f53d"; }
+i.icon.monument:before { content: "\f5a6"; }
+i.icon.moon:before { content: "\f186"; }
+i.icon.mortar.pestle:before { content: "\f5a7"; }
+i.icon.mosque:before { content: "\f678"; }
+i.icon.motorcycle:before { content: "\f21c"; }
+i.icon.mountain:before { content: "\f6fc"; }
+i.icon.mouse:before { content: "\f8cc"; }
+i.icon.mouse.pointer:before { content: "\f245"; }
+i.icon.mug.hot:before { content: "\f7b6"; }
+i.icon.music:before { content: "\f001"; }
+i.icon.network.wired:before { content: "\f6ff"; }
+i.icon.neuter:before { content: "\f22c"; }
+i.icon.newspaper:before { content: "\f1ea"; }
+i.icon.not.equal:before { content: "\f53e"; }
+i.icon.notes.medical:before { content: "\f481"; }
+i.icon.object.group:before { content: "\f247"; }
+i.icon.object.ungroup:before { content: "\f248"; }
+i.icon.oil.can:before { content: "\f613"; }
+i.icon.om:before { content: "\f679"; }
+i.icon.otter:before { content: "\f700"; }
+i.icon.outdent:before { content: "\f03b"; }
+i.icon.pager:before { content: "\f815"; }
+i.icon.paint.brush:before { content: "\f1fc"; }
+i.icon.paint.roller:before { content: "\f5aa"; }
+i.icon.palette:before { content: "\f53f"; }
+i.icon.pallet:before { content: "\f482"; }
+i.icon.paper.plane:before { content: "\f1d8"; }
+i.icon.paperclip:before { content: "\f0c6"; }
+i.icon.parachute.box:before { content: "\f4cd"; }
+i.icon.paragraph:before { content: "\f1dd"; }
+i.icon.parking:before { content: "\f540"; }
+i.icon.passport:before { content: "\f5ab"; }
+i.icon.pastafarianism:before { content: "\f67b"; }
+i.icon.paste:before { content: "\f0ea"; }
+i.icon.pause:before { content: "\f04c"; }
+i.icon.pause.circle:before { content: "\f28b"; }
+i.icon.paw:before { content: "\f1b0"; }
+i.icon.peace:before { content: "\f67c"; }
+i.icon.pen:before { content: "\f304"; }
+i.icon.pen.alternate:before { content: "\f305"; }
+i.icon.pen.fancy:before { content: "\f5ac"; }
+i.icon.pen.nib:before { content: "\f5ad"; }
+i.icon.pen.square:before { content: "\f14b"; }
+i.icon.pencil.alternate:before { content: "\f303"; }
+i.icon.pencil.ruler:before { content: "\f5ae"; }
+i.icon.people.arrows:before { content: "\f968"; }
+i.icon.people.carry:before { content: "\f4ce"; }
+i.icon.pepper.hot:before { content: "\f816"; }
+i.icon.percent:before { content: "\f295"; }
+i.icon.percentage:before { content: "\f541"; }
+i.icon.person.booth:before { content: "\f756"; }
+i.icon.phone:before { content: "\f095"; }
+i.icon.phone.alternate:before { content: "\f879"; }
+i.icon.phone.slash:before { content: "\f3dd"; }
+i.icon.phone.square:before { content: "\f098"; }
+i.icon.phone.square.alternate:before { content: "\f87b"; }
+i.icon.phone.volume:before { content: "\f2a0"; }
+i.icon.photo.video:before { content: "\f87c"; }
+i.icon.piggy.bank:before { content: "\f4d3"; }
+i.icon.pills:before { content: "\f484"; }
+i.icon.pizza.slice:before { content: "\f818"; }
+i.icon.place.of.worship:before { content: "\f67f"; }
+i.icon.plane:before { content: "\f072"; }
+i.icon.plane.arrival:before { content: "\f5af"; }
+i.icon.plane.departure:before { content: "\f5b0"; }
+i.icon.plane.slash:before { content: "\f969"; }
+i.icon.play:before { content: "\f04b"; }
+i.icon.play.circle:before { content: "\f144"; }
+i.icon.plug:before { content: "\f1e6"; }
+i.icon.plus:before { content: "\f067"; }
+i.icon.plus.circle:before { content: "\f055"; }
+i.icon.plus.square:before { content: "\f0fe"; }
+i.icon.podcast:before { content: "\f2ce"; }
+i.icon.poll:before { content: "\f681"; }
+i.icon.poll.horizontal:before { content: "\f682"; }
+i.icon.poo:before { content: "\f2fe"; }
+i.icon.poo.storm:before { content: "\f75a"; }
+i.icon.poop:before { content: "\f619"; }
+i.icon.portrait:before { content: "\f3e0"; }
+i.icon.pound.sign:before { content: "\f154"; }
+i.icon.power.off:before { content: "\f011"; }
+i.icon.pray:before { content: "\f683"; }
+i.icon.praying.hands:before { content: "\f684"; }
+i.icon.prescription:before { content: "\f5b1"; }
+i.icon.prescription.bottle:before { content: "\f485"; }
+i.icon.prescription.bottle.alternate:before { content: "\f486"; }
+i.icon.print:before { content: "\f02f"; }
+i.icon.procedures:before { content: "\f487"; }
+i.icon.project.diagram:before { content: "\f542"; }
+i.icon.pump.medical:before { content: "\f96a"; }
+i.icon.pump.soap:before { content: "\f96b"; }
+i.icon.puzzle.piece:before { content: "\f12e"; }
+i.icon.qrcode:before { content: "\f029"; }
+i.icon.question:before { content: "\f128"; }
+i.icon.question.circle:before { content: "\f059"; }
+i.icon.quidditch:before { content: "\f458"; }
+i.icon.quote.left:before { content: "\f10d"; }
+i.icon.quote.right:before { content: "\f10e"; }
+i.icon.quran:before { content: "\f687"; }
+i.icon.radiation:before { content: "\f7b9"; }
+i.icon.radiation.alternate:before { content: "\f7ba"; }
+i.icon.rainbow:before { content: "\f75b"; }
+i.icon.random:before { content: "\f074"; }
+i.icon.receipt:before { content: "\f543"; }
+i.icon.record.vinyl:before { content: "\f8d9"; }
+i.icon.recycle:before { content: "\f1b8"; }
+i.icon.redo:before { content: "\f01e"; }
+i.icon.redo.alternate:before { content: "\f2f9"; }
+i.icon.registered:before { content: "\f25d"; }
+i.icon.remove.format:before { content: "\f87d"; }
+i.icon.reply:before { content: "\f3e5"; }
+i.icon.reply.all:before { content: "\f122"; }
+i.icon.republican:before { content: "\f75e"; }
+i.icon.restroom:before { content: "\f7bd"; }
+i.icon.retweet:before { content: "\f079"; }
+i.icon.ribbon:before { content: "\f4d6"; }
+i.icon.ring:before { content: "\f70b"; }
+i.icon.road:before { content: "\f018"; }
+i.icon.robot:before { content: "\f544"; }
+i.icon.rocket:before { content: "\f135"; }
+i.icon.route:before { content: "\f4d7"; }
+i.icon.rss:before { content: "\f09e"; }
+i.icon.rss.square:before { content: "\f143"; }
+i.icon.ruble.sign:before { content: "\f158"; }
+i.icon.ruler:before { content: "\f545"; }
+i.icon.ruler.combined:before { content: "\f546"; }
+i.icon.ruler.horizontal:before { content: "\f547"; }
+i.icon.ruler.vertical:before { content: "\f548"; }
+i.icon.running:before { content: "\f70c"; }
+i.icon.rupee.sign:before { content: "\f156"; }
+i.icon.sad.cry:before { content: "\f5b3"; }
+i.icon.sad.tear:before { content: "\f5b4"; }
+i.icon.satellite:before { content: "\f7bf"; }
+i.icon.satellite.dish:before { content: "\f7c0"; }
+i.icon.save:before { content: "\f0c7"; }
+i.icon.school:before { content: "\f549"; }
+i.icon.screwdriver:before { content: "\f54a"; }
+i.icon.scroll:before { content: "\f70e"; }
+i.icon.sd.card:before { content: "\f7c2"; }
+i.icon.search:before { content: "\f002"; }
+i.icon.search.dollar:before { content: "\f688"; }
+i.icon.search.location:before { content: "\f689"; }
+i.icon.search.minus:before { content: "\f010"; }
+i.icon.search.plus:before { content: "\f00e"; }
+i.icon.seedling:before { content: "\f4d8"; }
+i.icon.server:before { content: "\f233"; }
+i.icon.shapes:before { content: "\f61f"; }
+i.icon.share:before { content: "\f064"; }
+i.icon.share.alternate:before { content: "\f1e0"; }
+i.icon.share.alternate.square:before { content: "\f1e1"; }
+i.icon.share.square:before { content: "\f14d"; }
+i.icon.shekel.sign:before { content: "\f20b"; }
+i.icon.shield.alternate:before { content: "\f3ed"; }
+i.icon.shield.virus:before { content: "\f96c"; }
+i.icon.ship:before { content: "\f21a"; }
+i.icon.shipping.fast:before { content: "\f48b"; }
+i.icon.shoe.prints:before { content: "\f54b"; }
+i.icon.shopping.bag:before { content: "\f290"; }
+i.icon.shopping.basket:before { content: "\f291"; }
+i.icon.shopping.cart:before { content: "\f07a"; }
+i.icon.shower:before { content: "\f2cc"; }
+i.icon.shuttle.van:before { content: "\f5b6"; }
+i.icon.sign:before { content: "\f4d9"; }
+i.icon.sign.in.alternate:before { content: "\f2f6"; }
+i.icon.sign.language:before { content: "\f2a7"; }
+i.icon.sign.out.alternate:before { content: "\f2f5"; }
+i.icon.signal:before { content: "\f012"; }
+i.icon.signature:before { content: "\f5b7"; }
+i.icon.sim.card:before { content: "\f7c4"; }
+i.icon.sitemap:before { content: "\f0e8"; }
+i.icon.skating:before { content: "\f7c5"; }
+i.icon.skiing:before { content: "\f7c9"; }
+i.icon.skiing.nordic:before { content: "\f7ca"; }
+i.icon.skull:before { content: "\f54c"; }
+i.icon.skull.crossbones:before { content: "\f714"; }
+i.icon.slash:before { content: "\f715"; }
+i.icon.sleigh:before { content: "\f7cc"; }
+i.icon.sliders.horizontal:before { content: "\f1de"; }
+i.icon.smile:before { content: "\f118"; }
+i.icon.smile.beam:before { content: "\f5b8"; }
+i.icon.smile.wink:before { content: "\f4da"; }
+i.icon.smog:before { content: "\f75f"; }
+i.icon.smoking:before { content: "\f48d"; }
+i.icon.smoking.ban:before { content: "\f54d"; }
+i.icon.sms:before { content: "\f7cd"; }
+i.icon.snowboarding:before { content: "\f7ce"; }
+i.icon.snowflake:before { content: "\f2dc"; }
+i.icon.snowman:before { content: "\f7d0"; }
+i.icon.snowplow:before { content: "\f7d2"; }
+i.icon.soap:before { content: "\f96e"; }
+i.icon.socks:before { content: "\f696"; }
+i.icon.solar.panel:before { content: "\f5ba"; }
+i.icon.sort:before { content: "\f0dc"; }
+i.icon.sort.alphabet.down:before { content: "\f15d"; }
+i.icon.sort.alphabet.down.alternate:before { content: "\f881"; }
+i.icon.sort.alphabet.up:before { content: "\f15e"; }
+i.icon.sort.alphabet.up.alternate:before { content: "\f882"; }
+i.icon.sort.amount.down:before { content: "\f160"; }
+i.icon.sort.amount.down.alternate:before { content: "\f884"; }
+i.icon.sort.amount.up:before { content: "\f161"; }
+i.icon.sort.amount.up.alternate:before { content: "\f885"; }
+i.icon.sort.down:before { content: "\f0dd"; }
+i.icon.sort.numeric.down:before { content: "\f162"; }
+i.icon.sort.numeric.down.alternate:before { content: "\f886"; }
+i.icon.sort.numeric.up:before { content: "\f163"; }
+i.icon.sort.numeric.up.alternate:before { content: "\f887"; }
+i.icon.sort.up:before { content: "\f0de"; }
+i.icon.spa:before { content: "\f5bb"; }
+i.icon.space.shuttle:before { content: "\f197"; }
+i.icon.spell.check:before { content: "\f891"; }
+i.icon.spider:before { content: "\f717"; }
+i.icon.spinner:before { content: "\f110"; }
+i.icon.splotch:before { content: "\f5bc"; }
+i.icon.spray.can:before { content: "\f5bd"; }
+i.icon.square:before { content: "\f0c8"; }
+i.icon.square.full:before { content: "\f45c"; }
+i.icon.square.root.alternate:before { content: "\f698"; }
+i.icon.stamp:before { content: "\f5bf"; }
+i.icon.star:before { content: "\f005"; }
+i.icon.star.and.crescent:before { content: "\f699"; }
+i.icon.star.half:before { content: "\f089"; }
+i.icon.star.half.alternate:before { content: "\f5c0"; }
+i.icon.star.of.david:before { content: "\f69a"; }
+i.icon.star.of.life:before { content: "\f621"; }
+i.icon.step.backward:before { content: "\f048"; }
+i.icon.step.forward:before { content: "\f051"; }
+i.icon.stethoscope:before { content: "\f0f1"; }
+i.icon.sticky.note:before { content: "\f249"; }
+i.icon.stop:before { content: "\f04d"; }
+i.icon.stop.circle:before { content: "\f28d"; }
+i.icon.stopwatch:before { content: "\f2f2"; }
+i.icon.stopwatch.twenty:before { content: "\f96f"; }
+i.icon.store:before { content: "\f54e"; }
+i.icon.store.alternate:before { content: "\f54f"; }
+i.icon.store.alternate.slash:before { content: "\f970"; }
+i.icon.store.slash:before { content: "\f971"; }
+i.icon.stream:before { content: "\f550"; }
+i.icon.street.view:before { content: "\f21d"; }
+i.icon.strikethrough:before { content: "\f0cc"; }
+i.icon.stroopwafel:before { content: "\f551"; }
+i.icon.subscript:before { content: "\f12c"; }
+i.icon.subway:before { content: "\f239"; }
+i.icon.suitcase:before { content: "\f0f2"; }
+i.icon.suitcase.rolling:before { content: "\f5c1"; }
+i.icon.sun:before { content: "\f185"; }
+i.icon.superscript:before { content: "\f12b"; }
+i.icon.surprise:before { content: "\f5c2"; }
+i.icon.swatchbook:before { content: "\f5c3"; }
+i.icon.swimmer:before { content: "\f5c4"; }
+i.icon.swimming.pool:before { content: "\f5c5"; }
+i.icon.synagogue:before { content: "\f69b"; }
+i.icon.sync:before { content: "\f021"; }
+i.icon.sync.alternate:before { content: "\f2f1"; }
+i.icon.syringe:before { content: "\f48e"; }
+i.icon.table:before { content: "\f0ce"; }
+i.icon.table.tennis:before { content: "\f45d"; }
+i.icon.tablet:before { content: "\f10a"; }
+i.icon.tablet.alternate:before { content: "\f3fa"; }
+i.icon.tablets:before { content: "\f490"; }
+i.icon.tachometer.alternate:before { content: "\f3fd"; }
+i.icon.tag:before { content: "\f02b"; }
+i.icon.tags:before { content: "\f02c"; }
+i.icon.tape:before { content: "\f4db"; }
+i.icon.tasks:before { content: "\f0ae"; }
+i.icon.taxi:before { content: "\f1ba"; }
+i.icon.teeth:before { content: "\f62e"; }
+i.icon.teeth.open:before { content: "\f62f"; }
+i.icon.temperature.high:before { content: "\f769"; }
+i.icon.temperature.low:before { content: "\f76b"; }
+i.icon.tenge:before { content: "\f7d7"; }
+i.icon.terminal:before { content: "\f120"; }
+i.icon.text.height:before { content: "\f034"; }
+i.icon.text.width:before { content: "\f035"; }
+i.icon.th:before { content: "\f00a"; }
+i.icon.th.large:before { content: "\f009"; }
+i.icon.th.list:before { content: "\f00b"; }
+i.icon.theater.masks:before { content: "\f630"; }
+i.icon.thermometer:before { content: "\f491"; }
+i.icon.thermometer.empty:before { content: "\f2cb"; }
+i.icon.thermometer.full:before { content: "\f2c7"; }
+i.icon.thermometer.half:before { content: "\f2c9"; }
+i.icon.thermometer.quarter:before { content: "\f2ca"; }
+i.icon.thermometer.three.quarters:before { content: "\f2c8"; }
+i.icon.thumbs.down:before { content: "\f165"; }
+i.icon.thumbs.up:before { content: "\f164"; }
+i.icon.thumbtack:before { content: "\f08d"; }
+i.icon.ticket.alternate:before { content: "\f3ff"; }
+i.icon.times:before { content: "\f00d"; }
+i.icon.times.circle:before { content: "\f057"; }
+i.icon.tint:before { content: "\f043"; }
+i.icon.tint.slash:before { content: "\f5c7"; }
+i.icon.tired:before { content: "\f5c8"; }
+i.icon.toggle.off:before { content: "\f204"; }
+i.icon.toggle.on:before { content: "\f205"; }
+i.icon.toilet:before { content: "\f7d8"; }
+i.icon.toilet.paper:before { content: "\f71e"; }
+i.icon.toilet.paper.slash:before { content: "\f972"; }
+i.icon.toolbox:before { content: "\f552"; }
+i.icon.tools:before { content: "\f7d9"; }
+i.icon.tooth:before { content: "\f5c9"; }
+i.icon.torah:before { content: "\f6a0"; }
+i.icon.torii.gate:before { content: "\f6a1"; }
+i.icon.tractor:before { content: "\f722"; }
+i.icon.trademark:before { content: "\f25c"; }
+i.icon.traffic.light:before { content: "\f637"; }
+i.icon.trailer:before { content: "\f941"; }
+i.icon.train:before { content: "\f238"; }
+i.icon.tram:before { content: "\f7da"; }
+i.icon.transgender:before { content: "\f224"; }
+i.icon.transgender.alternate:before { content: "\f225"; }
+i.icon.trash:before { content: "\f1f8"; }
+i.icon.trash.alternate:before { content: "\f2ed"; }
+i.icon.trash.restore:before { content: "\f829"; }
+i.icon.trash.restore.alternate:before { content: "\f82a"; }
+i.icon.tree:before { content: "\f1bb"; }
+i.icon.trophy:before { content: "\f091"; }
+i.icon.truck:before { content: "\f0d1"; }
+i.icon.truck.monster:before { content: "\f63b"; }
+i.icon.truck.moving:before { content: "\f4df"; }
+i.icon.truck.packing:before { content: "\f4de"; }
+i.icon.truck.pickup:before { content: "\f63c"; }
+i.icon.tshirt:before { content: "\f553"; }
+i.icon.tty:before { content: "\f1e4"; }
+i.icon.tv:before { content: "\f26c"; }
+i.icon.umbrella:before { content: "\f0e9"; }
+i.icon.umbrella.beach:before { content: "\f5ca"; }
+i.icon.underline:before { content: "\f0cd"; }
+i.icon.undo:before { content: "\f0e2"; }
+i.icon.undo.alternate:before { content: "\f2ea"; }
+i.icon.universal.access:before { content: "\f29a"; }
+i.icon.university:before { content: "\f19c"; }
+i.icon.unlink:before { content: "\f127"; }
+i.icon.unlock:before { content: "\f09c"; }
+i.icon.unlock.alternate:before { content: "\f13e"; }
+i.icon.upload:before { content: "\f093"; }
+i.icon.user:before { content: "\f007"; }
+i.icon.user.alternate:before { content: "\f406"; }
+i.icon.user.alternate.slash:before { content: "\f4fa"; }
+i.icon.user.astronaut:before { content: "\f4fb"; }
+i.icon.user.check:before { content: "\f4fc"; }
+i.icon.user.circle:before { content: "\f2bd"; }
+i.icon.user.clock:before { content: "\f4fd"; }
+i.icon.user.cog:before { content: "\f4fe"; }
+i.icon.user.edit:before { content: "\f4ff"; }
+i.icon.user.friends:before { content: "\f500"; }
+i.icon.user.graduate:before { content: "\f501"; }
+i.icon.user.injured:before { content: "\f728"; }
+i.icon.user.lock:before { content: "\f502"; }
+i.icon.user.md:before { content: "\f0f0"; }
+i.icon.user.minus:before { content: "\f503"; }
+i.icon.user.ninja:before { content: "\f504"; }
+i.icon.user.nurse:before { content: "\f82f"; }
+i.icon.user.plus:before { content: "\f234"; }
+i.icon.user.secret:before { content: "\f21b"; }
+i.icon.user.shield:before { content: "\f505"; }
+i.icon.user.slash:before { content: "\f506"; }
+i.icon.user.tag:before { content: "\f507"; }
+i.icon.user.tie:before { content: "\f508"; }
+i.icon.user.times:before { content: "\f235"; }
+i.icon.users:before { content: "\f0c0"; }
+i.icon.users.cog:before { content: "\f509"; }
+i.icon.utensil.spoon:before { content: "\f2e5"; }
+i.icon.utensils:before { content: "\f2e7"; }
+i.icon.vector.square:before { content: "\f5cb"; }
+i.icon.venus:before { content: "\f221"; }
+i.icon.venus.double:before { content: "\f226"; }
+i.icon.venus.mars:before { content: "\f228"; }
+i.icon.vial:before { content: "\f492"; }
+i.icon.vials:before { content: "\f493"; }
+i.icon.video:before { content: "\f03d"; }
+i.icon.video.slash:before { content: "\f4e2"; }
+i.icon.vihara:before { content: "\f6a7"; }
+i.icon.virus:before { content: "\f974"; }
+i.icon.virus.slash:before { content: "\f975"; }
+i.icon.viruses:before { content: "\f976"; }
+i.icon.voicemail:before { content: "\f897"; }
+i.icon.volleyball.ball:before { content: "\f45f"; }
+i.icon.volume.down:before { content: "\f027"; }
+i.icon.volume.mute:before { content: "\f6a9"; }
+i.icon.volume.off:before { content: "\f026"; }
+i.icon.volume.up:before { content: "\f028"; }
+i.icon.vote.yea:before { content: "\f772"; }
+i.icon.vr.cardboard:before { content: "\f729"; }
+i.icon.walking:before { content: "\f554"; }
+i.icon.wallet:before { content: "\f555"; }
+i.icon.warehouse:before { content: "\f494"; }
+i.icon.water:before { content: "\f773"; }
+i.icon.wave.square:before { content: "\f83e"; }
+i.icon.weight:before { content: "\f496"; }
+i.icon.weight.hanging:before { content: "\f5cd"; }
+i.icon.wheelchair:before { content: "\f193"; }
+i.icon.wifi:before { content: "\f1eb"; }
+i.icon.wind:before { content: "\f72e"; }
+i.icon.window.close:before { content: "\f410"; }
+i.icon.window.maximize:before { content: "\f2d0"; }
+i.icon.window.minimize:before { content: "\f2d1"; }
+i.icon.window.restore:before { content: "\f2d2"; }
+i.icon.wine.bottle:before { content: "\f72f"; }
+i.icon.wine.glass:before { content: "\f4e3"; }
+i.icon.wine.glass.alternate:before { content: "\f5ce"; }
+i.icon.won.sign:before { content: "\f159"; }
+i.icon.wrench:before { content: "\f0ad"; }
+i.icon.x.ray:before { content: "\f497"; }
+i.icon.yen.sign:before { content: "\f157"; }
+i.icon.yin.yang:before { content: "\f6ad"; }
+
+/* Aliases */
+i.icon.add:before { content: "\f067"; }
+i.icon.add.circle:before { content: "\f055"; }
+i.icon.add.square:before { content: "\f0fe"; }
+i.icon.add.to.calendar:before { content: "\f271"; }
+i.icon.add.to.cart:before { content: "\f217"; }
+i.icon.add.user:before { content: "\f234"; }
+i.icon.alarm:before { content: "\f0f3"; }
+i.icon.alarm.mute:before { content: "\f1f6"; }
+i.icon.ald:before { content: "\f2a2"; }
+i.icon.als:before { content: "\f2a2"; }
+i.icon.announcement:before { content: "\f0a1"; }
+i.icon.area.chart:before { content: "\f1fe"; }
+i.icon.area.graph:before { content: "\f1fe"; }
+i.icon.arrow.down.cart:before { content: "\f218"; }
+i.icon.asexual:before { content: "\f22d"; }
+i.icon.asl:before { content: "\f2a3"; }
+i.icon.asl.interpreting:before { content: "\f2a3"; }
+i.icon.assistive.listening.devices:before { content: "\f2a2"; }
+i.icon.attach:before { content: "\f0c6"; }
+i.icon.attention:before { content: "\f06a"; }
+i.icon.balance:before { content: "\f24e"; }
+i.icon.bar:before { content: "\f0fc"; }
+i.icon.bathtub:before { content: "\f2cd"; }
+i.icon.battery.four:before { content: "\f240"; }
+i.icon.battery.high:before { content: "\f241"; }
+i.icon.battery.low:before { content: "\f243"; }
+i.icon.battery.medium:before { content: "\f242"; }
+i.icon.battery.one:before { content: "\f243"; }
+i.icon.battery.three:before { content: "\f241"; }
+i.icon.battery.two:before { content: "\f242"; }
+i.icon.battery.zero:before { content: "\f244"; }
+i.icon.birthday:before { content: "\f1fd"; }
+i.icon.block.layout:before { content: "\f009"; }
+i.icon.broken.chain:before { content: "\f127"; }
+i.icon.browser:before { content: "\f022"; }
+i.icon.call:before { content: "\f095"; }
+i.icon.call.square:before { content: "\f098"; }
+i.icon.cancel:before { content: "\f00d"; }
+i.icon.cart:before { content: "\f07a"; }
+i.icon.cc:before { content: "\f20a"; }
+i.icon.chain:before { content: "\f0c1"; }
+i.icon.chat:before { content: "\f075"; }
+i.icon.checked.calendar:before { content: "\f274"; }
+i.icon.checkmark:before { content: "\f00c"; }
+i.icon.checkmark.box:before { content: "\f14a"; }
+i.icon.chess.rock:before { content: "\f447"; }
+i.icon.circle.notched:before { content: "\f1ce"; }
+i.icon.circle.thin:before { content: "\f111"; }
+i.icon.close:before { content: "\f00d"; }
+i.icon.cloud.download:before { content: "\f381"; }
+i.icon.cloud.upload:before { content: "\f382"; }
+i.icon.cny:before { content: "\f157"; }
+i.icon.cocktail:before { content: "\f000"; }
+i.icon.commenting:before { content: "\f27a"; }
+i.icon.compose:before { content: "\f303"; }
+i.icon.computer:before { content: "\f108"; }
+i.icon.configure:before { content: "\f0ad"; }
+i.icon.content:before { content: "\f0c9"; }
+i.icon.conversation:before { content: "\f086"; }
+i.icon.credit.card.alternative:before { content: "\f09d"; }
+i.icon.currency:before { content: "\f3d1"; }
+i.icon.dashboard:before { content: "\f3fd"; }
+i.icon.deafness:before { content: "\f2a4"; }
+i.icon.delete:before { content: "\f00d"; }
+i.icon.delete.calendar:before { content: "\f273"; }
+i.icon.detective:before { content: "\f21b"; }
+i.icon.diamond:before { content: "\f3a5"; }
+i.icon.discussions:before { content: "\f086"; }
+i.icon.disk:before { content: "\f0a0"; }
+i.icon.doctor:before { content: "\f0f0"; }
+i.icon.dollar:before { content: "\f155"; }
+i.icon.dont:before { content: "\f05e"; }
+i.icon.drivers.license:before { content: "\f2c2"; }
+i.icon.dropdown:before { content: "\f0d7"; }
+i.icon.emergency:before { content: "\f0f9"; }
+i.icon.erase:before { content: "\f12d"; }
+i.icon.eur:before { content: "\f153"; }
+i.icon.euro:before { content: "\f153"; }
+i.icon.exchange:before { content: "\f362"; }
+i.icon.external:before { content: "\f35d"; }
+i.icon.external.share:before { content: "\f14d"; }
+i.icon.external.square:before { content: "\f360"; }
+i.icon.eyedropper:before { content: "\f1fb"; }
+i.icon.factory:before { content: "\f275"; }
+i.icon.favorite:before { content: "\f005"; }
+i.icon.feed:before { content: "\f09e"; }
+i.icon.female.homosexual:before { content: "\f226"; }
+i.icon.file.text:before { content: "\f15c"; }
+i.icon.find:before { content: "\f1e5"; }
+i.icon.first.aid:before { content: "\f0fa"; }
+i.icon.food:before { content: "\f2e7"; }
+i.icon.fork:before { content: "\f126"; }
+i.icon.game:before { content: "\f11b"; }
+i.icon.gay:before { content: "\f227"; }
+i.icon.gbp:before { content: "\f154"; }
+i.icon.grab:before { content: "\f255"; }
+i.icon.graduation:before { content: "\f19d"; }
+i.icon.grid.layout:before { content: "\f00a"; }
+i.icon.group:before { content: "\f0c0"; }
+i.icon.h:before { content: "\f0fd"; }
+i.icon.hamburger:before { content: "\f0c9"; }
+i.icon.hand.victory:before { content: "\f25b"; }
+i.icon.handicap:before { content: "\f193"; }
+i.icon.hard.of.hearing:before { content: "\f2a4"; }
+i.icon.header:before { content: "\f1dc"; }
+i.icon.heart.empty:before { content: "\f004"; }
+i.icon.help:before { content: "\f128"; }
+i.icon.help.circle:before { content: "\f059"; }
+i.icon.heterosexual:before { content: "\f228"; }
+i.icon.hide:before { content: "\f070"; }
+i.icon.hotel:before { content: "\f236"; }
+i.icon.hourglass.four:before { content: "\f254"; }
+i.icon.hourglass.full:before { content: "\f254"; }
+i.icon.hourglass.one:before { content: "\f251"; }
+i.icon.hourglass.three:before { content: "\f253"; }
+i.icon.hourglass.two:before { content: "\f252"; }
+i.icon.hourglass.zero:before { content: "\f253"; }
+i.icon.idea:before { content: "\f0eb"; }
+i.icon.ils:before { content: "\f20b"; }
+i.icon.in.cart:before { content: "\f218"; }
+i.icon.inr:before { content: "\f156"; }
+i.icon.intergender:before { content: "\f224"; }
+i.icon.intersex:before { content: "\f224"; }
+i.icon.jpy:before { content: "\f157"; }
+i.icon.krw:before { content: "\f159"; }
+i.icon.lab:before { content: "\f0c3"; }
+i.icon.law:before { content: "\f24e"; }
+i.icon.legal:before { content: "\f0e3"; }
+i.icon.lesbian:before { content: "\f226"; }
+i.icon.level.down:before { content: "\f3be"; }
+i.icon.level.up:before { content: "\f3bf"; }
+i.icon.lightning:before { content: "\f0e7"; }
+i.icon.like:before { content: "\f004"; }
+i.icon.line.graph:before { content: "\f201"; }
+i.icon.linegraph:before { content: "\f201"; }
+i.icon.linkify:before { content: "\f0c1"; }
+i.icon.lira:before { content: "\f195"; }
+i.icon.list.layout:before { content: "\f00b"; }
+i.icon.log.out:before { content: "\f2f5"; }
+i.icon.magnify:before { content: "\f00e"; }
+i.icon.mail:before { content: "\f0e0"; }
+i.icon.mail.forward:before { content: "\f064"; }
+i.icon.mail.square:before { content: "\f199"; }
+i.icon.male.homosexual:before { content: "\f227"; }
+i.icon.man:before { content: "\f222"; }
+i.icon.marker:before { content: "\f041"; }
+i.icon.mars.alternate:before { content: "\f229"; }
+i.icon.mars.horizontal:before { content: "\f22b"; }
+i.icon.mars.vertical:before { content: "\f22a"; }
+i.icon.meanpath:before { content: "\f0c8"; }
+i.icon.military:before { content: "\f0fb"; }
+i.icon.money:before { content: "\f3d1"; }
+i.icon.move:before { content: "\f0b2"; }
+i.icon.mute:before { content: "\f131"; }
+i.icon.non.binary.transgender:before { content: "\f223"; }
+i.icon.numbered.list:before { content: "\f0cb"; }
+i.icon.options:before { content: "\f1de"; }
+i.icon.ordered.list:before { content: "\f0cb"; }
+i.icon.other.gender:before { content: "\f229"; }
+i.icon.other.gender.horizontal:before { content: "\f22b"; }
+i.icon.other.gender.vertical:before { content: "\f22a"; }
+i.icon.payment:before { content: "\f09d"; }
+i.icon.pencil:before { content: "\f303"; }
+i.icon.pencil.square:before { content: "\f14b"; }
+i.icon.photo:before { content: "\f030"; }
+i.icon.picture:before { content: "\f03e"; }
+i.icon.pie.chart:before { content: "\f200"; }
+i.icon.pie.graph:before { content: "\f200"; }
+i.icon.pin:before { content: "\f08d"; }
+i.icon.plus.cart:before { content: "\f217"; }
+i.icon.point:before { content: "\f041"; }
+i.icon.pointing.down:before { content: "\f0a7"; }
+i.icon.pointing.left:before { content: "\f0a5"; }
+i.icon.pointing.right:before { content: "\f0a4"; }
+i.icon.pointing.up:before { content: "\f0a6"; }
+i.icon.pound:before { content: "\f154"; }
+i.icon.power:before { content: "\f011"; }
+i.icon.power.cord:before { content: "\f1e6"; }
+i.icon.privacy:before { content: "\f084"; }
+i.icon.protect:before { content: "\f023"; }
+i.icon.puzzle:before { content: "\f12e"; }
+i.icon.r.circle:before { content: "\f25d"; }
+i.icon.radio:before { content: "\f192"; }
+i.icon.rain:before { content: "\f0e9"; }
+i.icon.record:before { content: "\f03d"; }
+i.icon.refresh:before { content: "\f021"; }
+i.icon.remove:before { content: "\f00d"; }
+i.icon.remove.bookmark:before { content: "\f02e"; }
+i.icon.remove.circle:before { content: "\f057"; }
+i.icon.remove.from.calendar:before { content: "\f272"; }
+i.icon.remove.user:before { content: "\f235"; }
+i.icon.repeat:before { content: "\f01e"; }
+i.icon.resize.horizontal:before { content: "\f337"; }
+i.icon.resize.vertical:before { content: "\f338"; }
+i.icon.rmb:before { content: "\f157"; }
+i.icon.rouble:before { content: "\f158"; }
+i.icon.rub:before { content: "\f158"; }
+i.icon.ruble:before { content: "\f158"; }
+i.icon.rupee:before { content: "\f156"; }
+i.icon.s15:before { content: "\f2cd"; }
+i.icon.selected.radio:before { content: "\f192"; }
+i.icon.send:before { content: "\f1d8"; }
+i.icon.setting:before { content: "\f013"; }
+i.icon.settings:before { content: "\f085"; }
+i.icon.shekel:before { content: "\f20b"; }
+i.icon.sheqel:before { content: "\f20b"; }
+i.icon.shield:before { content: "\f3ed"; }
+i.icon.shipping:before { content: "\f0d1"; }
+i.icon.shop:before { content: "\f07a"; }
+i.icon.shuffle:before { content: "\f074"; }
+i.icon.shutdown:before { content: "\f011"; }
+i.icon.sidebar:before { content: "\f0c9"; }
+i.icon.sign.in:before { content: "\f2f6"; }
+i.icon.sign.out:before { content: "\f2f5"; }
+i.icon.signing:before { content: "\f2a7"; }
+i.icon.signup:before { content: "\f044"; }
+i.icon.sliders:before { content: "\f1de"; }
+i.icon.soccer:before { content: "\f1e3"; }
+i.icon.sort.alphabet.ascending:before { content: "\f15d"; }
+i.icon.sort.alphabet.descending:before { content: "\f15e"; }
+i.icon.sort.ascending:before { content: "\f0de"; }
+i.icon.sort.content.ascending:before { content: "\f160"; }
+i.icon.sort.content.descending:before { content: "\f161"; }
+i.icon.sort.descending:before { content: "\f0dd"; }
+i.icon.sort.numeric.ascending:before { content: "\f162"; }
+i.icon.sort.numeric.descending:before { content: "\f163"; }
+i.icon.sound:before { content: "\f025"; }
+i.icon.spoon:before { content: "\f2e5"; }
+i.icon.spy:before { content: "\f21b"; }
+i.icon.star.empty:before { content: "\f005"; }
+i.icon.star.half.empty:before { content: "\f089"; }
+i.icon.star.half.full:before { content: "\f089"; }
+i.icon.student:before { content: "\f19d"; }
+i.icon.talk:before { content: "\f27a"; }
+i.icon.target:before { content: "\f140"; }
+i.icon.teletype:before { content: "\f1e4"; }
+i.icon.television:before { content: "\f26c"; }
+i.icon.text.cursor:before { content: "\f246"; }
+i.icon.text.telephone:before { content: "\f1e4"; }
+i.icon.theme:before { content: "\f043"; }
+i.icon.thermometer:before { content: "\f2c7"; }
+i.icon.thumb.tack:before { content: "\f08d"; }
+i.icon.ticket:before { content: "\f3ff"; }
+i.icon.time:before { content: "\f017"; }
+i.icon.times.rectangle:before { content: "\f410"; }
+i.icon.tm:before { content: "\f25c"; }
+i.icon.toggle.down:before { content: "\f150"; }
+i.icon.toggle.left:before { content: "\f191"; }
+i.icon.toggle.right:before { content: "\f152"; }
+i.icon.toggle.up:before { content: "\f151"; }
+i.icon.translate:before { content: "\f1ab"; }
+i.icon.travel:before { content: "\f0b1"; }
+i.icon.treatment:before { content: "\f0f1"; }
+i.icon.triangle.down:before { content: "\f0d7"; }
+i.icon.triangle.left:before { content: "\f0d9"; }
+i.icon.triangle.right:before { content: "\f0da"; }
+i.icon.triangle.up:before { content: "\f0d8"; }
+i.icon.try:before { content: "\f195"; }
+i.icon.unhide:before { content: "\f06e"; }
+i.icon.unlinkify:before { content: "\f127"; }
+i.icon.unmute:before { content: "\f130"; }
+i.icon.unordered.list:before { content: "\f0ca"; }
+i.icon.usd:before { content: "\f155"; }
+i.icon.user.cancel:before { content: "\f235"; }
+i.icon.user.close:before { content: "\f235"; }
+i.icon.user.delete:before { content: "\f235"; }
+i.icon.user.doctor:before { content: "\f0f0"; }
+i.icon.user.x:before { content: "\f235"; }
+i.icon.vcard:before { content: "\f2bb"; }
+i.icon.video.camera:before { content: "\f03d"; }
+i.icon.video.play:before { content: "\f144"; }
+i.icon.volume.control.phone:before { content: "\f2a0"; }
+i.icon.wait:before { content: "\f017"; }
+i.icon.warning:before { content: "\f12a"; }
+i.icon.warning.circle:before { content: "\f06a"; }
+i.icon.warning.sign:before { content: "\f071"; }
+i.icon.wi.fi:before { content: "\f1eb"; }
+i.icon.winner:before { content: "\f091"; }
+i.icon.wizard:before { content: "\f0d0"; }
+i.icon.woman:before { content: "\f221"; }
+i.icon.won:before { content: "\f159"; }
+i.icon.world:before { content: "\f0ac"; }
+i.icon.write:before { content: "\f303"; }
+i.icon.write.square:before { content: "\f14b"; }
+i.icon.x:before { content: "\f00d"; }
+i.icon.yen:before { content: "\f157"; }
+i.icon.zip:before { content: "\f187"; }
+i.icon.zoom:before { content: "\f00e"; }
+i.icon.zoom.in:before { content: "\f00e"; }
+i.icon.zoom.out:before { content: "\f010"; }
+
+/*******************************
+ Outline Icons
+*******************************/
+
+/* Outline Icon */
+.loadOutlineIcons() when (@importOutlineIcons) {
+ /* Load & Define Icon Font */
+ @font-face {
+ font-family: @outlineFontName;
+ src: @outlineFallbackSRC;
+ src: @outlineSrc;
+ font-style: normal;
+ font-weight: @normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+ }
+
+ i.icon.outline {
+ font-family: @outlineFontName;
+ }
+
+ /* Icons */
+ i.icon.address.book.outline:before { content: "\f2b9"; }
+ i.icon.address.card.outline:before { content: "\f2bb"; }
+ i.icon.angry.outline:before { content: "\f556"; }
+ i.icon.arrow.alternate.circle.down.outline:before { content: "\f358"; }
+ i.icon.arrow.alternate.circle.left.outline:before { content: "\f359"; }
+ i.icon.arrow.alternate.circle.right.outline:before { content: "\f35a"; }
+ i.icon.arrow.alternate.circle.up.outline:before { content: "\f35b"; }
+ i.icon.bell.outline:before { content: "\f0f3"; }
+ i.icon.bell.slash.outline:before { content: "\f1f6"; }
+ i.icon.bookmark.outline:before { content: "\f02e"; }
+ i.icon.building.outline:before { content: "\f1ad"; }
+ i.icon.calendar.alternate.outline:before { content: "\f073"; }
+ i.icon.calendar.check.outline:before { content: "\f274"; }
+ i.icon.calendar.minus.outline:before { content: "\f272"; }
+ i.icon.calendar.outline:before { content: "\f133"; }
+ i.icon.calendar.plus.outline:before { content: "\f271"; }
+ i.icon.calendar.times.outline:before { content: "\f273"; }
+ i.icon.caret.square.down.outline:before { content: "\f150"; }
+ i.icon.caret.square.left.outline:before { content: "\f191"; }
+ i.icon.caret.square.right.outline:before { content: "\f152"; }
+ i.icon.caret.square.up.outline:before { content: "\f151"; }
+ i.icon.chart.bar.outline:before { content: "\f080"; }
+ i.icon.check.circle.outline:before { content: "\f058"; }
+ i.icon.check.square.outline:before { content: "\f14a"; }
+ i.icon.circle.outline:before { content: "\f111"; }
+ i.icon.clipboard.outline:before { content: "\f328"; }
+ i.icon.clock.outline:before { content: "\f017"; }
+ i.icon.clone.outline:before { content: "\f24d"; }
+ i.icon.closed.captioning.outline:before { content: "\f20a"; }
+ i.icon.comment.alternate.outline:before { content: "\f27a"; }
+ i.icon.comment.dots.outline:before { content: "\f4ad"; }
+ i.icon.comment.outline:before { content: "\f075"; }
+ i.icon.comments.outline:before { content: "\f086"; }
+ i.icon.compass.outline:before { content: "\f14e"; }
+ i.icon.copy.outline:before { content: "\f0c5"; }
+ i.icon.copyright.outline:before { content: "\f1f9"; }
+ i.icon.credit.card.outline:before { content: "\f09d"; }
+ i.icon.dizzy.outline:before { content: "\f567"; }
+ i.icon.dot.circle.outline:before { content: "\f192"; }
+ i.icon.edit.outline:before { content: "\f044"; }
+ i.icon.envelope.open.outline:before { content: "\f2b6"; }
+ i.icon.envelope.outline:before { content: "\f0e0"; }
+ i.icon.eye.outline:before { content: "\f06e"; }
+ i.icon.eye.slash.outline:before { content: "\f070"; }
+ i.icon.file.alternate.outline:before { content: "\f15c"; }
+ i.icon.file.archive.outline:before { content: "\f1c6"; }
+ i.icon.file.audio.outline:before { content: "\f1c7"; }
+ i.icon.file.code.outline:before { content: "\f1c9"; }
+ i.icon.file.excel.outline:before { content: "\f1c3"; }
+ i.icon.file.image.outline:before { content: "\f1c5"; }
+ i.icon.file.outline:before { content: "\f15b"; }
+ i.icon.file.pdf.outline:before { content: "\f1c1"; }
+ i.icon.file.powerpoint.outline:before { content: "\f1c4"; }
+ i.icon.file.video.outline:before { content: "\f1c8"; }
+ i.icon.file.word.outline:before { content: "\f1c2"; }
+ i.icon.flag.outline:before { content: "\f024"; }
+ i.icon.flushed.outline:before { content: "\f579"; }
+ i.icon.folder.open.outline:before { content: "\f07c"; }
+ i.icon.folder.outline:before { content: "\f07b"; }
+ i.icon.frown.open.outline:before { content: "\f57a"; }
+ i.icon.frown.outline:before { content: "\f119"; }
+ i.icon.futbol.outline:before { content: "\f1e3"; }
+ i.icon.gem.outline:before { content: "\f3a5"; }
+ i.icon.grimace.outline:before { content: "\f57f"; }
+ i.icon.grin.alternate.outline:before { content: "\f581"; }
+ i.icon.grin.beam.outline:before { content: "\f582"; }
+ i.icon.grin.beam.sweat.outline:before { content: "\f583"; }
+ i.icon.grin.hearts.outline:before { content: "\f584"; }
+ i.icon.grin.outline:before { content: "\f580"; }
+ i.icon.grin.squint.outline:before { content: "\f585"; }
+ i.icon.grin.squint.tears.outline:before { content: "\f586"; }
+ i.icon.grin.stars.outline:before { content: "\f587"; }
+ i.icon.grin.tears.outline:before { content: "\f588"; }
+ i.icon.grin.tongue.outline:before { content: "\f589"; }
+ i.icon.grin.tongue.squint.outline:before { content: "\f58a"; }
+ i.icon.grin.tongue.wink.outline:before { content: "\f58b"; }
+ i.icon.grin.wink.outline:before { content: "\f58c"; }
+ i.icon.hand.lizard.outline:before { content: "\f258"; }
+ i.icon.hand.paper.outline:before { content: "\f256"; }
+ i.icon.hand.peace.outline:before { content: "\f25b"; }
+ i.icon.hand.point.down.outline:before { content: "\f0a7"; }
+ i.icon.hand.point.left.outline:before { content: "\f0a5"; }
+ i.icon.hand.point.right.outline:before { content: "\f0a4"; }
+ i.icon.hand.point.up.outline:before { content: "\f0a6"; }
+ i.icon.hand.pointer.outline:before { content: "\f25a"; }
+ i.icon.hand.rock.outline:before { content: "\f255"; }
+ i.icon.hand.scissors.outline:before { content: "\f257"; }
+ i.icon.hand.spock.outline:before { content: "\f259"; }
+ i.icon.handshake.outline:before { content: "\f2b5"; }
+ i.icon.hdd.outline:before { content: "\f0a0"; }
+ i.icon.heart.outline:before { content: "\f004"; }
+ i.icon.hospital.outline:before { content: "\f0f8"; }
+ i.icon.hourglass.outline:before { content: "\f254"; }
+ i.icon.id.badge.outline:before { content: "\f2c1"; }
+ i.icon.id.card.outline:before { content: "\f2c2"; }
+ i.icon.image.outline:before { content: "\f03e"; }
+ i.icon.images.outline:before { content: "\f302"; }
+ i.icon.keyboard.outline:before { content: "\f11c"; }
+ i.icon.kiss.beam.outline:before { content: "\f597"; }
+ i.icon.kiss.outline:before { content: "\f596"; }
+ i.icon.kiss.wink.heart.outline:before { content: "\f598"; }
+ i.icon.laugh.beam.outline:before { content: "\f59a"; }
+ i.icon.laugh.outline:before { content: "\f599"; }
+ i.icon.laugh.squint.outline:before { content: "\f59b"; }
+ i.icon.laugh.wink.outline:before { content: "\f59c"; }
+ i.icon.lemon.outline:before { content: "\f094"; }
+ i.icon.life.ring.outline:before { content: "\f1cd"; }
+ i.icon.lightbulb.outline:before { content: "\f0eb"; }
+ i.icon.list.alternate.outline:before { content: "\f022"; }
+ i.icon.map.outline:before { content: "\f279"; }
+ i.icon.meh.blank.outline:before { content: "\f5a4"; }
+ i.icon.meh.outline:before { content: "\f11a"; }
+ i.icon.meh.rolling.eyes.outline:before { content: "\f5a5"; }
+ i.icon.minus.square.outline:before { content: "\f146"; }
+ i.icon.money.bill.alternate.outline:before { content: "\f3d1"; }
+ i.icon.moon.outline:before { content: "\f186"; }
+ i.icon.newspaper.outline:before { content: "\f1ea"; }
+ i.icon.object.group.outline:before { content: "\f247"; }
+ i.icon.object.ungroup.outline:before { content: "\f248"; }
+ i.icon.paper.plane.outline:before { content: "\f1d8"; }
+ i.icon.pause.circle.outline:before { content: "\f28b"; }
+ i.icon.play.circle.outline:before { content: "\f144"; }
+ i.icon.plus.square.outline:before { content: "\f0fe"; }
+ i.icon.question.circle.outline:before { content: "\f059"; }
+ i.icon.registered.outline:before { content: "\f25d"; }
+ i.icon.sad.cry.outline:before { content: "\f5b3"; }
+ i.icon.sad.tear.outline:before { content: "\f5b4"; }
+ i.icon.save.outline:before { content: "\f0c7"; }
+ i.icon.share.square.outline:before { content: "\f14d"; }
+ i.icon.smile.beam.outline:before { content: "\f5b8"; }
+ i.icon.smile.outline:before { content: "\f118"; }
+ i.icon.smile.wink.outline:before { content: "\f4da"; }
+ i.icon.snowflake.outline:before { content: "\f2dc"; }
+ i.icon.square.outline:before { content: "\f0c8"; }
+ i.icon.star.half.outline:before { content: "\f089"; }
+ i.icon.star.outline:before { content: "\f005"; }
+ i.icon.sticky.note.outline:before { content: "\f249"; }
+ i.icon.stop.circle.outline:before { content: "\f28d"; }
+ i.icon.sun.outline:before { content: "\f185"; }
+ i.icon.surprise.outline:before { content: "\f5c2"; }
+ i.icon.thumbs.down.outline:before { content: "\f165"; }
+ i.icon.thumbs.up.outline:before { content: "\f164"; }
+ i.icon.times.circle.outline:before { content: "\f057"; }
+ i.icon.tired.outline:before { content: "\f5c8"; }
+ i.icon.trash.alternate.outline:before { content: "\f2ed"; }
+ i.icon.user.circle.outline:before { content: "\f2bd"; }
+ i.icon.user.outline:before { content: "\f007"; }
+ i.icon.window.close.outline:before { content: "\f410"; }
+ i.icon.window.maximize.outline:before { content: "\f2d0"; }
+ i.icon.window.minimize.outline:before { content: "\f2d1"; }
+ i.icon.window.restore.outline:before { content: "\f2d2"; }
+
+
+
+}
+.loadOutlineIcons();
+
+
+
+/*******************************
+ Brand Icons
+*******************************/
+
+.loadBrandIcons() when (@importBrandIcons) {
+ /* Load & Define Brand Font */
+ @font-face {
+ font-family: @brandFontName;
+ src: @brandFallbackSRC;
+ src: @brandSrc;
+ font-style: normal;
+ font-weight: @normal;
+ font-variant: normal;
+ text-decoration: inherit;
+ text-transform: none;
+ }
+
+ /* Icons */
+ i.icon.\35 00px:before { content: "\f26e"; font-family: @brandFontName; }
+ i.icon.accessible:before { content: "\f368"; font-family: @brandFontName; }
+ i.icon.accusoft:before { content: "\f369"; font-family: @brandFontName; }
+ i.icon.acquisitions.incorporated:before { content: "\f6af"; font-family: @brandFontName; }
+ i.icon.adn:before { content: "\f170"; font-family: @brandFontName; }
+ i.icon.adobe:before { content: "\f778"; font-family: @brandFontName; }
+ i.icon.adversal:before { content: "\f36a"; font-family: @brandFontName; }
+ i.icon.affiliatetheme:before { content: "\f36b"; font-family: @brandFontName; }
+ i.icon.airbnb:before { content: "\f834"; font-family: @brandFontName; }
+ i.icon.algolia:before { content: "\f36c"; font-family: @brandFontName; }
+ i.icon.alipay:before { content: "\f642"; font-family: @brandFontName; }
+ i.icon.amazon:before { content: "\f270"; font-family: @brandFontName; }
+ i.icon.amazon.pay:before { content: "\f42c"; font-family: @brandFontName; }
+ i.icon.amilia:before { content: "\f36d"; font-family: @brandFontName; }
+ i.icon.android:before { content: "\f17b"; font-family: @brandFontName; }
+ i.icon.angellist:before { content: "\f209"; font-family: @brandFontName; }
+ i.icon.angrycreative:before { content: "\f36e"; font-family: @brandFontName; }
+ i.icon.angular:before { content: "\f420"; font-family: @brandFontName; }
+ i.icon.app.store:before { content: "\f36f"; font-family: @brandFontName; }
+ i.icon.app.store.ios:before { content: "\f370"; font-family: @brandFontName; }
+ i.icon.apper:before { content: "\f371"; font-family: @brandFontName; }
+ i.icon.apple:before { content: "\f179"; font-family: @brandFontName; }
+ i.icon.apple.pay:before { content: "\f415"; font-family: @brandFontName; }
+ i.icon.artstation:before { content: "\f77a"; font-family: @brandFontName; }
+ i.icon.asymmetrik:before { content: "\f372"; font-family: @brandFontName; }
+ i.icon.atlassian:before { content: "\f77b"; font-family: @brandFontName; }
+ i.icon.audible:before { content: "\f373"; font-family: @brandFontName; }
+ i.icon.autoprefixer:before { content: "\f41c"; font-family: @brandFontName; }
+ i.icon.avianex:before { content: "\f374"; font-family: @brandFontName; }
+ i.icon.aviato:before { content: "\f421"; font-family: @brandFontName; }
+ i.icon.aws:before { content: "\f375"; font-family: @brandFontName; }
+ i.icon.bandcamp:before { content: "\f2d5"; font-family: @brandFontName; }
+ i.icon.battle.net:before { content: "\f835"; font-family: @brandFontName; }
+ i.icon.behance:before { content: "\f1b4"; font-family: @brandFontName; }
+ i.icon.behance.square:before { content: "\f1b5"; font-family: @brandFontName; }
+ i.icon.bimobject:before { content: "\f378"; font-family: @brandFontName; }
+ i.icon.bitbucket:before { content: "\f171"; font-family: @brandFontName; }
+ i.icon.bitcoin:before { content: "\f379"; font-family: @brandFontName; }
+ i.icon.bity:before { content: "\f37a"; font-family: @brandFontName; }
+ i.icon.black.tie:before { content: "\f27e"; font-family: @brandFontName; }
+ i.icon.blackberry:before { content: "\f37b"; font-family: @brandFontName; }
+ i.icon.blogger:before { content: "\f37c"; font-family: @brandFontName; }
+ i.icon.blogger.b:before { content: "\f37d"; font-family: @brandFontName; }
+ i.icon.bluetooth:before { content: "\f293"; font-family: @brandFontName; }
+ i.icon.bluetooth.b:before { content: "\f294"; font-family: @brandFontName; }
+ i.icon.bootstrap:before { content: "\f836"; font-family: @brandFontName; }
+ i.icon.btc:before { content: "\f15a"; font-family: @brandFontName; }
+ i.icon.buffer:before { content: "\f837"; font-family: @brandFontName; }
+ i.icon.buromobelexperte:before { content: "\f37f"; font-family: @brandFontName; }
+ i.icon.buy.n.large:before { content: "\f8a6"; font-family: @brandFontName; }
+ i.icon.buysellads:before { content: "\f20d"; font-family: @brandFontName; }
+ i.icon.canadian.maple.leaf:before { content: "\f785"; font-family: @brandFontName; }
+ i.icon.cc.amazon.pay:before { content: "\f42d"; font-family: @brandFontName; }
+ i.icon.cc.amex:before { content: "\f1f3"; font-family: @brandFontName; }
+ i.icon.cc.apple.pay:before { content: "\f416"; font-family: @brandFontName; }
+ i.icon.cc.diners.club:before { content: "\f24c"; font-family: @brandFontName; }
+ i.icon.cc.discover:before { content: "\f1f2"; font-family: @brandFontName; }
+ i.icon.cc.jcb:before { content: "\f24b"; font-family: @brandFontName; }
+ i.icon.cc.mastercard:before { content: "\f1f1"; font-family: @brandFontName; }
+ i.icon.cc.paypal:before { content: "\f1f4"; font-family: @brandFontName; }
+ i.icon.cc.stripe:before { content: "\f1f5"; font-family: @brandFontName; }
+ i.icon.cc.visa:before { content: "\f1f0"; font-family: @brandFontName; }
+ i.icon.centercode:before { content: "\f380"; font-family: @brandFontName; }
+ i.icon.centos:before { content: "\f789"; font-family: @brandFontName; }
+ i.icon.chrome:before { content: "\f268"; font-family: @brandFontName; }
+ i.icon.chromecast:before { content: "\f838"; font-family: @brandFontName; }
+ i.icon.cloudscale:before { content: "\f383"; font-family: @brandFontName; }
+ i.icon.cloudsmith:before { content: "\f384"; font-family: @brandFontName; }
+ i.icon.cloudversify:before { content: "\f385"; font-family: @brandFontName; }
+ i.icon.codepen:before { content: "\f1cb"; font-family: @brandFontName; }
+ i.icon.codiepie:before { content: "\f284"; font-family: @brandFontName; }
+ i.icon.confluence:before { content: "\f78d"; font-family: @brandFontName; }
+ i.icon.connectdevelop:before { content: "\f20e"; font-family: @brandFontName; }
+ i.icon.contao:before { content: "\f26d"; font-family: @brandFontName; }
+ i.icon.cotton.bureau:before { content: "\f89e"; font-family: @brandFontName; }
+ i.icon.cpanel:before { content: "\f388"; font-family: @brandFontName; }
+ i.icon.creative.commons:before { content: "\f25e"; font-family: @brandFontName; }
+ i.icon.creative.commons.by:before { content: "\f4e7"; font-family: @brandFontName; }
+ i.icon.creative.commons.nc:before { content: "\f4e8"; font-family: @brandFontName; }
+ i.icon.creative.commons.nc.eu:before { content: "\f4e9"; font-family: @brandFontName; }
+ i.icon.creative.commons.nc.jp:before { content: "\f4ea"; font-family: @brandFontName; }
+ i.icon.creative.commons.nd:before { content: "\f4eb"; font-family: @brandFontName; }
+ i.icon.creative.commons.pd:before { content: "\f4ec"; font-family: @brandFontName; }
+ i.icon.creative.commons.pd.alternate:before { content: "\f4ed"; font-family: @brandFontName; }
+ i.icon.creative.commons.remix:before { content: "\f4ee"; font-family: @brandFontName; }
+ i.icon.creative.commons.sa:before { content: "\f4ef"; font-family: @brandFontName; }
+ i.icon.creative.commons.sampling:before { content: "\f4f0"; font-family: @brandFontName; }
+ i.icon.creative.commons.sampling.plus:before { content: "\f4f1"; font-family: @brandFontName; }
+ i.icon.creative.commons.share:before { content: "\f4f2"; font-family: @brandFontName; }
+ i.icon.creative.commons.zero:before { content: "\f4f3"; font-family: @brandFontName; }
+ i.icon.critical.role:before { content: "\f6c9"; font-family: @brandFontName; }
+ i.icon.css3:before { content: "\f13c"; font-family: @brandFontName; }
+ i.icon.css3.alternate:before { content: "\f38b"; font-family: @brandFontName; }
+ i.icon.cuttlefish:before { content: "\f38c"; font-family: @brandFontName; }
+ i.icon.d.and.d:before { content: "\f38d"; font-family: @brandFontName; }
+ i.icon.d.and.d.beyond:before { content: "\f6ca"; font-family: @brandFontName; }
+ i.icon.dailymotion:before { content: "\f952"; font-family: @brandFontName; }
+ i.icon.dashcube:before { content: "\f210"; font-family: @brandFontName; }
+ i.icon.delicious:before { content: "\f1a5"; font-family: @brandFontName; }
+ i.icon.deploydog:before { content: "\f38e"; font-family: @brandFontName; }
+ i.icon.deskpro:before { content: "\f38f"; font-family: @brandFontName; }
+ i.icon.dev:before { content: "\f6cc"; font-family: @brandFontName; }
+ i.icon.deviantart:before { content: "\f1bd"; font-family: @brandFontName; }
+ i.icon.dhl:before { content: "\f790"; font-family: @brandFontName; }
+ i.icon.diaspora:before { content: "\f791"; font-family: @brandFontName; }
+ i.icon.digg:before { content: "\f1a6"; font-family: @brandFontName; }
+ i.icon.digital.ocean:before { content: "\f391"; font-family: @brandFontName; }
+ i.icon.discord:before { content: "\f392"; font-family: @brandFontName; }
+ i.icon.discourse:before { content: "\f393"; font-family: @brandFontName; }
+ i.icon.dochub:before { content: "\f394"; font-family: @brandFontName; }
+ i.icon.docker:before { content: "\f395"; font-family: @brandFontName; }
+ i.icon.draft2digital:before { content: "\f396"; font-family: @brandFontName; }
+ i.icon.dribbble:before { content: "\f17d"; font-family: @brandFontName; }
+ i.icon.dribbble.square:before { content: "\f397"; font-family: @brandFontName; }
+ i.icon.dropbox:before { content: "\f16b"; font-family: @brandFontName; }
+ i.icon.drupal:before { content: "\f1a9"; font-family: @brandFontName; }
+ i.icon.dyalog:before { content: "\f399"; font-family: @brandFontName; }
+ i.icon.earlybirds:before { content: "\f39a"; font-family: @brandFontName; }
+ i.icon.ebay:before { content: "\f4f4"; font-family: @brandFontName; }
+ i.icon.edge:before { content: "\f282"; font-family: @brandFontName; }
+ i.icon.elementor:before { content: "\f430"; font-family: @brandFontName; }
+ i.icon.ello:before { content: "\f5f1"; font-family: @brandFontName; }
+ i.icon.ember:before { content: "\f423"; font-family: @brandFontName; }
+ i.icon.empire:before { content: "\f1d1"; font-family: @brandFontName; }
+ i.icon.envira:before { content: "\f299"; font-family: @brandFontName; }
+ i.icon.erlang:before { content: "\f39d"; font-family: @brandFontName; }
+ i.icon.ethereum:before { content: "\f42e"; font-family: @brandFontName; }
+ i.icon.etsy:before { content: "\f2d7"; font-family: @brandFontName; }
+ i.icon.evernote:before { content: "\f839"; font-family: @brandFontName; }
+ i.icon.expeditedssl:before { content: "\f23e"; font-family: @brandFontName; }
+ i.icon.facebook:before { content: "\f09a"; font-family: @brandFontName; }
+ i.icon.facebook.f:before { content: "\f39e"; font-family: @brandFontName; }
+ i.icon.facebook.messenger:before { content: "\f39f"; font-family: @brandFontName; }
+ i.icon.facebook.square:before { content: "\f082"; font-family: @brandFontName; }
+ i.icon.fantasy.flight.games:before { content: "\f6dc"; font-family: @brandFontName; }
+ i.icon.fedex:before { content: "\f797"; font-family: @brandFontName; }
+ i.icon.fedora:before { content: "\f798"; font-family: @brandFontName; }
+ i.icon.figma:before { content: "\f799"; font-family: @brandFontName; }
+ i.icon.firefox:before { content: "\f269"; font-family: @brandFontName; }
+ i.icon.firefox.browser:before { content: "\f907"; font-family: @brandFontName; }
+ i.icon.first.order:before { content: "\f2b0"; font-family: @brandFontName; }
+ i.icon.first.order.alternate:before { content: "\f50a"; font-family: @brandFontName; }
+ i.icon.firstdraft:before { content: "\f3a1"; font-family: @brandFontName; }
+ i.icon.flickr:before { content: "\f16e"; font-family: @brandFontName; }
+ i.icon.flipboard:before { content: "\f44d"; font-family: @brandFontName; }
+ i.icon.fly:before { content: "\f417"; font-family: @brandFontName; }
+ i.icon.font.awesome:before { content: "\f2b4"; font-family: @brandFontName; }
+ i.icon.font.awesome.alternate:before { content: "\f35c"; font-family: @brandFontName; }
+ i.icon.font.awesome.flag:before { content: "\f425"; font-family: @brandFontName; }
+ i.icon.fonticons:before { content: "\f280"; font-family: @brandFontName; }
+ i.icon.fonticons.fi:before { content: "\f3a2"; font-family: @brandFontName; }
+ i.icon.fort.awesome:before { content: "\f286"; font-family: @brandFontName; }
+ i.icon.fort.awesome.alternate:before { content: "\f3a3"; font-family: @brandFontName; }
+ i.icon.forumbee:before { content: "\f211"; font-family: @brandFontName; }
+ i.icon.foursquare:before { content: "\f180"; font-family: @brandFontName; }
+ i.icon.free.code.camp:before { content: "\f2c5"; font-family: @brandFontName; }
+ i.icon.freebsd:before { content: "\f3a4"; font-family: @brandFontName; }
+ i.icon.fulcrum:before { content: "\f50b"; font-family: @brandFontName; }
+ i.icon.galactic.republic:before { content: "\f50c"; font-family: @brandFontName; }
+ i.icon.galactic.senate:before { content: "\f50d"; font-family: @brandFontName; }
+ i.icon.get.pocket:before { content: "\f265"; font-family: @brandFontName; }
+ i.icon.gg:before { content: "\f260"; font-family: @brandFontName; }
+ i.icon.gg.circle:before { content: "\f261"; font-family: @brandFontName; }
+ i.icon.git:before { content: "\f1d3"; font-family: @brandFontName; }
+ i.icon.git.alternate:before { content: "\f841"; font-family: @brandFontName; }
+ i.icon.git.square:before { content: "\f1d2"; font-family: @brandFontName; }
+ i.icon.github:before { content: "\f09b"; font-family: @brandFontName; }
+ i.icon.github.alternate:before { content: "\f113"; font-family: @brandFontName; }
+ i.icon.github.square:before { content: "\f092"; font-family: @brandFontName; }
+ i.icon.gitkraken:before { content: "\f3a6"; font-family: @brandFontName; }
+ i.icon.gitlab:before { content: "\f296"; font-family: @brandFontName; }
+ i.icon.gitter:before { content: "\f426"; font-family: @brandFontName; }
+ i.icon.glide:before { content: "\f2a5"; font-family: @brandFontName; }
+ i.icon.glide.g:before { content: "\f2a6"; font-family: @brandFontName; }
+ i.icon.gofore:before { content: "\f3a7"; font-family: @brandFontName; }
+ i.icon.goodreads:before { content: "\f3a8"; font-family: @brandFontName; }
+ i.icon.goodreads.g:before { content: "\f3a9"; font-family: @brandFontName; }
+ i.icon.google:before { content: "\f1a0"; font-family: @brandFontName; }
+ i.icon.google.drive:before { content: "\f3aa"; font-family: @brandFontName; }
+ i.icon.google.play:before { content: "\f3ab"; font-family: @brandFontName; }
+ i.icon.google.plus:before { content: "\f2b3"; font-family: @brandFontName; }
+ i.icon.google.plus.g:before { content: "\f0d5"; font-family: @brandFontName; }
+ i.icon.google.plus.square:before { content: "\f0d4"; font-family: @brandFontName; }
+ i.icon.google.wallet:before { content: "\f1ee"; font-family: @brandFontName; }
+ i.icon.gratipay:before { content: "\f184"; font-family: @brandFontName; }
+ i.icon.grav:before { content: "\f2d6"; font-family: @brandFontName; }
+ i.icon.gripfire:before { content: "\f3ac"; font-family: @brandFontName; }
+ i.icon.grunt:before { content: "\f3ad"; font-family: @brandFontName; }
+ i.icon.gulp:before { content: "\f3ae"; font-family: @brandFontName; }
+ i.icon.hacker.news:before { content: "\f1d4"; font-family: @brandFontName; }
+ i.icon.hacker.news.square:before { content: "\f3af"; font-family: @brandFontName; }
+ i.icon.hackerrank:before { content: "\f5f7"; font-family: @brandFontName; }
+ i.icon.hips:before { content: "\f452"; font-family: @brandFontName; }
+ i.icon.hire.a.helper:before { content: "\f3b0"; font-family: @brandFontName; }
+ i.icon.hooli:before { content: "\f427"; font-family: @brandFontName; }
+ i.icon.hornbill:before { content: "\f592"; font-family: @brandFontName; }
+ i.icon.hotjar:before { content: "\f3b1"; font-family: @brandFontName; }
+ i.icon.houzz:before { content: "\f27c"; font-family: @brandFontName; }
+ i.icon.html5:before { content: "\f13b"; font-family: @brandFontName; }
+ i.icon.hubspot:before { content: "\f3b2"; font-family: @brandFontName; }
+ i.icon.ideal:before { content: "\f913"; font-family: @brandFontName; }
+ i.icon.imdb:before { content: "\f2d8"; font-family: @brandFontName; }
+ i.icon.instagram:before { content: "\f16d"; font-family: @brandFontName; }
+ i.icon.instagram.square:before { content: "\f955"; font-family: @brandFontName; }
+ i.icon.intercom:before { content: "\f7af"; font-family: @brandFontName; }
+ i.icon.internet.explorer:before { content: "\f26b"; font-family: @brandFontName; }
+ i.icon.invision:before { content: "\f7b0"; font-family: @brandFontName; }
+ i.icon.ioxhost:before { content: "\f208"; font-family: @brandFontName; }
+ i.icon.itch.io:before { content: "\f83a"; font-family: @brandFontName; }
+ i.icon.itunes:before { content: "\f3b4"; font-family: @brandFontName; }
+ i.icon.itunes.note:before { content: "\f3b5"; font-family: @brandFontName; }
+ i.icon.java:before { content: "\f4e4"; font-family: @brandFontName; }
+ i.icon.jedi.order:before { content: "\f50e"; font-family: @brandFontName; }
+ i.icon.jenkins:before { content: "\f3b6"; font-family: @brandFontName; }
+ i.icon.jira:before { content: "\f7b1"; font-family: @brandFontName; }
+ i.icon.joget:before { content: "\f3b7"; font-family: @brandFontName; }
+ i.icon.joomla:before { content: "\f1aa"; font-family: @brandFontName; }
+ i.icon.js:before { content: "\f3b8"; font-family: @brandFontName; }
+ i.icon.js.square:before { content: "\f3b9"; font-family: @brandFontName; }
+ i.icon.jsfiddle:before { content: "\f1cc"; font-family: @brandFontName; }
+ i.icon.kaggle:before { content: "\f5fa"; font-family: @brandFontName; }
+ i.icon.keybase:before { content: "\f4f5"; font-family: @brandFontName; }
+ i.icon.keycdn:before { content: "\f3ba"; font-family: @brandFontName; }
+ i.icon.kickstarter:before { content: "\f3bb"; font-family: @brandFontName; }
+ i.icon.kickstarter.k:before { content: "\f3bc"; font-family: @brandFontName; }
+ i.icon.korvue:before { content: "\f42f"; font-family: @brandFontName; }
+ i.icon.laravel:before { content: "\f3bd"; font-family: @brandFontName; }
+ i.icon.lastfm:before { content: "\f202"; font-family: @brandFontName; }
+ i.icon.lastfm.square:before { content: "\f203"; font-family: @brandFontName; }
+ i.icon.leanpub:before { content: "\f212"; font-family: @brandFontName; }
+ i.icon.lesscss:before { content: "\f41d"; font-family: @brandFontName; }
+ i.icon.linechat:before { content: "\f3c0"; font-family: @brandFontName; }
+ i.icon.linkedin:before { content: "\f08c"; font-family: @brandFontName; }
+ i.icon.linkedin.in:before { content: "\f0e1"; font-family: @brandFontName; }
+ i.icon.linode:before { content: "\f2b8"; font-family: @brandFontName; }
+ i.icon.linux:before { content: "\f17c"; font-family: @brandFontName; }
+ i.icon.lyft:before { content: "\f3c3"; font-family: @brandFontName; }
+ i.icon.magento:before { content: "\f3c4"; font-family: @brandFontName; }
+ i.icon.mailchimp:before { content: "\f59e"; font-family: @brandFontName; }
+ i.icon.mandalorian:before { content: "\f50f"; font-family: @brandFontName; }
+ i.icon.markdown:before { content: "\f60f"; font-family: @brandFontName; }
+ i.icon.mastodon:before { content: "\f4f6"; font-family: @brandFontName; }
+ i.icon.maxcdn:before { content: "\f136"; font-family: @brandFontName; }
+ i.icon.mdb:before { content: "\f8ca"; font-family: @brandFontName; }
+ i.icon.medapps:before { content: "\f3c6"; font-family: @brandFontName; }
+ i.icon.medium:before { content: "\f23a"; font-family: @brandFontName; }
+ i.icon.medium.m:before { content: "\f3c7"; font-family: @brandFontName; }
+ i.icon.medrt:before { content: "\f3c8"; font-family: @brandFontName; }
+ i.icon.meetup:before { content: "\f2e0"; font-family: @brandFontName; }
+ i.icon.megaport:before { content: "\f5a3"; font-family: @brandFontName; }
+ i.icon.mendeley:before { content: "\f7b3"; font-family: @brandFontName; }
+ i.icon.microblog:before { content: "\f91a"; font-family: @brandFontName; }
+ i.icon.microsoft:before { content: "\f3ca"; font-family: @brandFontName; }
+ i.icon.mix:before { content: "\f3cb"; font-family: @brandFontName; }
+ i.icon.mixcloud:before { content: "\f289"; font-family: @brandFontName; }
+ i.icon.mixer:before { content: "\f956"; font-family: @brandFontName; }
+ i.icon.mizuni:before { content: "\f3cc"; font-family: @brandFontName; }
+ i.icon.modx:before { content: "\f285"; font-family: @brandFontName; }
+ i.icon.monero:before { content: "\f3d0"; font-family: @brandFontName; }
+ i.icon.napster:before { content: "\f3d2"; font-family: @brandFontName; }
+ i.icon.neos:before { content: "\f612"; font-family: @brandFontName; }
+ i.icon.nimblr:before { content: "\f5a8"; font-family: @brandFontName; }
+ i.icon.node:before { content: "\f419"; font-family: @brandFontName; }
+ i.icon.node.js:before { content: "\f3d3"; font-family: @brandFontName; }
+ i.icon.npm:before { content: "\f3d4"; font-family: @brandFontName; }
+ i.icon.ns8:before { content: "\f3d5"; font-family: @brandFontName; }
+ i.icon.nutritionix:before { content: "\f3d6"; font-family: @brandFontName; }
+ i.icon.odnoklassniki:before { content: "\f263"; font-family: @brandFontName; }
+ i.icon.odnoklassniki.square:before { content: "\f264"; font-family: @brandFontName; }
+ i.icon.old.republic:before { content: "\f510"; font-family: @brandFontName; }
+ i.icon.opencart:before { content: "\f23d"; font-family: @brandFontName; }
+ i.icon.openid:before { content: "\f19b"; font-family: @brandFontName; }
+ i.icon.opera:before { content: "\f26a"; font-family: @brandFontName; }
+ i.icon.optin.monster:before { content: "\f23c"; font-family: @brandFontName; }
+ i.icon.orcid:before { content: "\f8d2"; font-family: @brandFontName; }
+ i.icon.osi:before { content: "\f41a"; font-family: @brandFontName; }
+ i.icon.page4:before { content: "\f3d7"; font-family: @brandFontName; }
+ i.icon.pagelines:before { content: "\f18c"; font-family: @brandFontName; }
+ i.icon.palfed:before { content: "\f3d8"; font-family: @brandFontName; }
+ i.icon.patreon:before { content: "\f3d9"; font-family: @brandFontName; }
+ i.icon.paypal:before { content: "\f1ed"; font-family: @brandFontName; }
+ i.icon.penny.arcade:before { content: "\f704"; font-family: @brandFontName; }
+ i.icon.periscope:before { content: "\f3da"; font-family: @brandFontName; }
+ i.icon.phabricator:before { content: "\f3db"; font-family: @brandFontName; }
+ i.icon.phoenix.framework:before { content: "\f3dc"; font-family: @brandFontName; }
+ i.icon.phoenix.squadron:before { content: "\f511"; font-family: @brandFontName; }
+ i.icon.php:before { content: "\f457"; font-family: @brandFontName; }
+ i.icon.pied.piper:before { content: "\f2ae"; font-family: @brandFontName; }
+ i.icon.pied.piper.alternate:before { content: "\f1a8"; font-family: @brandFontName; }
+ i.icon.pied.piper.hat:before { content: "\f4e5"; font-family: @brandFontName; }
+ i.icon.pied.piper.pp:before { content: "\f1a7"; font-family: @brandFontName; }
+ i.icon.pied.piper.square:before { content: "\f91e"; font-family: @brandFontName; }
+ i.icon.pinterest:before { content: "\f0d2"; font-family: @brandFontName; }
+ i.icon.pinterest.p:before { content: "\f231"; font-family: @brandFontName; }
+ i.icon.pinterest.square:before { content: "\f0d3"; font-family: @brandFontName; }
+ i.icon.playstation:before { content: "\f3df"; font-family: @brandFontName; }
+ i.icon.product.hunt:before { content: "\f288"; font-family: @brandFontName; }
+ i.icon.pushed:before { content: "\f3e1"; font-family: @brandFontName; }
+ i.icon.python:before { content: "\f3e2"; font-family: @brandFontName; }
+ i.icon.qq:before { content: "\f1d6"; font-family: @brandFontName; }
+ i.icon.quinscape:before { content: "\f459"; font-family: @brandFontName; }
+ i.icon.quora:before { content: "\f2c4"; font-family: @brandFontName; }
+ i.icon.r.project:before { content: "\f4f7"; font-family: @brandFontName; }
+ i.icon.raspberry.pi:before { content: "\f7bb"; font-family: @brandFontName; }
+ i.icon.ravelry:before { content: "\f2d9"; font-family: @brandFontName; }
+ i.icon.react:before { content: "\f41b"; font-family: @brandFontName; }
+ i.icon.reacteurope:before { content: "\f75d"; font-family: @brandFontName; }
+ i.icon.readme:before { content: "\f4d5"; font-family: @brandFontName; }
+ i.icon.rebel:before { content: "\f1d0"; font-family: @brandFontName; }
+ i.icon.reddit:before { content: "\f1a1"; font-family: @brandFontName; }
+ i.icon.reddit.alien:before { content: "\f281"; font-family: @brandFontName; }
+ i.icon.reddit.square:before { content: "\f1a2"; font-family: @brandFontName; }
+ i.icon.redhat:before { content: "\f7bc"; font-family: @brandFontName; }
+ i.icon.redriver:before { content: "\f3e3"; font-family: @brandFontName; }
+ i.icon.redyeti:before { content: "\f69d"; font-family: @brandFontName; }
+ i.icon.renren:before { content: "\f18b"; font-family: @brandFontName; }
+ i.icon.replyd:before { content: "\f3e6"; font-family: @brandFontName; }
+ i.icon.researchgate:before { content: "\f4f8"; font-family: @brandFontName; }
+ i.icon.resolving:before { content: "\f3e7"; font-family: @brandFontName; }
+ i.icon.rev:before { content: "\f5b2"; font-family: @brandFontName; }
+ i.icon.rocketchat:before { content: "\f3e8"; font-family: @brandFontName; }
+ i.icon.rockrms:before { content: "\f3e9"; font-family: @brandFontName; }
+ i.icon.safari:before { content: "\f267"; font-family: @brandFontName; }
+ i.icon.salesforce:before { content: "\f83b"; font-family: @brandFontName; }
+ i.icon.sass:before { content: "\f41e"; font-family: @brandFontName; }
+ i.icon.schlix:before { content: "\f3ea"; font-family: @brandFontName; }
+ i.icon.scribd:before { content: "\f28a"; font-family: @brandFontName; }
+ i.icon.searchengin:before { content: "\f3eb"; font-family: @brandFontName; }
+ i.icon.sellcast:before { content: "\f2da"; font-family: @brandFontName; }
+ i.icon.sellsy:before { content: "\f213"; font-family: @brandFontName; }
+ i.icon.servicestack:before { content: "\f3ec"; font-family: @brandFontName; }
+ i.icon.shirtsinbulk:before { content: "\f214"; font-family: @brandFontName; }
+ i.icon.shopify:before { content: "\f957"; font-family: @brandFontName; }
+ i.icon.shopware:before { content: "\f5b5"; font-family: @brandFontName; }
+ i.icon.simplybuilt:before { content: "\f215"; font-family: @brandFontName; }
+ i.icon.sistrix:before { content: "\f3ee"; font-family: @brandFontName; }
+ i.icon.sith:before { content: "\f512"; font-family: @brandFontName; }
+ i.icon.sketch:before { content: "\f7c6"; font-family: @brandFontName; }
+ i.icon.skyatlas:before { content: "\f216"; font-family: @brandFontName; }
+ i.icon.skype:before { content: "\f17e"; font-family: @brandFontName; }
+ i.icon.slack:before { content: "\f198"; font-family: @brandFontName; }
+ i.icon.slack.hash:before { content: "\f3ef"; font-family: @brandFontName; }
+ i.icon.slideshare:before { content: "\f1e7"; font-family: @brandFontName; }
+ i.icon.snapchat:before { content: "\f2ab"; font-family: @brandFontName; }
+ i.icon.snapchat.ghost:before { content: "\f2ac"; font-family: @brandFontName; }
+ i.icon.snapchat.square:before { content: "\f2ad"; font-family: @brandFontName; }
+ i.icon.soundcloud:before { content: "\f1be"; font-family: @brandFontName; }
+ i.icon.sourcetree:before { content: "\f7d3"; font-family: @brandFontName; }
+ i.icon.speakap:before { content: "\f3f3"; font-family: @brandFontName; }
+ i.icon.speaker.deck:before { content: "\f83c"; font-family: @brandFontName; }
+ i.icon.spotify:before { content: "\f1bc"; font-family: @brandFontName; }
+ i.icon.squarespace:before { content: "\f5be"; font-family: @brandFontName; }
+ i.icon.stack.exchange:before { content: "\f18d"; font-family: @brandFontName; }
+ i.icon.stack.overflow:before { content: "\f16c"; font-family: @brandFontName; }
+ i.icon.stackpath:before { content: "\f842"; font-family: @brandFontName; }
+ i.icon.staylinked:before { content: "\f3f5"; font-family: @brandFontName; }
+ i.icon.steam:before { content: "\f1b6"; font-family: @brandFontName; }
+ i.icon.steam.square:before { content: "\f1b7"; font-family: @brandFontName; }
+ i.icon.steam.symbol:before { content: "\f3f6"; font-family: @brandFontName; }
+ i.icon.sticker.mule:before { content: "\f3f7"; font-family: @brandFontName; }
+ i.icon.strava:before { content: "\f428"; font-family: @brandFontName; }
+ i.icon.stripe:before { content: "\f429"; font-family: @brandFontName; }
+ i.icon.stripe.s:before { content: "\f42a"; font-family: @brandFontName; }
+ i.icon.studiovinari:before { content: "\f3f8"; font-family: @brandFontName; }
+ i.icon.stumbleupon:before { content: "\f1a4"; font-family: @brandFontName; }
+ i.icon.stumbleupon.circle:before { content: "\f1a3"; font-family: @brandFontName; }
+ i.icon.superpowers:before { content: "\f2dd"; font-family: @brandFontName; }
+ i.icon.supple:before { content: "\f3f9"; font-family: @brandFontName; }
+ i.icon.suse:before { content: "\f7d6"; font-family: @brandFontName; }
+ i.icon.swift:before { content: "\f8e1"; font-family: @brandFontName; }
+ i.icon.symfony:before { content: "\f83d"; font-family: @brandFontName; }
+ i.icon.teamspeak:before { content: "\f4f9"; font-family: @brandFontName; }
+ i.icon.telegram:before { content: "\f2c6"; font-family: @brandFontName; }
+ i.icon.telegram.plane:before { content: "\f3fe"; font-family: @brandFontName; }
+ i.icon.tencent.weibo:before { content: "\f1d5"; font-family: @brandFontName; }
+ i.icon.themeco:before { content: "\f5c6"; font-family: @brandFontName; }
+ i.icon.themeisle:before { content: "\f2b2"; font-family: @brandFontName; }
+ i.icon.think.peaks:before { content: "\f731"; font-family: @brandFontName; }
+ i.icon.trade.federation:before { content: "\f513"; font-family: @brandFontName; }
+ i.icon.trello:before { content: "\f181"; font-family: @brandFontName; }
+ i.icon.tripadvisor:before { content: "\f262"; font-family: @brandFontName; }
+ i.icon.tumblr:before { content: "\f173"; font-family: @brandFontName; }
+ i.icon.tumblr.square:before { content: "\f174"; font-family: @brandFontName; }
+ i.icon.twitch:before { content: "\f1e8"; font-family: @brandFontName; }
+ i.icon.twitter:before { content: "\f099"; font-family: @brandFontName; }
+ i.icon.twitter.square:before { content: "\f081"; font-family: @brandFontName; }
+ i.icon.typo3:before { content: "\f42b"; font-family: @brandFontName; }
+ i.icon.uber:before { content: "\f402"; font-family: @brandFontName; }
+ i.icon.ubuntu:before { content: "\f7df"; font-family: @brandFontName; }
+ i.icon.uikit:before { content: "\f403"; font-family: @brandFontName; }
+ i.icon.umbraco:before { content: "\f8e8"; font-family: @brandFontName; }
+ i.icon.uniregistry:before { content: "\f404"; font-family: @brandFontName; }
+ i.icon.unity:before { content: "\f949"; font-family: @brandFontName; }
+ i.icon.untappd:before { content: "\f405"; font-family: @brandFontName; }
+ i.icon.ups:before { content: "\f7e0"; font-family: @brandFontName; }
+ i.icon.usb:before { content: "\f287"; font-family: @brandFontName; }
+ i.icon.usps:before { content: "\f7e1"; font-family: @brandFontName; }
+ i.icon.ussunnah:before { content: "\f407"; font-family: @brandFontName; }
+ i.icon.vaadin:before { content: "\f408"; font-family: @brandFontName; }
+ i.icon.viacoin:before { content: "\f237"; font-family: @brandFontName; }
+ i.icon.viadeo:before { content: "\f2a9"; font-family: @brandFontName; }
+ i.icon.viadeo.square:before { content: "\f2aa"; font-family: @brandFontName; }
+ i.icon.viber:before { content: "\f409"; font-family: @brandFontName; }
+ i.icon.vimeo:before { content: "\f40a"; font-family: @brandFontName; }
+ i.icon.vimeo.square:before { content: "\f194"; font-family: @brandFontName; }
+ i.icon.vimeo.v:before { content: "\f27d"; font-family: @brandFontName; }
+ i.icon.vine:before { content: "\f1ca"; font-family: @brandFontName; }
+ i.icon.vk:before { content: "\f189"; font-family: @brandFontName; }
+ i.icon.vnv:before { content: "\f40b"; font-family: @brandFontName; }
+ i.icon.vuejs:before { content: "\f41f"; font-family: @brandFontName; }
+ i.icon.waze:before { content: "\f83f"; font-family: @brandFontName; }
+ i.icon.weebly:before { content: "\f5cc"; font-family: @brandFontName; }
+ i.icon.weibo:before { content: "\f18a"; font-family: @brandFontName; }
+ i.icon.weixin:before { content: "\f1d7"; font-family: @brandFontName; }
+ i.icon.whatsapp:before { content: "\f232"; font-family: @brandFontName; }
+ i.icon.whatsapp.square:before { content: "\f40c"; font-family: @brandFontName; }
+ i.icon.whmcs:before { content: "\f40d"; font-family: @brandFontName; }
+ i.icon.wikipedia.w:before { content: "\f266"; font-family: @brandFontName; }
+ i.icon.windows:before { content: "\f17a"; font-family: @brandFontName; }
+ i.icon.wix:before { content: "\f5cf"; font-family: @brandFontName; }
+ i.icon.wizards.of.the.coast:before { content: "\f730"; font-family: @brandFontName; }
+ i.icon.wolf.pack.battalion:before { content: "\f514"; font-family: @brandFontName; }
+ i.icon.wordpress:before { content: "\f19a"; font-family: @brandFontName; }
+ i.icon.wordpress.simple:before { content: "\f411"; font-family: @brandFontName; }
+ i.icon.wpbeginner:before { content: "\f297"; font-family: @brandFontName; }
+ i.icon.wpexplorer:before { content: "\f2de"; font-family: @brandFontName; }
+ i.icon.wpforms:before { content: "\f298"; font-family: @brandFontName; }
+ i.icon.wpressr:before { content: "\f3e4"; font-family: @brandFontName; }
+ i.icon.xbox:before { content: "\f412"; font-family: @brandFontName; }
+ i.icon.xing:before { content: "\f168"; font-family: @brandFontName; }
+ i.icon.xing.square:before { content: "\f169"; font-family: @brandFontName; }
+ i.icon.y.combinator:before { content: "\f23b"; font-family: @brandFontName; }
+ i.icon.yahoo:before { content: "\f19e"; font-family: @brandFontName; }
+ i.icon.yammer:before { content: "\f840"; font-family: @brandFontName; }
+ i.icon.yandex:before { content: "\f413"; font-family: @brandFontName; }
+ i.icon.yandex.international:before { content: "\f414"; font-family: @brandFontName; }
+ i.icon.yarn:before { content: "\f7e3"; font-family: @brandFontName; }
+ i.icon.yelp:before { content: "\f1e9"; font-family: @brandFontName; }
+ i.icon.yoast:before { content: "\f2b1"; font-family: @brandFontName; }
+ i.icon.youtube:before { content: "\f167"; font-family: @brandFontName; }
+ i.icon.youtube.square:before { content: "\f431"; font-family: @brandFontName; }
+ i.icon.zhihu:before { content: "\f63f"; font-family: @brandFontName; }
+
+
+ /* Aliases */
+ i.icon.american.express:before { content: "\f1f3"; font-family: @brandFontName; }
+ i.icon.american.express.card:before { content: "\f1f3"; font-family: @brandFontName; }
+ i.icon.amex:before { content: "\f1f3"; font-family: @brandFontName; }
+ i.icon.bitbucket.square:before { content: "\f171"; font-family: @brandFontName; }
+ i.icon.bluetooth.alternative:before { content: "\f294"; font-family: @brandFontName; }
+ i.icon.credit.card.amazon.pay:before { content: "\f42d"; font-family: @brandFontName; }
+ i.icon.credit.card.american.express:before { content: "\f1f3"; font-family: @brandFontName; }
+ i.icon.credit.card.diners.club:before { content: "\f24c"; font-family: @brandFontName; }
+ i.icon.credit.card.discover:before { content: "\f1f2"; font-family: @brandFontName; }
+ i.icon.credit.card.jcb:before { content: "\f24b"; font-family: @brandFontName; }
+ i.icon.credit.card.mastercard:before { content: "\f1f1"; font-family: @brandFontName; }
+ i.icon.credit.card.paypal:before { content: "\f1f4"; font-family: @brandFontName; }
+ i.icon.credit.card.stripe:before { content: "\f1f5"; font-family: @brandFontName; }
+ i.icon.credit.card.visa:before { content: "\f1f0"; font-family: @brandFontName; }
+ i.icon.diners.club:before { content: "\f24c"; font-family: @brandFontName; }
+ i.icon.diners.club.card:before { content: "\f24c"; font-family: @brandFontName; }
+ i.icon.discover:before { content: "\f1f2"; font-family: @brandFontName; }
+ i.icon.discover.card:before { content: "\f1f2"; font-family: @brandFontName; }
+ i.icon.disk.outline:before { content: "\f369"; font-family: @brandFontName; }
+ i.icon.dribble:before { content: "\f17d"; font-family: @brandFontName; }
+ i.icon.eercast:before { content: "\f2da"; font-family: @brandFontName; }
+ i.icon.envira.gallery:before { content: "\f299"; font-family: @brandFontName; }
+ i.icon.fa:before { content: "\f2b4"; font-family: @brandFontName; }
+ i.icon.facebook.official:before { content: "\f082"; font-family: @brandFontName; }
+ i.icon.five.hundred.pixels:before { content: "\f26e"; font-family: @brandFontName; }
+ i.icon.gittip:before { content: "\f184"; font-family: @brandFontName; }
+ i.icon.google.plus.circle:before { content: "\f2b3"; font-family: @brandFontName; }
+ i.icon.google.plus.official:before { content: "\f2b3"; font-family: @brandFontName; }
+ i.icon.japan.credit.bureau:before { content: "\f24b"; font-family: @brandFontName; }
+ i.icon.japan.credit.bureau.card:before { content: "\f24b"; font-family: @brandFontName; }
+ i.icon.jcb:before { content: "\f24b"; font-family: @brandFontName; }
+ i.icon.linkedin.square:before { content: "\f08c"; font-family: @brandFontName; }
+ i.icon.mastercard:before { content: "\f1f1"; font-family: @brandFontName; }
+ i.icon.mastercard.card:before { content: "\f1f1"; font-family: @brandFontName; }
+ i.icon.microsoft.edge:before { content: "\f282"; font-family: @brandFontName; }
+ i.icon.ms.edge:before { content: "\f282"; font-family: @brandFontName; }
+ i.icon.new.pied.piper:before { content: "\f2ae"; font-family: @brandFontName; }
+ i.icon.optinmonster:before { content: "\f23c"; font-family: @brandFontName; }
+ i.icon.paypal.card:before { content: "\f1f4"; font-family: @brandFontName; }
+ i.icon.pied.piper.hat:before { content: "\f2ae"; font-family: @brandFontName; }
+ i.icon.pocket:before { content: "\f265"; font-family: @brandFontName; }
+ i.icon.stripe.card:before { content: "\f1f5"; font-family: @brandFontName; }
+ i.icon.theme.isle:before { content: "\f2b2"; font-family: @brandFontName; }
+ i.icon.visa:before { content: "\f1f0"; font-family: @brandFontName; }
+ i.icon.visa.card:before { content: "\f1f0"; font-family: @brandFontName; }
+ i.icon.wechat:before { content: "\f1d7"; font-family: @brandFontName; }
+ i.icon.wikipedia:before { content: "\f266"; font-family: @brandFontName; }
+ i.icon.wordpress.beginner:before { content: "\f297"; font-family: @brandFontName; }
+ i.icon.wordpress.forms:before { content: "\f298"; font-family: @brandFontName; }
+ i.icon.yc:before { content: "\f23b"; font-family: @brandFontName; }
+ i.icon.ycombinator:before { content: "\f23b"; font-family: @brandFontName; }
+ i.icon.youtube.play:before { content: "\f167"; font-family: @brandFontName; }
+
+}
+.loadBrandIcons();
diff --git a/assets/semantic/src/themes/default/elements/icon.variables b/assets/semantic/src/themes/default/elements/icon.variables
new file mode 100644
index 0000000..be5ddcf
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/icon.variables
@@ -0,0 +1,95 @@
+/*******************************
+ Icon
+*******************************/
+
+/*--------------
+ Font Files
+---------------*/
+
+/* Solid Icons */
+@fontName: 'icons';
+@src:
+ url("@{fontPath}/@{fontName}.eot?#iefix") format('embedded-opentype'),
+ url("@{fontPath}/@{fontName}.woff2") format('woff2'),
+ url("@{fontPath}/@{fontName}.woff") format('woff'),
+ url("@{fontPath}/@{fontName}.ttf") format('truetype'),
+ url("@{fontPath}/@{fontName}.svg#icons") format('svg')
+;
+@fallbackSRC: url("@{fontPath}/@{fontName}.eot");
+
+/* Outline Icons */
+@importOutlineIcons: true;
+@outlineFontName: 'outline-icons';
+@outlineSrc:
+ url("@{fontPath}/@{outlineFontName}.eot?#iefix") format('embedded-opentype'),
+ url("@{fontPath}/@{outlineFontName}.woff2") format('woff2'),
+ url("@{fontPath}/@{outlineFontName}.woff") format('woff'),
+ url("@{fontPath}/@{outlineFontName}.ttf") format('truetype'),
+ url("@{fontPath}/@{outlineFontName}.svg#icons") format('svg')
+;
+@outlineFallbackSRC: url("@{fontPath}/@{outlineFontName}.eot");
+
+
+
+/* Brand Icons */
+@importBrandIcons: true;
+@brandFontName: 'brand-icons';
+@brandSrc:
+ url("@{fontPath}/@{brandFontName}.eot?#iefix") format('embedded-opentype'),
+ url("@{fontPath}/@{brandFontName}.woff2") format('woff2'),
+ url("@{fontPath}/@{brandFontName}.woff") format('woff'),
+ url("@{fontPath}/@{brandFontName}.ttf") format('truetype'),
+ url("@{fontPath}/@{brandFontName}.svg#icons") format('svg')
+;
+@brandFallbackSRC: url("@{fontPath}/@{brandFontName}.eot");
+
+
+/*--------------
+ Definition
+---------------*/
+
+/* Icon Variables */
+@opacity: 1;
+@width: @iconWidth;
+@height: 1em;
+@distanceFromText: 0.25rem;
+@lineHeight: 1;
+
+
+/* Variations */
+@linkOpacity: 0.8;
+@linkDuration: 0.3s;
+@loadingDuration: 2s;
+
+@circularSize: 2em;
+@circularPadding: 0.5em 0;
+@circularShadow: 0 0 0 0.1em rgba(0, 0, 0, 0.1) inset;
+
+@borderedSize: 2em;
+@borderedVerticalPadding: ((@borderedSize - @height) / 2);
+@borderedHorizontalPadding: 0;
+@borderedShadow: 0 0 0 0.1em rgba(0, 0, 0, 0.1) inset;
+
+@cornerIconSize: 0.45em;
+@cornerIconStroke: 1px;
+@cornerIconShadow:
+ -@cornerIconStroke -@cornerIconStroke 0 @white,
+ @cornerIconStroke -@cornerIconStroke 0 @white,
+ -@cornerIconStroke @cornerIconStroke 0 @white,
+ @cornerIconStroke @cornerIconStroke 0 @white
+;
+@cornerIconInvertedShadow:
+ -@cornerIconStroke -@cornerIconStroke 0 @black,
+ @cornerIconStroke -@cornerIconStroke 0 @black,
+ -@cornerIconStroke @cornerIconStroke 0 @black,
+ @cornerIconStroke @cornerIconStroke 0 @black
+;
+
+@mini: 0.4em;
+@tiny: 0.5em;
+@small: 0.75em;
+@medium: 1em;
+@large: 1.5em;
+@big: 2em;
+@huge: 4em;
+@massive: 8em;
diff --git a/assets/semantic/src/themes/default/elements/image.overrides b/assets/semantic/src/themes/default/elements/image.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/image.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/image.variables b/assets/semantic/src/themes/default/elements/image.variables
new file mode 100644
index 0000000..1a436fc
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/image.variables
@@ -0,0 +1,44 @@
+/*******************************
+ Image
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@placeholderColor: transparent;
+@roundedBorderRadius: 0.3125em;
+
+@imageHorizontalMargin: 0.25rem;
+@imageVerticalMargin: 0.5rem;
+@imageBorder: 1px solid rgba(0, 0, 0, 0.1);
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Avatar */
+@avatarSize: 2em;
+@avatarMargin: 0.25em;
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Spaced */
+@spacedDistance: 0.5em;
+
+/* Floated */
+@floatedHorizontalMargin: 1em;
+@floatedVerticalMargin: 1em;
+
+/* Size */
+@miniWidth: 35px;
+@tinyWidth: 80px;
+@smallWidth: 150px;
+@mediumWidth: 300px;
+@largeWidth: 450px;
+@bigWidth: 600px;
+@hugeWidth: 800px;
+@massiveWidth: 960px;
diff --git a/assets/semantic/src/themes/default/elements/input.overrides b/assets/semantic/src/themes/default/elements/input.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/input.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/input.variables b/assets/semantic/src/themes/default/elements/input.variables
new file mode 100644
index 0000000..997e061
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/input.variables
@@ -0,0 +1,102 @@
+/*******************************
+ Input
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@inputFont: @pageFont;
+@verticalPadding: @inputVerticalPadding;
+@horizontalPadding: @inputHorizontalPadding;
+
+@lineHeight: @inputLineHeight;
+@lineHeightOffset: ((@lineHeight - 1em) / 2);
+
+@padding: (@verticalPadding - @lineHeightOffset) @horizontalPadding;
+
+@textAlign: left;
+@background: @inputBackground;
+@borderWidth: 1px;
+@border: @borderWidth solid @borderColor;
+@boxShadow: none;
+
+@borderRadius: @defaultBorderRadius;
+@transition:
+ box-shadow @defaultDuration @defaultEasing,
+ border-color @defaultDuration @defaultEasing
+;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Icon Input */
+@iconWidth: (@verticalPadding * 2) + @glyphWidth;
+@iconOpacity: 0.5;
+@iconFocusOpacity: 1;
+@iconOffset: -0.5em;
+
+@iconDistance: 0;
+@iconMargin: @iconWidth + @iconDistance;
+@iconTransition: opacity 0.3s @defaultEasing;
+
+@transparentIconWidth: @glyphWidth;
+@transparentIconMargin: 2em;
+
+@textareaIconHeight: 3em;
+@transparentTextareaIconHeight: 1.3em;
+
+/* Circular Icon Input */
+@circularIconVerticalOffset: 0.35em;
+@circularIconHorizontalOffset: 0.5em;
+
+/* Labeled Input */
+@labelCornerTop: @borderWidth;
+@labelCornerRight: @borderWidth;
+@labelCornerSize: @relative9px;
+@labelSize: 1em;
+@labelVerticalPadding: (@verticalPadding - @lineHeightOffset);
+
+@labeledMargin: 2.5em;
+@labeledIconInputMargin: 3.25em;
+@labeledIconMargin: 1.25em;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Placeholder */
+@placeholderColor: @inputPlaceholderColor;
+@placeholderFocusColor: @inputPlaceholderFocusColor;
+
+/* Down */
+@downBorderColor: rgba(0, 0, 0, 0.3);
+@downBackground: #FAFAFA;
+@downColor: @textColor;
+@downBoxShadow: none;
+
+/* Focus */
+@focusBorderColor: @focusedFormBorderColor;
+@focusBackground: @background;
+@focusColor: @hoveredTextColor;
+@focusBoxShadow: none;
+
+/* Loader */
+@invertedLoaderFillColor: rgba(0, 0, 0, 0.15);
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Inverted */
+@transparentInvertedPlaceholderColor: @invertedUnselectedTextColor;
+@transparentInvertedColor: @white;
+
+@miniInputSize: @relativeMini;
+@tinyInputSize: @relativeTiny;
+@smallInputSize: @relativeSmall;
+@largeInputSize: @relativeLarge;
+@bigInputSize: @relativeBig;
+@hugeInputSize: @relativeHuge;
+@massiveInputSize: @relativeMassive;
diff --git a/assets/semantic/src/themes/default/elements/label.overrides b/assets/semantic/src/themes/default/elements/label.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/label.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/label.variables b/assets/semantic/src/themes/default/elements/label.variables
new file mode 100644
index 0000000..f491880
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/label.variables
@@ -0,0 +1,268 @@
+/*******************************
+ Label
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@verticalAlign: baseline;
+@verticalMargin: 0;
+@horizontalMargin: @relative2px;
+@backgroundColor: #E8E8E8;
+@color: @mutedTextColor;
+@backgroundImage: none;
+@verticalPadding: 0.5833em; /* medium is not @emSize custom value required */
+@horizontalPadding: 0.833em;
+@borderRadius: @absoluteBorderRadius;
+@textTransform: none;
+@fontWeight: @bold;
+@borderWidth: 1px;
+@border: 0 solid transparent;
+
+@lineHeightOffset: -(@verticalPadding / 2);
+
+@labelTransitionDuration: @defaultDuration;
+@labelTransitionEasing: @defaultEasing;
+@transition: background @labelTransitionDuration @labelTransitionEasing;
+
+/* Group */
+@groupVerticalMargin: 0.5em;
+@groupHorizontalMargin: 0.5em;
+
+/*-------------------
+ Parts
+--------------------*/
+
+/* Link */
+@linkOpacity: 0.5;
+@linkTransition: @labelTransitionDuration opacity @labelTransitionEasing;
+
+/* Icon */
+@iconDistance: 0.75em;
+
+/* Image */
+@imageHeight: (1em + @verticalPadding * 2);
+
+/* Detail */
+@detailFontWeight: @bold;
+@detailOpacity: 0.8;
+@detailIconDistance: 0.25em;
+@detailMargin: 1em;
+
+/* Delete */
+@deleteOpacity: @linkOpacity;
+@deleteSize: @relativeSmall;
+@deleteMargin: 0.5em;
+@deleteTransition: background @labelTransitionDuration @labelTransitionEasing;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Image Label */
+@imageLabelBackground: @backgroundColor;
+@imageLabelVerticalPadding: @verticalPadding;
+@imageLabelHorizontalPadding: @horizontalPadding;
+@imageLabelTextDistance: 0.5em;
+@imageLabelDetailDistance: @imageLabelTextDistance;
+@imageLabelBorderRadius: @borderRadius;
+@imageLabelBoxShadow: none;
+@imageLabelPadding: @imageLabelVerticalPadding @imageLabelHorizontalPadding @imageLabelVerticalPadding @imageLabelTextDistance;
+
+@imageLabelImageMargin: -@verticalPadding @imageLabelTextDistance -@verticalPadding -@imageLabelTextDistance;
+@imageLabelImageBorderRadius: @imageLabelBorderRadius 0 0 @imageLabelBorderRadius;
+@imageLabelImageHeight: @imageHeight;
+
+@imageLabelDetailBackground: @strongTransparentBlack;
+@imageLabelDetailPadding: @imageLabelVerticalPadding @imageLabelHorizontalPadding;
+@imageLabelDetailMargin: -@imageLabelVerticalPadding -@imageLabelHorizontalPadding -@imageLabelVerticalPadding @imageLabelDetailDistance;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Hover */
+@labelHoverBackgroundColor: #E0E0E0;
+@labelHoverBackgroundImage: none;
+@labelHoverTextColor: @hoveredTextColor;
+
+/* Active */
+@labelActiveBackgroundColor: #D0D0D0;
+@labelActiveBackgroundImage: none;
+@labelActiveTextColor: @selectedTextColor;
+
+/* Active Hover */
+@labelActiveHoverBackgroundColor: #C8C8C8;
+@labelActiveHoverBackgroundImage: none;
+@labelActiveHoverTextColor: @selectedTextColor;
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Basic */
+@basicBackground: none @white;
+@basicBorderWidth: 1px;
+@basicBorderWidthOffset: -@basicBorderWidth;
+@basicBorderFullWidthOffset: e(%("calc(100%% + %d)", @basicBorderWidth));
+@basicBorder: @basicBorderWidth solid @borderColor;
+@basicColor: @textColor;
+@basicBoxShadow: none;
+
+@basicHoverBackground: @basicBackground;
+@basicHoverColor: @linkHoverColor;
+@basicHoverBorder: @basicBorder;
+@basicHoverBoxShadow: @basicBoxShadow;
+
+@basicVerticalPadding: e(%("calc(%d - %d)", @verticalPadding, @basicBorderWidth));
+@basicHorizontalPadding: e(%("calc(%d - %d)", @horizontalPadding, @basicBorderWidth));
+@basicImageLabelPadding: e(%("calc(%d - %d)", @imageLabelTextDistance, @basicBorderWidth));
+
+/* Tag */
+@tagCircleColor: @white;
+@tagCircleSize: 0.5em;
+@tagHorizontalPadding: 1.5em;
+@tagCircleBoxShadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
+@basicTagCircleBoxShadow: 0 -1px 3px 0 rgba(0, 0, 0, 0.8);
+@tagTriangleRightOffset: 100%;
+@tagTriangleTopOffset: 50%;
+@tagTriangleSize: 1.56em;
+@tagTriangleBackgroundImage: none;
+@tagTransition: none; /* Avoids error with background: inherit; on animation */
+
+/* Ribbon */
+@ribbonTriangleSize: 1.2em;
+@basicRibbonTriangleSize: e(%("calc(%d - %d)", @ribbonTriangleSize, @basicBorderWidth));
+@basicRibbonTriangleSizeOffset: e(%("calc(1rem + %d - %d)", @ribbonTriangleSize, @basicBorderWidth));
+@ribbonShadowColor: rgba(0, 0, 0, 0.15);
+
+@ribbonMargin: 1rem;
+@ribbonOffset: e(%("calc(%d - %d)", -@ribbonMargin, @ribbonTriangleSize));
+@basicRibbonOffset: e(%("calc(%d - %d)", @verticalPadding, @basicBorderWidth));
+@ribbonDistance: e(%("calc(%d + %d)", @ribbonMargin, @ribbonTriangleSize));
+@rightRibbonOffset: e(%("calc(100%% + %d + %d)", @ribbonMargin, @ribbonTriangleSize));
+
+@ribbonImageTopDistance: 1rem;
+@ribbonImageMargin: -0.05rem; /* Rounding Offset on Triangle */
+@ribbonImageOffset: e(%("calc(%d - %d)", -@ribbonImageMargin, @ribbonTriangleSize));
+@rightRibbonImageOffset: e(%("calc(100%% + %d + %d)", @ribbonImageMargin, @ribbonTriangleSize));
+
+@ribbonTableMargin: @relativeMedium; /* Rounding Offset on Triangle */
+@ribbonTableOffset: e(%("calc(%d - %d)", -@ribbonTableMargin, @ribbonTriangleSize));
+@rightRibbonTableOffset: e(%("calc(100%% + %d + %d)", @ribbonTableMargin, @ribbonTriangleSize));
+
+/* Inverted */
+@invertedBackgroundColor: darken(@backgroundColor,20);
+@invertedBackground: @black;
+@invertedBoxShadowSize: 2px;
+@invertedBorderSize: 1px;
+
+@basicInvertedBorderColor: rgba(255, 255, 255, 0.5);
+
+/* Colors */
+@redTextColor: @white;
+@orangeTextColor: @white;
+@yellowTextColor: @white;
+@oliveTextColor: @white;
+@greenTextColor: @white;
+@tealTextColor: @white;
+@blueTextColor: @white;
+@violetTextColor: @white;
+@purpleTextColor: @white;
+@pinkTextColor: @white;
+@brownTextColor: @white;
+@greyTextColor: @white;
+@blackTextColor: @white;
+
+@redHoverTextColor: @white;
+@orangeHoverTextColor: @white;
+@yellowHoverTextColor: @white;
+@oliveHoverTextColor: @white;
+@greenHoverTextColor: @white;
+@tealHoverTextColor: @white;
+@blueHoverTextColor: @white;
+@violetHoverTextColor: @white;
+@purpleHoverTextColor: @white;
+@pinkHoverTextColor: @white;
+@brownHoverTextColor: @white;
+@greyHoverTextColor: @white;
+@blackHoverTextColor: @white;
+
+@primaryHoverTextColor: @white;
+@secondaryHoverTextColor: @white;
+
+@primaryTextColor: @invertedTextColor;
+@secondaryTextColor: @invertedTextColor;
+
+/* Attached */
+@attachedSegmentPadding: 2rem;
+@attachedVerticalPadding: 0.75em;
+@attachedHorizontalPadding: 1em;
+
+@attachedCornerBorderRadius: @3px;
+@attachedBorderRadius: @borderRadius;
+
+@attachedOffset: -@borderWidth;
+@attachedWidthOffset: e(%("calc(100%% + %d)", @borderWidth * 2));
+
+/* Corner */
+@cornerSizeRatio: 1;
+@cornerTransition: color @labelTransitionDuration @labelTransitionEasing;
+@cornerTriangleSize: 4em;
+@cornerTriangleTransition: border-color @labelTransitionDuration @labelTransitionEasing;
+@cornerTriangleZIndex: 1;
+
+@cornerIconSize: @relativeLarge;
+@cornerIconTopOffset: @relative9px;
+@cornerIconLeftOffset: @relative8px;
+@cornerIconRightOffset: @relative8px;
+
+/* Corner Text */
+@cornerTextWidth: 3em;
+@cornerTextWeight: @bold;
+@cornerTextSize: 1em;
+
+/* Horizontal */
+@horizontalLabelMinWidth: 3em;
+@horizontalLabelMargin: 0.5em;
+@horizontalLabelVerticalPadding: 0.4em;
+
+/* Circular Padding */
+@circularPadding: 0.5em;
+@circularMinSize: 2em;
+@emptyCircleSize: 0.5em;
+
+/* Pointing */
+@pointingBorderColor: inherit;
+@pointingBorderWidth: @borderWidth;
+@pointingVerticalDistance: 1em;
+@pointingTriangleSize: 0.6666em;
+@pointingHorizontalDistance: @pointingTriangleSize;
+
+@pointingTriangleTransition: none; /* Avoids error with background: inherit; on animation */
+@pointingTriangleZIndex: 2;
+
+/* Basic Pointing */
+@basicPointingTriangleOffset: -@pointingBorderWidth;
+
+/* Floating */
+@floatingTopOffset: -1em;
+@floatingBottomOffset: @floatingTopOffset;
+@floatingAlignOffset: 1.2em;
+@floatingZIndex: 100;
+
+/*-------------------
+ Group
+--------------------*/
+
+/* Sizing */
+@mini : @9px;
+@tiny : @10px;
+@small : @11px;
+@medium : @12px;
+@large : @absoluteMedium;
+@big : @absoluteBig;
+@huge : @absoluteHuge;
+@massive : @absoluteMassive;
diff --git a/assets/semantic/src/themes/default/elements/list.overrides b/assets/semantic/src/themes/default/elements/list.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/list.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/list.variables b/assets/semantic/src/themes/default/elements/list.variables
new file mode 100644
index 0000000..9b0b46e
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/list.variables
@@ -0,0 +1,236 @@
+/*******************************
+ List
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+/* List */
+@listStyleType: none;
+@listStylePosition: outside;
+@margin: 1em 0;
+@verticalPadding: 0;
+@horizontalPadding: 0;
+
+/* List Item */
+@itemVerticalPadding: @relative3px;
+@itemHorizontalPadding: 0;
+@itemPadding: @itemVerticalPadding @itemHorizontalPadding;
+@itemLineHeight: @relativeLarge;
+
+/* Sub List */
+@childListPadding: 0.75em 0 0.25em 0.5em;
+@childListIndent: 1em;
+
+/* Sub List Item */
+@childItemVerticalPadding: @relative2px;
+@childItemHorizontalPadding: 0;
+@childItemPadding: @childItemVerticalPadding @childItemHorizontalPadding;
+@childItemLineHeight: inherit;
+
+/*-------------------
+ Elements
+--------------------*/
+
+/* Icon */
+@iconDistance: @relative4px;
+@iconOffset: 0;
+@iconTransition: color @defaultDuration @defaultEasing;
+@iconVerticalAlign: top;
+@iconContentVerticalAlign: top;
+
+/* Image */
+@imageDistance: 0.5em;
+@imageAlign: top;
+
+/* Content */
+@contentDistance: 0.5em;
+@contentLineHeight: @itemLineHeight;
+@contentLineHeightOffset: (@contentLineHeight - 1em) / 2;
+@contentVerticalAlign: top;
+@contentColor: @textColor;
+
+/* Header */
+@itemHeaderFontFamily: @headerFont;
+@itemHeaderFontWeight: @bold;
+@itemHeaderColor: @textColor;
+
+/* Description */
+@itemDescriptionColor: rgba(0, 0, 0, 0.7);
+
+/* Link */
+@itemLinkColor: @linkColor;
+@itemLinkHoverColor: @linkHoverColor;
+
+/* Header Link */
+@itemHeaderLinkColor: @itemLinkColor;
+@itemHeaderLinkHoverColor: @itemLinkHoverColor;
+
+/* Linked Icon */
+@itemLinkIconColor: @lightTextColor;
+@itemLinkIconHoverColor: @textColor;
+@invertedIconLinkColor: @invertedLightTextColor;
+
+/*-------------------
+ States
+--------------------*/
+
+@disabledColor: @disabledTextColor;
+@invertedDisabledColor: @invertedDisabledTextColor;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Float */
+@floatDistance: 1em;
+@leftFloatMargin: 0 @floatDistance 0 0;
+@rightFloatMargin: 0 0 0 @floatDistance;
+
+/* Horizontal */
+@horizontalSpacing: 1em;
+@horizontalIconDistance: 0.25em;
+@horizontalVerticalAlign: middle;
+
+/* Inverted */
+@invertedListIconColor: @invertedLightTextColor;
+@invertedHeaderColor: @invertedTextColor;
+@invertedDescriptionColor: @invertedLightTextColor;
+@invertedItemLinkColor: @invertedTextColor;
+@invertedItemLinkHoverColor: @linkHoverColor;
+@invertedContentColor: @invertedLightTextColor;
+
+/* Link List */
+@linkListItemColor: @unselectedTextColor;
+@linkListItemHoverColor: @hoveredTextColor;
+@linkListItemDownColor: @pressedTextColor;
+@linkListItemActiveColor: @selectedTextColor;
+@linkListTransition:
+ @defaultDuration color @defaultEasing
+;
+
+/* Inverted Link List */
+@invertedLinkListItemColor: @invertedUnselectedTextColor;
+@invertedLinkListItemHoverColor: @invertedHoveredTextColor;
+@invertedLinkListItemDownColor: @invertedPressedTextColor;
+@invertedLinkListItemActiveColor: @invertedSelectedTextColor;
+
+/* Selection List */
+@selectionListItemMargin: 0;
+@selectionListItemBorderRadius: 0.5em;
+@selectionListItemVerticalPadding: 0.5em;
+@selectionListItemHorizontalPadding: 0.5em;
+@selectionListTransition:
+ @defaultDuration color @defaultEasing,
+ @defaultDuration padding-left @defaultEasing,
+ @defaultDuration background-color @defaultEasing
+;
+
+/* Selection List States */
+@selectionListBackground: transparent;
+@selectionListColor: @unselectedTextColor;
+@selectionListHoverBackground: @subtleTransparentBlack;
+@selectionListHoverColor: @hoveredTextColor;
+@selectionListDownBackground: @transparentBlack;
+@selectionListDownColor: @pressedTextColor;
+@selectionListActiveBackground: @transparentBlack;
+@selectionListActiveColor: @selectedTextColor;
+
+/* Inverted Selection List */
+@invertedSelectionListBackground: transparent;
+@invertedSelectionListColor: @invertedUnselectedTextColor;
+@invertedSelectionListHoverBackground: @subtleTransparentWhite;
+@invertedSelectionListHoverColor: @invertedHoveredTextColor;
+@invertedSelectionListDownBackground: @transparentWhite;
+@invertedSelectionListDownColor: @invertedPressedTextColor;
+@invertedSelectionListActiveBackground: @transparentWhite;
+@invertedSelectionListActiveColor: @invertedSelectedTextColor;
+
+/* Animated List */
+@animatedDuration: 0.25s;
+@animatedDelay: 0.1s;
+@animatedListTransition:
+ @animatedDuration color @defaultEasing @animatedDelay,
+ @animatedDuration padding-left @defaultEasing @animatedDelay,
+ @animatedDuration background-color @defaultEasing @animatedDelay
+;
+@animatedListIndent: 1em;
+
+/* Bulleted */
+@bulletDistance: 1.25rem;
+@bulletOffset: -@bulletDistance;
+
+@bulletOpacity: 1;
+@bulletCharacter: '\2022';
+@bulletColor: inherit;
+@bulletLinkColor: @textColor;
+@bulletVerticalAlign: top;
+@bulletChildDistance: @bulletDistance;
+
+/* Horizontal Bullets */
+@horizontalBulletColor: @textColor;
+@horizontalBulletSpacing: @bulletDistance + 0.5em;
+
+/* Ordered List */
+@orderedCountName: ordered;
+@orderedCountSeparator: ".";
+@orderedCountSuffix: ".";
+@orderedCountContent: counters(@orderedCountName, @orderedCountSeparator) " ";
+@orderedCountContentSuffixed: counters(@orderedCountName, @orderedCountSeparator) @orderedCountSuffix;
+@orderedCountColor: @textColor;
+@orderedCountDistance: 1.25rem;
+@orderedCountOpacity: 0.8;
+@orderedCountTextAlign: right;
+@orderedCountVerticalAlign: middle;
+
+@orderedChildCountDistance: 1em;
+@orderedChildCountOffset: -2em;
+
+@orderedInvertedCountColor: @invertedLightTextColor;
+
+/* Horizontal Ordered */
+@horizontalOrderedCountDistance: 0.5em;
+
+/* Divided */
+@dividedBorderWidth: 1px;
+@dividedBorder: @dividedBorderWidth solid @borderColor;
+@dividedInvertedBorderColor: @whiteBorderColor;
+@dividedChildListBorder: none;
+@dividedChildItemBorder: none;
+
+/* Divided Horizontal */
+@horizontalDividedSpacing: (@horizontalSpacing / 2);
+@horizontalDividedLineHeight: 0.6;
+
+/* Divided */
+@celledBorderWidth: 1px;
+@celledBorder: @celledBorderWidth solid @borderColor;
+@celledInvertedBorder: @whiteBorderColor;
+@celledHorizontalPadding: 0.5em;
+@celledChildListBorder: none;
+@celledChildItemBorder: none;
+
+/* Divided Horizontal */
+@horizontalCelledSpacing: (@horizontalSpacing / 2);
+@horizontalCelledLineHeight: 0.6;
+
+/* Relaxed */
+@relaxedItemVerticalPadding: @relative6px;
+@relaxedChildItemVerticalPadding: @relative3px;
+@relaxedHeaderMargin: 0.25rem;
+@relaxedHorizontalPadding: 1rem;
+
+/* Very Relaxed */
+@veryRelaxedItemVerticalPadding: @relative12px;
+@veryRelaxedChildItemVerticalPadding: @relative4px;
+@veryRelaxedHeaderMargin: 0.5rem;
+@veryRelaxedHorizontalPadding: 1.5rem;
+
+@miniListSize: @relativeMini;
+@tinyListSize: @relativeTiny;
+@smallListSize: @relativeSmall;
+@largeListSize: @relativeLarge;
+@bigListSize: @relativeBig;
+@hugeListSize: @relativeHuge;
+@massiveListSize: @relativeMassive;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/elements/loader.overrides b/assets/semantic/src/themes/default/elements/loader.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/loader.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/loader.variables b/assets/semantic/src/themes/default/elements/loader.variables
new file mode 100644
index 0000000..d8e69fe
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/loader.variables
@@ -0,0 +1,73 @@
+/*******************************
+ Loader
+*******************************/
+
+/* Some global loader styles defined in site.variables */
+// @loaderSpeed
+// @loaderLineWidth
+// @loaderFillColor
+// @loaderLineColor
+// @invertedLoaderFillColor
+// @invertedLoaderLineColor
+
+/*-------------------
+ Standard
+--------------------*/
+
+@loaderTopOffset: 50%;
+@loaderLeftOffset: 50%;
+
+@shapeBorderColor: @loaderLineColor;
+@invertedShapeBorderColor: @invertedLoaderLineColor;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Text */
+@textDistance: @relativeMini;
+@loaderTextColor: @textColor;
+@invertedLoaderTextColor: @invertedTextColor;
+
+
+/*-------------------
+ States
+--------------------*/
+
+@indeterminateDirection: reverse;
+@indeterminateSpeed: (2 * @loaderSpeed);
+
+/*-------------------
+ Variations
+--------------------*/
+
+@inlineVerticalAlign: middle;
+@inlineMargin: 0;
+
+/* Exact Sizes (Avoids Rounding Errors) */
+@mini : @14px;
+@tiny : @16px;
+@small : @24px;
+@medium : @32px;
+@large : @48px;
+@big : @52px;
+@huge : @58px;
+@massive : @64px;
+
+@miniOffset: 0 0 0 -(@mini / 2);
+@tinyOffset: 0 0 0 -(@tiny / 2);
+@smallOffset: 0 0 0 -(@small / 2);
+@mediumOffset: 0 0 0 -(@medium / 2);
+@largeOffset: 0 0 0 -(@large / 2);
+@bigOffset: 0 0 0 -(@big / 2);
+@hugeOffset: 0 0 0 -(@huge / 2);
+@massiveOffset: 0 0 0 -(@massive / 2);
+
+@tinyFontSize: @relativeTiny;
+@miniFontSize: @relativeMini;
+@smallFontSize: @relativeSmall;
+@mediumFontSize: @relativeMedium;
+@largeFontSize: @relativeLarge;
+@bigFontSize: @relativeBig;
+@hugeFontSize: @relativeHuge;
+@massiveFontSize: @relativeMassive;
diff --git a/assets/semantic/src/themes/default/elements/placeholder.overrides b/assets/semantic/src/themes/default/elements/placeholder.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/placeholder.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/placeholder.variables b/assets/semantic/src/themes/default/elements/placeholder.variables
new file mode 100644
index 0000000..ddf1a3d
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/placeholder.variables
@@ -0,0 +1,55 @@
+@placeholderMaxWidth: 30rem;
+
+/* Key Content Sizing */
+@placeholderLineMargin: @relative12px;
+@placeholderHeaderLineHeight: @relative9px;
+@placeholderLineHeight: @relative7px;
+@placeholderParagraphLineHeight: @placeholderLineHeight;
+
+@placeholderSpacing: @relative20px;
+
+/* Interval between consecutive placeholders */
+@placeholderAnimationInterval: 0.15s;
+
+/* Repeated Placeholder */
+@consecutivePlaceholderSpacing: 2rem;
+
+/* Image */
+@placeholderImageHeight: 100px;
+
+/* Header Image */
+@placeholderImageWidth: 3em;
+@placeholderImageTextIndent: @10px;
+
+/* Paragraph */
+@placeholderHeaderLineOneOutdent: 20%;
+@placeholderHeaderLineTwoOutdent: 60%;
+
+@placeholderLineOneOutdent: @placeholderFullLineOutdent;
+@placeholderLineTwoOutdent: @placeholderMediumLineOutdent;
+@placeholderLineThreeOutdent: @placeholderVeryLongLineOutdent;
+@placeholderLineFourOutdent: @placeholderLongLineOutdent;
+@placeholderLineFiveOutdent: @placeholderShortLineOutdent;
+
+
+/* Glow Gradient */
+@placeholderLoadingAnimationDuration: 2s;
+@placeholderLoadingGradientWidth: 1200px;
+@placeholderLoadingGradient: linear-gradient(to right,
+ rgba(0, 0, 0, 0.08) 0,
+ rgba(0, 0, 0, 0.15) 15%,
+ rgba(0, 0, 0, 0.08) 30%
+);
+@placeholderInvertedLoadingGradient: linear-gradient(to right,
+ rgba(255, 255, 255, 0.08) 0,
+ rgba(255, 255, 255, 0.14) 15%,
+ rgba(255, 255, 255, 0.08) 30%
+);
+
+/* Variations */
+@placeholderFullLineOutdent: 0;
+@placeholderVeryLongLineOutdent: 10%;
+@placeholderLongLineOutdent: 35%;
+@placeholderMediumLineOutdent: 50%;
+@placeholderShortLineOutdent: 65%;
+@placeholderVeryShortLineOutdent: 80%;
diff --git a/assets/semantic/src/themes/default/elements/rail.overrides b/assets/semantic/src/themes/default/elements/rail.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/rail.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/rail.variables b/assets/semantic/src/themes/default/elements/rail.variables
new file mode 100644
index 0000000..32e2fe6
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/rail.variables
@@ -0,0 +1,34 @@
+/*******************************
+ Rail
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@width: 300px;
+@height: 100%;
+
+@distance: 4rem;
+@splitDistance: (@distance / 2);
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Close */
+@closeDistance: 2em;
+@veryCloseDistance: 1em;
+
+@splitCloseDistance: (@closeDistance / 2);
+@splitVeryCloseDistance: (@veryCloseDistance / 2);
+
+@closeWidth: e(%("calc(%d + %d)", @width, @splitCloseDistance));
+@veryCloseWidth: e(%("calc(%d + %d)", @width, @splitVeryCloseDistance));
+
+/* Dividing */
+@dividingBorder: 1px solid @borderColor;
+@dividingDistance: 5rem;
+@splitDividingDistance: (@dividingDistance / 2);
+@dividingWidth: @width + @splitDividingDistance;
+
diff --git a/assets/semantic/src/themes/default/elements/reveal.overrides b/assets/semantic/src/themes/default/elements/reveal.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/reveal.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/reveal.variables b/assets/semantic/src/themes/default/elements/reveal.variables
new file mode 100644
index 0000000..d7798be
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/reveal.variables
@@ -0,0 +1,18 @@
+/*******************************
+ Reveal
+*******************************/
+
+@transitionDelay: 0.1s;
+@transitionDuration: 0.5s;
+@transitionEasing: cubic-bezier(0.175, 0.885, 0.320, 1);
+@transition: all @transitionDuration @defaultEasing @transitionDelay;
+
+@bottomZIndex: 2;
+@topZIndex: 3;
+@activeZIndex: 4;
+@overlayZIndex: 5;
+
+/* Types */
+@rotateDegrees: 110deg;
+@moveTransition: transform @transitionDuration @transitionEasing @transitionDelay;
+@slideTransition: transform @transitionDuration @defaultEasing @transitionDelay;
diff --git a/assets/semantic/src/themes/default/elements/segment.overrides b/assets/semantic/src/themes/default/elements/segment.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/segment.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/segment.variables b/assets/semantic/src/themes/default/elements/segment.variables
new file mode 100644
index 0000000..6830dee
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/segment.variables
@@ -0,0 +1,155 @@
+/*******************************
+ Segment
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@background: @white;
+@borderWidth: 1px;
+@border: @borderWidth solid @borderColor;
+
+@boxShadow: @subtleShadow;
+@verticalPadding: 1em;
+@horizontalPadding: 1em;
+@padding: @verticalPadding @horizontalPadding;
+
+@verticalMargin: 1rem;
+@horizontalMargin: 0;
+@margin: @verticalMargin @horizontalMargin;
+@borderRadius: @defaultBorderRadius;
+
+/*-------------------
+ Group
+--------------------*/
+
+@groupedMargin: @margin;
+@groupedBorder: @border;
+@groupedBoxShadow: @boxShadow;
+@groupedBorderRadius: @borderRadius;
+
+@nestedGroupMargin: @verticalMargin @verticalMargin;
+
+@groupedSegmentBorder: none;
+@groupedSegmentDivider: @border;
+@groupedSegmentMargin: 0;
+@groupedSegmentWidth: auto;
+@groupedSegmentBoxShadow: none;
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Page Grid Segment */
+@pageGridMargin: (2 * @verticalPadding);
+
+/*******************************
+ Types
+*******************************/
+
+/* Placeholder */
+@placeholderBackground: @offWhite;
+@placeholderPadding: @padding;
+@placeholderBorderColor: @borderColor;
+@placeholderBoxShadow: 0 2px 25px 0 rgba(34, 36, 38, 0.05) inset;
+@placeholderMinHeight: 18rem;
+@placeholderContentMaxWidth: 15rem;
+@placeholderContentInlineButtonMargin: 0 @5px 0 0;
+
+
+/* Piled */
+@piledZIndex: auto;
+@piledMargin: 3em;
+@piledBoxShadow: '';
+@piledDegrees: 1.2deg;
+@piledBorder: @border;
+
+/* Circular */
+@circularPadding: 2em;
+
+/* Stacked */
+@stackedHeight: 6px;
+@stackedPageBackground: @subtleTransparentBlack;
+@stackedPadding: @verticalPadding + (0.4em);
+@tallStackedPadding: @verticalPadding + (0.8em);
+
+/*******************************
+ States
+*******************************/
+
+/* Loading Dimmer */
+@loaderDimmerColor: rgba(255, 255, 255, 0.8);
+@loaderInvertedDimmerColor: rgba(0, 0, 0 , 0.85);
+@loaderDimmerZIndex: 100;
+
+/* Loading Spinner */
+@loaderSize: 3em;
+@loaderLineZIndex: 101;
+
+
+/*******************************
+ Variations
+*******************************/
+
+
+/* Raised */
+@raisedBoxShadow: @floatingShadow;
+
+/* Padded */
+@paddedSegmentPadding: 1.5em;
+@veryPaddedSegmentPadding: 3em;
+
+/* Attached */
+@attachedTopOffset: 0;
+@attachedBottomOffset: 0;
+@attachedHorizontalOffset: -@borderWidth;
+@attachedWidth: e(%("calc(100%% + %d)", -@attachedHorizontalOffset * 2));
+@attachedBoxShadow: none;
+@attachedBorder: @borderWidth solid @solidBorderColor;
+@attachedBottomBoxShadow:
+ @boxShadow,
+ @attachedBoxShadow
+;
+
+/* Inverted */
+@invertedBackground: @black;
+
+/* Floated */
+@floatedDistance: 1em;
+
+/* Basic */
+@basicBackground: none transparent;
+@basicBorder: none;
+@basicBoxShadow: none;
+@basicBorderRadius: 0;
+
+/* Colors */
+@coloredBorderSize: 2px;
+
+/* Ordinality */
+@secondaryBackground: @darkWhite;
+@secondaryColor: @mutedTextColor;
+
+@tertiaryBackground: @midWhite;
+@tertiaryColor: @mutedTextColor;
+
+@secondaryInvertedLightness: 0.2;
+@secondaryInvertedBackground:
+ lighten(@black, (@secondaryInvertedLightness * 100))
+ linear-gradient(
+ rgba(255, 255, 255, @secondaryInvertedLightness) 0,
+ rgba(255, 255, 255, @secondaryInvertedLightness) 100%
+ )
+;
+@secondaryInvertedColor: @invertedMutedTextColor;
+
+@tertiaryInvertedLightness: 0.35;
+@tertiaryInvertedBackground:
+ lighten(@black, (@tertiaryInvertedLightness * 100))
+ linear-gradient(
+ rgba(255, 255, 255, @tertiaryInvertedLightness) 0,
+ rgba(255, 255, 255, @tertiaryInvertedLightness) 100%
+ )
+;
+@tertiaryInvertedColor: @invertedMutedTextColor;
diff --git a/assets/semantic/src/themes/default/elements/step.overrides b/assets/semantic/src/themes/default/elements/step.overrides
new file mode 100644
index 0000000..24c5f9b
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/step.overrides
@@ -0,0 +1,16 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
+@font-face {
+ font-family: 'Step';
+ src:
+ url(data:application/x-font-ttf;charset=utf-8;;base64,AAEAAAAOAIAAAwBgT1MvMj3hSQEAAADsAAAAVmNtYXDQEhm3AAABRAAAAUpjdnQgBkn/lAAABuwAAAAcZnBnbYoKeDsAAAcIAAAJkWdhc3AAAAAQAAAG5AAAAAhnbHlm32cEdgAAApAAAAC2aGVhZAErPHsAAANIAAAANmhoZWEHUwNNAAADgAAAACRobXR4CykAAAAAA6QAAAAMbG9jYQA4AFsAAAOwAAAACG1heHAApgm8AAADuAAAACBuYW1lzJ0aHAAAA9gAAALNcG9zdK69QJgAAAaoAAAAO3ByZXCSoZr/AAAQnAAAAFYAAQO4AZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADoAQNS/2oAWgMLAE8AAAABAAAAAAAAAAAAAwAAAAMAAAAcAAEAAAAAAEQAAwABAAAAHAAEACgAAAAGAAQAAQACAADoAf//AAAAAOgA//8AABgBAAEAAAAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADpAKYABUAHEAZDwEAAQFCAAIBAmoAAQABagAAAGEUFxQDEisBFAcBBiInASY0PwE2Mh8BATYyHwEWA6QP/iAQLBD+6g8PTBAsEKQBbhAsEEwPAhYWEP4gDw8BFhAsEEwQEKUBbxAQTBAAAAH//f+xA18DCwAMABJADwABAQpDAAAACwBEFRMCESsBFA4BIi4CPgEyHgEDWXLG6MhuBnq89Lp+AV51xHR0xOrEdHTEAAAAAAEAAAABAADDeRpdXw889QALA+gAAAAAzzWYjQAAAADPNWBN//3/sQOkAwsAAAAIAAIAAAAAAAAAAQAAA1L/agBaA+gAAP/3A6QAAQAAAAAAAAAAAAAAAAAAAAMD6AAAA+gAAANZAAAAAAAAADgAWwABAAAAAwAWAAEAAAAAAAIABgATAG4AAAAtCZEAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE0IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA0ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAQIBAwljaGVja21hcmsGY2lyY2xlAAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAADIAMgML/7EDC/+xsAAssCBgZi2wASwgZCCwwFCwBCZasARFW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCwCkVhZLAoUFghsApFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwACtZWSOwAFBYZVlZLbACLCBFILAEJWFkILAFQ1BYsAUjQrAGI0IbISFZsAFgLbADLCMhIyEgZLEFYkIgsAYjQrIKAAIqISCwBkMgiiCKsAArsTAFJYpRWGBQG2FSWVgjWSEgsEBTWLAAKxshsEBZI7AAUFhlWS2wBCywB0MrsgACAENgQi2wBSywByNCIyCwACNCYbCAYrABYLAEKi2wBiwgIEUgsAJFY7ABRWJgRLABYC2wBywgIEUgsAArI7ECBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAgssQUFRbABYUQtsAkssAFgICCwCUNKsABQWCCwCSNCWbAKQ0qwAFJYILAKI0JZLbAKLCC4BABiILgEAGOKI2GwC0NgIIpgILALI0IjLbALLEtUWLEHAURZJLANZSN4LbAMLEtRWEtTWLEHAURZGyFZJLATZSN4LbANLLEADENVWLEMDEOwAWFCsAorWbAAQ7ACJUKxCQIlQrEKAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAJKiEjsAFhIIojYbAJKiEbsQEAQ2CwAiVCsAIlYbAJKiFZsAlDR7AKQ0dgsIBiILACRWOwAUViYLEAABMjRLABQ7AAPrIBAQFDYEItsA4ssQAFRVRYALAMI0IgYLABYbUNDQEACwBCQopgsQ0FK7BtKxsiWS2wDyyxAA4rLbAQLLEBDistsBEssQIOKy2wEiyxAw4rLbATLLEEDistsBQssQUOKy2wFSyxBg4rLbAWLLEHDistsBcssQgOKy2wGCyxCQ4rLbAZLLAIK7EABUVUWACwDCNCIGCwAWG1DQ0BAAsAQkKKYLENBSuwbSsbIlktsBossQAZKy2wGyyxARkrLbAcLLECGSstsB0ssQMZKy2wHiyxBBkrLbAfLLEFGSstsCAssQYZKy2wISyxBxkrLbAiLLEIGSstsCMssQkZKy2wJCwgPLABYC2wJSwgYLANYCBDI7ABYEOwAiVhsAFgsCQqIS2wJiywJSuwJSotsCcsICBHICCwAkVjsAFFYmAjYTgjIIpVWCBHICCwAkVjsAFFYmAjYTgbIVktsCgssQAFRVRYALABFrAnKrABFTAbIlktsCkssAgrsQAFRVRYALABFrAnKrABFTAbIlktsCosIDWwAWAtsCssALADRWOwAUVisAArsAJFY7ABRWKwACuwABa0AAAAAABEPiM4sSoBFSotsCwsIDwgRyCwAkVjsAFFYmCwAENhOC2wLSwuFzwtsC4sIDwgRyCwAkVjsAFFYmCwAENhsAFDYzgtsC8ssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrIuAQEVFCotsDAssAAWsAQlsAQlRyNHI2GwBkUrZYouIyAgPIo4LbAxLLAAFrAEJbAEJSAuRyNHI2EgsAQjQrAGRSsgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsIBiYCCwACsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsIBiYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsIBiYCMgsAArI7AEQ2CwACuwBSVhsAUlsIBisAQmYSCwBCVgZCOwAyVgZFBYIRsjIVkjICCwBCYjRmE4WS2wMiywABYgICCwBSYgLkcjRyNhIzw4LbAzLLAAFiCwCCNCICAgRiNHsAArI2E4LbA0LLAAFrADJbACJUcjRyNhsABUWC4gPCMhG7ACJbACJUcjRyNhILAFJbAEJUcjRyNhsAYlsAUlSbACJWGwAUVjIyBYYhshWWOwAUViYCMuIyAgPIo4IyFZLbA1LLAAFiCwCEMgLkcjRyNhIGCwIGBmsIBiIyAgPIo4LbA2LCMgLkawAiVGUlggPFkusSYBFCstsDcsIyAuRrACJUZQWCA8WS6xJgEUKy2wOCwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xJgEUKy2wOSywMCsjIC5GsAIlRlJYIDxZLrEmARQrLbA6LLAxK4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrEmARQrsARDLrAmKy2wOyywABawBCWwBCYgLkcjRyNhsAZFKyMgPCAuIzixJgEUKy2wPCyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAGRSsgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwgGJgILAAKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwgGJhsAIlRmE4IyA8IzgbISAgRiNHsAArI2E4IVmxJgEUKy2wPSywMCsusSYBFCstsD4ssDErISMgIDywBCNCIzixJgEUK7AEQy6wJistsD8ssAAVIEewACNCsgABARUUEy6wLCotsEAssAAVIEewACNCsgABARUUEy6wLCotsEEssQABFBOwLSotsEIssC8qLbBDLLAAFkUjIC4gRoojYTixJgEUKy2wRCywCCNCsEMrLbBFLLIAADwrLbBGLLIAATwrLbBHLLIBADwrLbBILLIBATwrLbBJLLIAAD0rLbBKLLIAAT0rLbBLLLIBAD0rLbBMLLIBAT0rLbBNLLIAADkrLbBOLLIAATkrLbBPLLIBADkrLbBQLLIBATkrLbBRLLIAADsrLbBSLLIAATsrLbBTLLIBADsrLbBULLIBATsrLbBVLLIAAD4rLbBWLLIAAT4rLbBXLLIBAD4rLbBYLLIBAT4rLbBZLLIAADorLbBaLLIAATorLbBbLLIBADorLbBcLLIBATorLbBdLLAyKy6xJgEUKy2wXiywMiuwNistsF8ssDIrsDcrLbBgLLAAFrAyK7A4Ky2wYSywMysusSYBFCstsGIssDMrsDYrLbBjLLAzK7A3Ky2wZCywMyuwOCstsGUssDQrLrEmARQrLbBmLLA0K7A2Ky2wZyywNCuwNystsGgssDQrsDgrLbBpLLA1Ky6xJgEUKy2waiywNSuwNistsGsssDUrsDcrLbBsLLA1K7A4Ky2wbSwrsAhlsAMkUHiwARUwLQAAAEu4AMhSWLEBAY5ZuQgACABjILABI0SwAyNwsgQoCUVSRLIKAgcqsQYBRLEkAYhRWLBAiFixBgNEsSYBiFFYuAQAiFixBgFEWVlZWbgB/4WwBI2xBQBEAAA=) format('truetype'),
+ url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAoUAA4AAAAAEPQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPeFJAWNtYXAAAAGIAAAAOgAAAUrQEhm3Y3Z0IAAAAcQAAAAUAAAAHAZJ/5RmcGdtAAAB2AAABPkAAAmRigp4O2dhc3AAAAbUAAAACAAAAAgAAAAQZ2x5ZgAABtwAAACuAAAAtt9nBHZoZWFkAAAHjAAAADUAAAA2ASs8e2hoZWEAAAfEAAAAIAAAACQHUwNNaG10eAAAB+QAAAAMAAAADAspAABsb2NhAAAH8AAAAAgAAAAIADgAW21heHAAAAf4AAAAIAAAACAApgm8bmFtZQAACBgAAAF3AAACzcydGhxwb3N0AAAJkAAAACoAAAA7rr1AmHByZXAAAAm8AAAAVgAAAFaSoZr/eJxjYGTewTiBgZWBg6mKaQ8DA0MPhGZ8wGDIyMTAwMTAysyAFQSkuaYwOLxgeMHIHPQ/iyGKmZvBHyjMCJIDAPe9C2B4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF4w/v8PUvCCAURLMELVAwEjG8OIBwBk5AavAAB4nGNgQANGDEbM3P83gjAAELQD4XicnVXZdtNWFJU8ZHASOmSgoA7X3DhQ68qEKRgwaSrFdiEdHAitBB2kDHTkncc+62uOQrtWH/m07n09JLR0rbYsls++R1tn2DrnRhwjKn0aiGvUoZKXA6msPZZK90lc13Uvj5UMBnFdthJPSZuonSRKat3sUC7xWOsqWSdYJ+PlIFZPVZ5noAziFB5lSUQbRBuplyZJ4onjJ4kWZxAfJUkgJaMQp9LIUEI1GsRS1aFM6dCr1xNx00DKRqMedVhU90PFJ8c1p9SsA0YqVznCFevVRr4bpwMve5DEOsGzrYcxHnisfpQqkIqR6cg/dkpOlIaBVHHUoVbi6DCTX/eRTCrNQKaMYkWl7oG43f102xYxPXQ6vi5KlUaqurnOKJrt0fGogygP2cbppNzQ2fbw5RlTVKtdcbPtQGYNXErJbHSfRAAdJlLj6QFONZwCqRn1R8XZ588BEslclKo8VTKHegOZMzt7cTHtbiersnCknwcyb3Z2452HQ6dXh3/R+hdM4cxHj+Jifj5C+lBqfiJOJKVGWMzyp4YfcVcgQrkxiAsXyuBThDl0RdrZZl3jtTH2hs/5SqlhPQna6KP4fgr9TiQrHGdRo/VInM1j13Wt3GdQS7W7Fzsyr0OVIu7vCwuuM+eEYZ4WC1VfnvneBTT/Bohn/EDeNIVL+5YpSrRvm6JMu2iKCu0SVKVdNsUU7YoppmnPmmKG9h1TzNKeMzLj/8vc55H7HN7xkJv2XeSmfQ+5ad9HbtoPkJtWITdtHblpLyA3rUZu2lWjOnYEGgZpF1IVQdA0svph3Fab9UDWjDR8aWDyLmLI+upER521tcofxX914gsHcmmip7siF5viLq/bFj483e6rj5pG3bDV+MaR8jAeRnocmtBZ+c3hv+1N3S6a7jKqMugBFUwKwABl7UAC0zrbCaT1mqf48gdgXIZ4zkpDtVSfO4am7+V5X/exOfG+x+3GLrdcd3kJWdYNcmP28N9SZKrrH+UtrVQnR6wrJ49VaxhDKrwour6SlHu0tRu/KKmy8l6U1srnk5CbPYMbQlu27mGwI0xpyiUeXlOlKD3UUo6yQyxvKco84JSLC1qGxLgOdQ9qa8TpoXoYGwshhqG0vRBwSCldFd+0ynfxHqtr2Oj4xRXh6XpyEhGf4ir7UfBU10b96A7avGbdMoMpVaqn+4xPsa/b9lFZaaSOsxe3VAfXNOsaORXTT+Rr4HRvOGjdAz1UfDRBI1U1x+jGKGM0ljXl3wR0MVZ+w2jVYvs93E+dpFWsuUuY7JsT9+C0u/0q+7WcW0bW/dcGvW3kip8jMb8tCvw7B2K3ZA3UO5OBGAvIWdAYxhYmdxiug23EbfY/Jqf/34aFRXJXOxq7eerD1ZNRJXfZ8rjLTXZZ16M2R9VOGvsIjS0PN+bY4XIstsRgQbb+wf8x7gF3aVEC4NDIZZiI2nShnurh6h6rsW04VxIBds2x43QAegAuQd8cu9bzCYD13CPnLsB9cgh2yCH4lByCz8i5BfA5OQRfkEMwIIdgl5w7AA/IIXhIDsEeOQSPyNkE+JIcgq/IIYjJIUjIuQ3wmByCJ+QQfE0OwTdGrk5k/pYH2QD6zqKbQKmdGhzaOGRGrk3Y+zxY9oFFZB9aROqRkesT6lMeLPV7i0j9wSJSfzRyY0L9iQdL/dkiUn+xiNRnxpeZIymvDp7zjg7+BJfqrV4AAAAAAQAB//8AD3icY2BkAALmJUwzGEQZZBwk+RkZGBmdGJgYmbIYgMwsoGSiiLgIs5A2owg7I5uSOqOaiT2jmZE8I5gQY17C/09BQEfg3yt+fh8gvYQxD0j68DOJiQn8U+DnZxQDcQUEljLmCwBpBgbG/3//b2SOZ+Zm4GEQcuAH2sblDLSEm8FFVJhJEGgLH6OSHpMdo5EcI3Nk0bEXJ/LYqvZ82VXHGFd6pKTkyCsQwQAAq+QkqAAAeJxjYGRgYADiw5VSsfH8Nl8ZuJlfAEUYzpvO6IXQCb7///7fyLyEmRvI5WBgAokCAFb/DJAAAAB4nGNgZGBgDvqfxRDF/IKB4f935iUMQBEUwAwAi5YFpgPoAAAD6AAAA1kAAAAAAAAAOABbAAEAAAADABYAAQAAAAAAAgAGABMAbgAAAC0JkQAAAAB4nHWQy2rCQBSG//HSi0JbWui2sypKabxgN4IgWHTTbqS4LTHGJBIzMhkFX6Pv0IfpS/RZ+puMpShNmMx3vjlz5mQAXOMbAvnzxJGzwBmjnAs4Rc9ykf7Zcon8YrmMKt4sn9C/W67gAYHlKm7wwQqidM5ogU/LAlfi0nIBF+LOcpH+0XKJ3LNcxq14tXxC71muYCJSy1Xci6+BWm11FIRG1gZ12W62OnK6lYoqStxYumsTKp3KvpyrxPhxrBxPLfc89oN17Op9uJ8nvk4jlciW09yrkZ/42jX+bFc93QRtY+ZyrtVSDm2GXGm18D3jhMasuo3G3/MwgMIKW2hEvKoQBhI12jrnNppooUOaMkMyM8+KkMBFTONizR1htpIy7nPMGSW0PjNisgOP3+WRH5MC7o9ZRR+tHsYT0u6MKPOSfTns7jBrREqyTDezs9/eU2x4WpvWcNeuS511JTE8qCF5H7u1BY1H72S3Ymi7aPD95/9+AN1fhEsAeJxjYGKAAC4G7ICZgYGRiZGZMzkjNTk7N7Eomy05syg5J5WBAQBE1QZBAABLuADIUlixAQGOWbkIAAgAYyCwASNEsAMjcLIEKAlFUkSyCgIHKrEGAUSxJAGIUViwQIhYsQYDRLEmAYhRWLgEAIhYsQYBRFlZWVm4Af+FsASNsQUARAAA) format('woff')
+ ;
+}
+.ui.steps .step.completed > .icon:before,
+.ui.ordered.steps .step.completed:before {
+ font-family: 'Step';
+ content: '\e800'; /* '' */
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/elements/step.variables b/assets/semantic/src/themes/default/elements/step.variables
new file mode 100644
index 0000000..19215d7
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/step.variables
@@ -0,0 +1,139 @@
+/*******************************
+ Step
+*******************************/
+
+/*-------------------
+ Group
+--------------------*/
+
+@stepMargin: 1em 0;
+@stepsBorderRadius: @defaultBorderRadius;
+@stepsBackground: '';
+@stepsBoxShadow: none;
+@stepsBorder: 1px solid @borderColor;
+
+/*-------------------
+ Element
+--------------------*/
+
+@verticalMargin: 0;
+@horizontalMargin: 0;
+
+@arrowSize: @relativeLarge;
+@verticalPadding: @relativeLarge;
+@horizontalPadding: 2em;
+
+@transition:
+ background-color @defaultDuration @defaultEasing,
+ opacity @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing
+;
+@lineHeight: @relativeLarge;
+@alignItems: center;
+@justifyContent: center;
+@backgroundColor: @white;
+@background: @backgroundColor;
+@borderRadius: 0;
+@borderWidth: 1px;
+@boxShadow: none;
+@border: none;
+@divider: @borderWidth solid @borderColor;
+
+/* Icon */
+@iconDistance: 1rem;
+@iconSize: 2.5em;
+@iconAlign: middle;
+
+/* Title */
+@titleFontFamily: @headerFont;
+@titleFontWeight: @bold;
+@titleFontSize: @relativeLarge;
+@titleColor: @darkTextColor;
+
+/* Description */
+@descriptionDistance: 0.25em;
+@descriptionFontSize: @relativeSmall;
+@descriptionFontWeight: @normal;
+@descriptionColor: @textColor;
+
+
+/* Arrow */
+@arrowBackgroundColor: @backgroundColor;
+@arrowTopOffset: 50%;
+@arrowRightOffset: 0;
+@arrowBorderWidth: 0 @borderWidth @borderWidth 0;
+
+@arrowDisplay: block;
+@lastArrowDisplay: none;
+
+@activeArrowDisplay: block;
+@activeLastArrowDisplay: none;
+
+/* Mobile */
+@mobileIconDistance: @iconDistance;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Vertical */
+@verticalDivider: @divider;
+@verticalArrowTopOffset: 50%;
+@verticalArrowRightOffset: 0;
+@verticalLeftArrowLeftOffset: 0;
+@verticalLeftArrowRightOffset: 100%;
+@verticalLeftArrowBorderWidth: @borderWidth 0 0 @borderWidth;
+@verticalArrowBorderWidth: 0 @borderWidth @borderWidth 0;
+
+@verticalArrowDisplay: none;
+@verticalLastArrowDisplay: @verticalArrowDisplay;
+
+@verticalActiveArrowDisplay: block;
+@verticalActiveLastArrowDisplay: block;
+
+/*-------------------
+ Variations
+--------------------*/
+
+@attachedHorizontalOffset: -@borderWidth;
+@attachedVerticalOffset: 0;
+@attachedWidth: e(%("calc(100%% + %d)", -@attachedHorizontalOffset * 2));
+
+@orderedFontFamily: inherit;
+@orderedFontWeight: @bold;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Completed */
+@completedColor: @positiveColor;
+
+/* Hover */
+@hoverBackground: @offWhite;
+@hoverColor: @hoveredTextColor;
+
+/* Down */
+@downBackground: @darkWhite;
+@downColor: @pressedTextColor;
+
+/* Active */
+@activeBackground: @darkWhite;
+@activeColor: @linkColor;
+@activeIconColor: @darkTextColor;
+
+/* Active + Hover */
+@activeHoverBackground: @lightGrey;
+@activeHoverColor: @textColor;
+
+
+/* Disabled */
+@disabledBackground: @background;
+@disabledColor: @disabledTextColor;
+
+/* Inverted */
+@invertedActiveBackground: #333333;
+@invertedActiveHoverBackground: #444444;
+@invertedHoverBackground: #3F3F3F;
+@invertedDisabledBackground: #222222;
diff --git a/assets/semantic/src/themes/default/elements/text.overrides b/assets/semantic/src/themes/default/elements/text.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/text.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/elements/text.variables b/assets/semantic/src/themes/default/elements/text.variables
new file mode 100644
index 0000000..a3ae15e
--- /dev/null
+++ b/assets/semantic/src/themes/default/elements/text.variables
@@ -0,0 +1,18 @@
+/*******************************
+ Text
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+@lineHeight: 1;
+
+@mini: 0.4em;
+@tiny: 0.5em;
+@small: 0.75em;
+@medium: 1em;
+@large: 1.5em;
+@big: 2em;
+@huge: 4em;
+@massive: 8em;
+
diff --git a/assets/semantic/src/themes/default/globals/colors.less b/assets/semantic/src/themes/default/globals/colors.less
new file mode 100644
index 0000000..2b0cb01
--- /dev/null
+++ b/assets/semantic/src/themes/default/globals/colors.less
@@ -0,0 +1,615 @@
+/***********************************************************
+ Central Color Mapping Base for all components to iterate
+***********************************************************/
+
+@colors: {
+ @primary: {
+ color : @primaryColor;
+ light : @lightPrimaryColor;
+ border : @primaryBorderColor;
+ background : @primaryBackground;
+ header : @primaryHeaderColor;
+ boxShadow : @primaryBoxShadow;
+ boxFloatShadow : @primaryBoxFloatingShadow;
+ text : @primaryTextColor;
+ lightText : @lightPrimaryTextColor;
+ hoverText : @primaryHoverTextColor;
+ focus : @primaryColorFocus;
+ lightFocus : @lightPrimaryColorFocus;
+ down : @primaryColorDown;
+ lightDown : @lightPrimaryColorDown;
+ active : @primaryColorActive;
+ lightActive : @lightPrimaryColorActive;
+ shadow : @primaryTextShadow;
+ lightShadow : @lightPrimaryTextShadow;
+ hover : @primaryColorHover;
+ lightHover : @lightPrimaryColorHover;
+ ribbon : @primaryRibbonShadow;
+ invertedRibbon : @primaryInvertedRibbonShadow;
+ tertiary : @primaryTertiaryColor;
+ tertiaryHover : @primaryTertiaryColorHover;
+ tertiaryFocus : @primaryTertiaryColorFocus;
+ tertiaryActive : @primaryTertiaryColorActive;
+ bright : @primaryBright;
+ brightHover : @primaryBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @secondary: {
+ color : @secondaryColor;
+ light : @lightSecondaryColor;
+ border : @secondaryBorderColor;
+ background : @secondaryBackground;
+ header : @secondaryHeaderColor;
+ boxShadow : @secondaryBoxShadow;
+ boxFloatShadow : @secondaryBoxFloatingShadow;
+ text : @secondaryTextColor;
+ lightText : @lightSecondaryTextColor;
+ hoverText : @secondaryHoverTextColor;
+ focus : @secondaryColorFocus;
+ lightFocus : @lightSecondaryColorFocus;
+ down : @secondaryColorDown;
+ lightDown : @lightSecondaryColorDown;
+ active : @secondaryColorActive;
+ lightActive : @lightSecondaryColorActive;
+ shadow : @secondaryTextShadow;
+ lightShadow : @lightSecondaryTextShadow;
+ hover : @secondaryColorHover;
+ lightHover : @lightSecondaryColorHover;
+ ribbon : @secondaryRibbonShadow;
+ invertedRibbon : @secondaryInvertedRibbonShadow;
+ tertiary : @secondaryTertiaryColor;
+ tertiaryHover : @secondaryTertiaryColorHover;
+ tertiaryFocus : @secondaryTertiaryColorFocus;
+ tertiaryActive : @secondaryTertiaryColorActive;
+ bright : @secondaryBright;
+ brightHover : @secondaryBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @red: {
+ color : @red;
+ light : @lightRed;
+ border : @redBorderColor;
+ background : @redBackground;
+ header : @redHeaderColor;
+ boxShadow : @redBoxShadow;
+ boxFloatShadow : @redBoxFloatingShadow;
+ text : @redTextColor;
+ lightText : @lightRedTextColor;
+ hoverText : @redHoverTextColor;
+ focus : @redFocus;
+ lightFocus : @lightRedFocus;
+ down : @redDown;
+ lightDown : @lightRedDown;
+ active : @redActive;
+ lightActive : @lightRedActive;
+ shadow : @redTextShadow;
+ lightShadow : @lightRedTextShadow;
+ hover : @redHover;
+ lightHover : @lightRedHover;
+ ribbon : @redRibbonShadow;
+ invertedRibbon : @redInvertedRibbonShadow;
+ tertiary : @redTertiaryColor;
+ tertiaryHover : @redTertiaryColorHover;
+ tertiaryFocus : @redTertiaryColorFocus;
+ tertiaryActive : @redTertiaryColorActive;
+ bright : @redBright;
+ brightHover : @redBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @orange: {
+ color : @orange;
+ light : @lightOrange;
+ border : @orangeBorderColor;
+ background : @orangeBackground;
+ header : @orangeHeaderColor;
+ boxShadow : @orangeBoxShadow;
+ boxFloatShadow : @orangeBoxFloatingShadow;
+ text : @orangeTextColor;
+ lightText : @lightOrangeTextColor;
+ hoverText : @orangeHoverTextColor;
+ focus : @orangeFocus;
+ lightFocus : @lightOrangeFocus;
+ down : @orangeDown;
+ lightDown : @lightOrangeDown;
+ active : @orangeActive;
+ lightActive : @lightOrangeActive;
+ shadow : @orangeTextShadow;
+ lightShadow : @lightOrangeTextShadow;
+ hover : @orangeHover;
+ lightHover : @lightOrangeHover;
+ ribbon : @orangeRibbonShadow;
+ invertedRibbon : @orangeInvertedRibbonShadow;
+ tertiary : @orangeTertiaryColor;
+ tertiaryHover : @orangeTertiaryColorHover;
+ tertiaryFocus : @orangeTertiaryColorFocus;
+ tertiaryActive : @orangeTertiaryColorActive;
+ bright : @orangeBright;
+ brightHover : @orangeBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @yellow: {
+ color : @yellow;
+ light : @lightYellow;
+ border : @yellowBorderColor;
+ background : @yellowBackground;
+ header : @yellowHeaderColor;
+ boxShadow : @yellowBoxShadow;
+ boxFloatShadow : @yellowBoxFloatingShadow;
+ text : @yellowTextColor;
+ lightText : @lightYellowTextColor;
+ hoverText : @yellowHoverTextColor;
+ focus : @yellowFocus;
+ lightFocus : @lightYellowFocus;
+ down : @yellowDown;
+ lightDown : @lightYellowDown;
+ active : @yellowActive;
+ lightActive : @lightYellowActive;
+ shadow : @yellowTextShadow;
+ lightShadow : @lightYellowTextShadow;
+ hover : @yellowHover;
+ lightHover : @lightYellowHover;
+ ribbon : @yellowRibbonShadow;
+ invertedRibbon : @yellowInvertedRibbonShadow;
+ tertiary : @yellowTertiaryColor;
+ tertiaryHover : @yellowTertiaryColorHover;
+ tertiaryFocus : @yellowTertiaryColorFocus;
+ tertiaryActive : @yellowTertiaryColorActive;
+ bright : @yellowBright;
+ brightHover : @yellowBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @olive: {
+ color : @olive;
+ light : @lightOlive;
+ border : @oliveBorderColor;
+ background : @oliveBackground;
+ header : @oliveHeaderColor;
+ boxShadow : @oliveBoxShadow;
+ boxFloatShadow : @oliveBoxFloatingShadow;
+ text : @oliveTextColor;
+ lightText : @lightOliveTextColor;
+ hoverText : @oliveHoverTextColor;
+ focus : @oliveFocus;
+ lightFocus : @lightOliveFocus;
+ down : @oliveDown;
+ lightDown : @lightOliveDown;
+ active : @oliveActive;
+ lightActive : @lightOliveActive;
+ shadow : @oliveTextShadow;
+ lightShadow : @lightOliveTextShadow;
+ hover : @oliveHover;
+ lightHover : @lightOliveHover;
+ ribbon : @oliveRibbonShadow;
+ invertedRibbon : @oliveInvertedRibbonShadow;
+ tertiary : @oliveTertiaryColor;
+ tertiaryHover : @oliveTertiaryColorHover;
+ tertiaryFocus : @oliveTertiaryColorFocus;
+ tertiaryActive : @oliveTertiaryColorActive;
+ bright : @oliveBright;
+ brightHover : @oliveBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @green: {
+ color : @green;
+ light : @lightGreen;
+ border : @greenBorderColor;
+ background : @greenBackground;
+ header : @greenHeaderColor;
+ boxShadow : @greenBoxShadow;
+ boxFloatShadow : @greenBoxFloatingShadow;
+ text : @greenTextColor;
+ lightText : @lightGreenTextColor;
+ hoverText : @greenHoverTextColor;
+ focus : @greenFocus;
+ lightFocus : @lightGreenFocus;
+ down : @greenDown;
+ lightDown : @lightGreenDown;
+ active : @greenActive;
+ lightActive : @lightGreenActive;
+ shadow : @greenTextShadow;
+ lightShadow : @lightGreenTextShadow;
+ hover : @greenHover;
+ lightHover : @lightGreenHover;
+ ribbon : @greenRibbonShadow;
+ invertedRibbon : @greenInvertedRibbonShadow;
+ tertiary : @greenTertiaryColor;
+ tertiaryHover : @greenTertiaryColorHover;
+ tertiaryFocus : @greenTertiaryColorFocus;
+ tertiaryActive : @greenTertiaryColorActive;
+ bright : @greenBright;
+ brightHover : @greenBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @teal: {
+ color : @teal;
+ light : @lightTeal;
+ border : @tealBorderColor;
+ background : @tealBackground;
+ header : @tealHeaderColor;
+ boxShadow : @tealBoxShadow;
+ boxFloatShadow : @tealBoxFloatingShadow;
+ text : @tealTextColor;
+ lightText : @lightTealTextColor;
+ hoverText : @tealHoverTextColor;
+ focus : @tealFocus;
+ lightFocus : @lightTealFocus;
+ down : @tealDown;
+ lightDown : @lightTealDown;
+ active : @tealActive;
+ lightActive : @lightTealActive;
+ shadow : @tealTextShadow;
+ lightShadow : @lightTealTextShadow;
+ hover : @tealHover;
+ lightHover : @lightTealHover;
+ ribbon : @tealRibbonShadow;
+ invertedRibbon : @tealInvertedRibbonShadow;
+ tertiary : @tealTertiaryColor;
+ tertiaryHover : @tealTertiaryColorHover;
+ tertiaryFocus : @tealTertiaryColorFocus;
+ tertiaryActive : @tealTertiaryColorActive;
+ bright : @tealBright;
+ brightHover : @tealBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @blue: {
+ color : @blue;
+ light : @lightBlue;
+ border : @blueBorderColor;
+ background : @blueBackground;
+ header : @blueHeaderColor;
+ boxShadow : @blueBoxShadow;
+ boxFloatShadow : @blueBoxFloatingShadow;
+ text : @blueTextColor;
+ lightText : @lightBlueTextColor;
+ hoverText : @blueHoverTextColor;
+ focus : @blueFocus;
+ lightFocus : @lightBlueFocus;
+ down : @blueDown;
+ lightDown : @lightBlueDown;
+ active : @blueActive;
+ lightActive : @lightBlueActive;
+ shadow : @blueTextShadow;
+ lightShadow : @lightBlueTextShadow;
+ hover : @blueHover;
+ lightHover : @lightBlueHover;
+ ribbon : @blueRibbonShadow;
+ invertedRibbon : @blueInvertedRibbonShadow;
+ tertiary : @blueTertiaryColor;
+ tertiaryHover : @blueTertiaryColorHover;
+ tertiaryFocus : @blueTertiaryColorFocus;
+ tertiaryActive : @blueTertiaryColorActive;
+ bright : @blueBright;
+ brightHover : @blueBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @violet: {
+ color : @violet;
+ light : @lightViolet;
+ border : @violetBorderColor;
+ background : @violetBackground;
+ header : @violetHeaderColor;
+ boxShadow : @violetBoxShadow;
+ boxFloatShadow : @violetBoxFloatingShadow;
+ text : @violetTextColor;
+ lightText : @lightVioletTextColor;
+ hoverText : @violetHoverTextColor;
+ focus : @violetFocus;
+ lightFocus : @lightVioletFocus;
+ down : @violetDown;
+ lightDown : @lightVioletDown;
+ active : @violetActive;
+ lightActive : @lightVioletActive;
+ shadow : @violetTextShadow;
+ lightShadow : @lightVioletTextShadow;
+ hover : @violetHover;
+ lightHover : @lightVioletHover;
+ ribbon : @violetRibbonShadow;
+ invertedRibbon : @violetInvertedRibbonShadow;
+ tertiary : @violetTertiaryColor;
+ tertiaryHover : @violetTertiaryColorHover;
+ tertiaryFocus : @violetTertiaryColorFocus;
+ tertiaryActive : @violetTertiaryColorActive;
+ bright : @violetBright;
+ brightHover : @violetBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @purple: {
+ color : @purple;
+ light : @lightPurple;
+ border : @purpleBorderColor;
+ background : @purpleBackground;
+ header : @purpleHeaderColor;
+ boxShadow : @purpleBoxShadow;
+ boxFloatShadow : @purpleBoxFloatingShadow;
+ text : @purpleTextColor;
+ lightText : @lightPurpleTextColor;
+ hoverText : @purpleHoverTextColor;
+ focus : @purpleFocus;
+ lightFocus : @lightPurpleFocus;
+ down : @purpleDown;
+ lightDown : @lightPurpleDown;
+ active : @purpleActive;
+ lightActive : @lightPurpleActive;
+ shadow : @purpleTextShadow;
+ lightShadow : @lightPurpleTextShadow;
+ hover : @purpleHover;
+ lightHover : @lightPurpleHover;
+ ribbon : @purpleRibbonShadow;
+ invertedRibbon : @purpleInvertedRibbonShadow;
+ tertiary : @purpleTertiaryColor;
+ tertiaryHover : @purpleTertiaryColorHover;
+ tertiaryFocus : @purpleTertiaryColorFocus;
+ tertiaryActive : @purpleTertiaryColorActive;
+ bright : @purpleBright;
+ brightHover : @purpleBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @pink: {
+ color : @pink;
+ light : @lightPink;
+ border : @pinkBorderColor;
+ background : @pinkBackground;
+ header : @pinkHeaderColor;
+ boxShadow : @pinkBoxShadow;
+ boxFloatShadow : @pinkBoxFloatingShadow;
+ text : @pinkTextColor;
+ lightText : @lightPinkTextColor;
+ hoverText : @pinkHoverTextColor;
+ focus : @pinkFocus;
+ lightFocus : @lightPinkFocus;
+ down : @pinkDown;
+ lightDown : @lightPinkDown;
+ active : @pinkActive;
+ lightActive : @lightPinkActive;
+ shadow : @pinkTextShadow;
+ lightShadow : @lightPinkTextShadow;
+ hover : @pinkHover;
+ lightHover : @lightPinkHover;
+ ribbon : @pinkRibbonShadow;
+ invertedRibbon : @pinkInvertedRibbonShadow;
+ tertiary : @pinkTertiaryColor;
+ tertiaryHover : @pinkTertiaryColorHover;
+ tertiaryFocus : @pinkTertiaryColorFocus;
+ tertiaryActive : @pinkTertiaryColorActive;
+ bright : @pinkBright;
+ brightHover : @pinkBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @brown: {
+ color : @brown;
+ light : @lightBrown;
+ border : @brownBorderColor;
+ background : @brownBackground;
+ header : @brownHeaderColor;
+ boxShadow : @brownBoxShadow;
+ boxFloatShadow : @brownBoxFloatingShadow;
+ text : @brownTextColor;
+ lightText : @lightBrownTextColor;
+ hoverText : @brownHoverTextColor;
+ focus : @brownFocus;
+ lightFocus : @lightBrownFocus;
+ down : @brownDown;
+ lightDown : @lightBrownDown;
+ active : @brownActive;
+ lightActive : @lightBrownActive;
+ shadow : @brownTextShadow;
+ lightShadow : @lightBrownTextShadow;
+ hover : @brownHover;
+ lightHover : @lightBrownHover;
+ ribbon : @brownRibbonShadow;
+ invertedRibbon : @brownInvertedRibbonShadow;
+ tertiary : @brownTertiaryColor;
+ tertiaryHover : @brownTertiaryColorHover;
+ tertiaryFocus : @brownTertiaryColorFocus;
+ tertiaryActive : @brownTertiaryColorActive;
+ bright : @brownBright;
+ brightHover : @brownBrightHover;
+ isDark : false;
+ isVeryDark : false;
+ };
+ @grey: {
+ color : @grey;
+ light : @lightGrey;
+ border : @greyBorderColor;
+ background : @greyBackground;
+ header : @greyHeaderColor;
+ boxShadow : @greyBoxShadow;
+ boxFloatShadow : @greyBoxFloatingShadow;
+ text : @greyTextColor;
+ lightText : @lightGreyTextColor;
+ hoverText : @greyHoverTextColor;
+ focus : @greyFocus;
+ lightFocus : @lightGreyFocus;
+ down : @greyDown;
+ lightDown : @lightGreyDown;
+ active : @greyActive;
+ lightActive : @lightGreyActive;
+ shadow : @greyTextShadow;
+ lightShadow : @lightGreyTextShadow;
+ hover : @greyHover;
+ lightHover : @lightGreyHover;
+ ribbon : @greyRibbonShadow;
+ invertedRibbon : @greyInvertedRibbonShadow;
+ tertiary : @greyTertiaryColor;
+ tertiaryHover : @greyTertiaryColorHover;
+ tertiaryFocus : @greyTertiaryColorFocus;
+ tertiaryActive : @greyTertiaryColorActive;
+ bright : @greyBright;
+ brightHover : @greyBrightHover;
+ isDark : true;
+ isVeryDark : false;
+ };
+ @black: {
+ color : @black;
+ light : @lightBlack;
+ border : @blackBorderColor;
+ background : @blackBackground;
+ header : @blackHeaderColor;
+ boxShadow : @blackBoxShadow;
+ boxFloatShadow : @blackBoxFloatingShadow;
+ text : @blackTextColor;
+ lightText : @lightBlackTextColor;
+ hoverText : @blackHoverTextColor;
+ focus : @blackFocus;
+ lightFocus : @lightBlackFocus;
+ down : @blackDown;
+ lightDown : @lightBlackDown;
+ active : @blackActive;
+ lightActive : @lightBlackActive;
+ shadow : @blackTextShadow;
+ lightShadow : @lightBlackTextShadow;
+ hover : @blackHover;
+ lightHover : @lightBlackHover;
+ ribbon : @blackRibbonShadow;
+ invertedRibbon : @blackInvertedRibbonShadow;
+ tertiary : @blackTertiaryColor;
+ tertiaryHover : @blackTertiaryColorHover;
+ tertiaryFocus : @blackTertiaryColorFocus;
+ tertiaryActive : @blackTertiaryColorActive;
+ bright : @blackBright;
+ brightHover : @blackBrightHover;
+ isDark : true;
+ isVeryDark : true;
+ };
+}
+
+/***********************************************************
+ Color Mapping Base for form components to iterate
+***********************************************************/
+
+@formStates: {
+ @error: {
+ color: @formErrorColor;
+ background: @formErrorBackground;
+ borderColor: @formErrorBorder;
+ borderRadius: @inputErrorBorderRadius;
+ boxShadow: @inputErrorBoxShadow;
+ cornerLabelColor: @white;
+
+ dropdownLabelColor: @dropdownErrorLabelColor;
+ dropdownLabelBackground: @dropdownErrorLabelBackground;
+ dropdownHoverBackground: @dropdownErrorHoverBackground;
+ dropdownSelectedBackground: @dropdownErrorSelectedBackground;
+ dropdownActiveBackground: @dropdownErrorActiveBackground;
+
+ inputAutoFillBackground: @inputAutoFillErrorBackground;
+ inputAutoFillBorderColor: @inputAutoFillErrorBorder;
+ inputFocusBackground: @inputErrorFocusBackground;
+ inputFocusColor: @inputErrorFocusColor;
+ inputFocusBorderColor: @inputErrorFocusBorder;
+ inputFocusBoxShadow: @inputErrorFocusBoxShadow;
+ inputPlaceholderColor: @inputErrorPlaceholderColor;
+ inputPlaceholderFocusColor: @inputErrorPlaceholderFocusColor;
+
+ transparentBackground: @transparentFormErrorBackground;
+ transparentColor: @transparentFormErrorColor;
+ };
+
+ @info: {
+ color: @formInfoColor;
+ background: @formInfoBackground;
+ borderColor: @formInfoBorder;
+ borderRadius: @inputInfoBorderRadius;
+ boxShadow: @inputInfoBoxShadow;
+ cornerLabelColor: @white;
+
+ dropdownLabelColor: @dropdownInfoLabelColor;
+ dropdownLabelBackground: @dropdownInfoLabelBackground;
+ dropdownHoverBackground: @dropdownInfoHoverBackground;
+ dropdownSelectedBackground: @dropdownInfoSelectedBackground;
+ dropdownActiveBackground: @dropdownInfoActiveBackground;
+
+ inputAutoFillBackground: @inputAutoFillInfoBackground;
+ inputAutoFillBorderColor: @inputAutoFillInfoBorder;
+ inputFocusBackground: @inputInfoFocusBackground;
+ inputFocusColor: @inputInfoFocusColor;
+ inputFocusBorderColor: @inputInfoFocusBorder;
+ inputFocusBoxShadow: @inputInfoFocusBoxShadow;
+ inputPlaceholderColor: @inputInfoPlaceholderColor;
+ inputPlaceholderFocusColor: @inputInfoPlaceholderFocusColor;
+
+ transparentBackground: @transparentFormInfoBackground;
+ transparentColor: @transparentFormInfoColor;
+ };
+
+ @success: {
+ color: @formSuccessColor;
+ background: @formSuccessBackground;
+ borderColor: @formSuccessBorder;
+ borderRadius: @inputSuccessBorderRadius;
+ boxShadow: @inputSuccessBoxShadow;
+ cornerLabelColor: @white;
+
+ dropdownLabelColor: @dropdownSuccessLabelColor;
+ dropdownLabelBackground: @dropdownSuccessLabelBackground;
+ dropdownHoverBackground: @dropdownSuccessHoverBackground;
+ dropdownSelectedBackground: @dropdownSuccessSelectedBackground;
+ dropdownActiveBackground: @dropdownSuccessActiveBackground;
+
+ inputAutoFillBackground: @inputAutoFillSuccessBackground;
+ inputAutoFillBorderColor: @inputAutoFillSuccessBorder;
+ inputFocusBackground: @inputSuccessFocusBackground;
+ inputFocusColor: @inputSuccessFocusColor;
+ inputFocusBorderColor: @inputSuccessFocusBorder;
+ inputFocusBoxShadow: @inputSuccessFocusBoxShadow;
+ inputPlaceholderColor: @inputSuccessPlaceholderColor;
+ inputPlaceholderFocusColor: @inputSuccessPlaceholderFocusColor;
+
+ transparentBackground: @transparentFormSuccessBackground;
+ transparentColor: @transparentFormSuccessColor;
+ };
+
+ @warning: {
+ color: @formWarningColor;
+ background: @formWarningBackground;
+ borderColor: @formWarningBorder;
+ borderRadius: @inputWarningBorderRadius;
+ boxShadow: @inputWarningBoxShadow;
+ cornerLabelColor: @white;
+
+ dropdownLabelColor: @dropdownWarningLabelColor;
+ dropdownLabelBackground: @dropdownWarningLabelBackground;
+ dropdownHoverBackground: @dropdownWarningHoverBackground;
+ dropdownSelectedBackground: @dropdownWarningSelectedBackground;
+ dropdownActiveBackground: @dropdownWarningActiveBackground;
+
+ inputAutoFillBackground: @inputAutoFillWarningBackground;
+ inputAutoFillBorderColor: @inputAutoFillWarningBorder;
+ inputFocusBackground: @inputWarningFocusBackground;
+ inputFocusColor: @inputWarningFocusColor;
+ inputFocusBorderColor: @inputWarningFocusBorder;
+ inputFocusBoxShadow: @inputWarningFocusBoxShadow;
+ inputPlaceholderColor: @inputWarningPlaceholderColor;
+ inputPlaceholderFocusColor: @inputWarningPlaceholderFocusColor;
+
+ transparentBackground: @transparentFormWarningBackground;
+ transparentColor: @transparentFormWarningColor;
+ };
+}
+
+@textStates: {
+ @error: {
+ color: @negativeColor;
+ };
+ @info: {
+ color: @infoColor;
+ };
+ @success: {
+ color: @positiveColor;
+ };
+ @warning: {
+ color: @warningColor;
+ };
+}
diff --git a/assets/semantic/src/themes/default/globals/reset.overrides b/assets/semantic/src/themes/default/globals/reset.overrides
new file mode 100644
index 0000000..784422c
--- /dev/null
+++ b/assets/semantic/src/themes/default/globals/reset.overrides
@@ -0,0 +1,349 @@
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
+ */
+
+html {
+ line-height: 1.15; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+ ========================================================================== */
+
+/**
+ * Remove the margin in all browsers.
+ */
+
+body {
+ margin: 0;
+}
+
+/**
+ * Render the `main` element consistently in IE.
+ */
+
+main {
+ display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Remove the gray background on active links in IE 10.
+ */
+
+a {
+ background-color: transparent;
+}
+
+/**
+ * 1. Remove the bottom border in Chrome 57-
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+
+abbr[title] {
+ border-bottom: none; /* 1 */
+ text-decoration: underline; /* 2 */
+ text-decoration: underline dotted; /* 2 */
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove the border on images inside links in IE 10.
+ */
+
+img {
+ border-style: none;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * 1. Change the font styles in all browsers.
+ * 2. Remove the margin in Firefox and Safari.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
+}
+
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+
+button,
+input { /* 1 */
+ overflow: visible;
+}
+
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+
+button,
+select { /* 1 */
+ text-transform: none;
+}
+
+/**
+ * Correct the inability to style clickable types in iOS and Safari.
+ */
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+ * Correct the padding in Firefox.
+ */
+
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
+
+legend {
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
+}
+
+/**
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+ vertical-align: baseline;
+}
+
+/**
+ * Remove the default vertical scrollbar in IE 10+.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
+ */
+
+[type="checkbox"],
+[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Remove the inner padding in Chrome and Safari on macOS.
+ */
+
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/* Interactive
+ ========================================================================== */
+
+/*
+ * Add the correct display in Edge, IE 10+, and Firefox.
+ */
+
+details {
+ display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+ display: list-item;
+}
+
+/* Misc
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 10+.
+ */
+
+template {
+ display: none;
+}
+
+/**
+ * Add the correct display in IE 10.
+ */
+
+[hidden] {
+ display: none;
+}
diff --git a/assets/semantic/src/themes/default/globals/reset.variables b/assets/semantic/src/themes/default/globals/reset.variables
new file mode 100644
index 0000000..889b4b0
--- /dev/null
+++ b/assets/semantic/src/themes/default/globals/reset.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Reset
+*******************************/
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/globals/site.overrides b/assets/semantic/src/themes/default/globals/site.overrides
new file mode 100644
index 0000000..70aa105
--- /dev/null
+++ b/assets/semantic/src/themes/default/globals/site.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Global Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/globals/site.variables b/assets/semantic/src/themes/default/globals/site.variables
new file mode 100644
index 0000000..3f1ed1d
--- /dev/null
+++ b/assets/semantic/src/themes/default/globals/site.variables
@@ -0,0 +1,1461 @@
+/*******************************
+ Site Settings
+*******************************/
+
+@import "variation.variables";
+
+/*-------------------
+ Fonts
+--------------------*/
+
+@fontName : 'Lato';
+
+@headerFont : @fontName, 'Helvetica Neue', Arial, Helvetica, sans-serif;
+@pageFont : @fontName, 'Helvetica Neue', Arial, Helvetica, sans-serif;
+
+@googleFontName : @fontName;
+@importGoogleFonts : true;
+@googleFontSizes : '400,700,400italic,700italic';
+@googleSubset : 'latin';
+@googleFontDisplay : 'swap';
+
+@googleProtocol : 'https://';
+@googleFontRequest : '@{googleFontName}:@{googleFontSizes}&subset=@{googleSubset}&display=@{googleFontDisplay}';
+
+
+@bold : bold;
+@normal : normal;
+
+/*-------------------
+ Base Sizes
+--------------------*/
+
+/* This is the single variable that controls them all */
+@emSize : 14px;
+
+/* The size of page text */
+@fontSize : 14px;
+
+
+/*-------------------
+ Border Radius
+--------------------*/
+
+/* See Power-user section below
+ for explanation of @px variables
+*/
+@relativeBorderRadius: @relative4px;
+@absoluteBorderRadius: @4px;
+
+@defaultBorderRadius: @absoluteBorderRadius;
+
+/*-------------------
+ Brand Colors
+--------------------*/
+
+@primaryColor : @blue;
+@secondaryColor : @black;
+
+@lightPrimaryColor : @lightBlue;
+@lightSecondaryColor : @lightBlack;
+
+/* Whenever a color needs to get calculated (screen()/multiply()) out of a base color */
+@blendingBaseColor: #cccccc;
+
+/*--------------
+ Page Heading
+---------------*/
+
+@headerFontWeight : @bold;
+@headerLineHeight : unit((18 / 14), em);
+
+@h1 : unit((28 / 14), rem);
+@h2 : unit((24 / 14), rem);
+@h3 : unit((18 / 14), rem);
+@h4 : unit((15 / 14), rem);
+@h5 : unit((14 / 14), rem);
+@h6 : unit((12 / 14), rem);
+
+/*--------------
+ Form Input
+---------------*/
+
+/* This adjusts the default form input across all elements */
+@inputBackground : @white;
+@inputVerticalPadding : @relative11px;
+@inputHorizontalPadding : @relative14px;
+@inputPadding : @inputVerticalPadding @inputHorizontalPadding;
+
+/* Input Text Color */
+@inputColor: @textColor;
+@inputPlaceholderColor: lighten(@inputColor, 75);
+@inputPlaceholderFocusColor: lighten(@inputColor, 45);
+
+/* Line Height Default For Inputs in Browser (Descenders are 17px at 14px base em) */
+@inputLineHeight: unit((17 / 14), em);
+
+/*-------------------
+ Focused Input
+--------------------*/
+
+/* Used on inputs, textarea etc */
+@focusedFormBorderColor: #85B7D9;
+
+/* Used on dropdowns, other larger blocks */
+@focusedFormMutedBorderColor: #96C8DA;
+
+/*-------------------
+ Sizes
+--------------------*/
+
+/*
+ Sizes are all expressed in terms of 14px/em (default em)
+ This ensures these "ratios" remain constant despite changes in EM
+*/
+
+@miniSize : (11 / 14);
+@tinySize : (12 / 14);
+@smallSize : (13 / 14);
+@mediumSize : (14 / 14);
+@largeSize : (16 / 14);
+@bigSize : (18 / 14);
+@hugeSize : (20 / 14);
+@massiveSize : (24 / 14);
+
+
+/*-------------------
+ Page
+--------------------*/
+
+@pageBackground : #FFFFFF;
+@pageOverflowX : hidden;
+
+@lineHeight : 1.4285em;
+@textColor : rgba(0, 0, 0, 0.87);
+
+/*-------------------
+ Paragraph
+--------------------*/
+
+@paragraphMargin : 0 0 1em;
+@paragraphLineHeight : @lineHeight;
+
+/*-------------------
+ Links
+--------------------*/
+
+@linkColor : #4183C4;
+@linkUnderline : none;
+@linkHoverColor : darken(saturate(@linkColor, 20), 15, relative);
+@linkHoverUnderline : @linkUnderline;
+
+/*-------------------
+ Scroll Bars
+--------------------*/
+
+@useCustomScrollbars: true;
+
+@customScrollbarWidth: 10px;
+@customScrollbarHeight: 10px;
+
+@trackBackground: rgba(0, 0, 0, 0.1);
+@trackBorderRadius: 0;
+
+@thumbBorderRadius: 5px;
+@thumbBackground: rgba(0, 0, 0, 0.25);
+@thumbTransition: color 0.2s ease;
+
+@thumbInactiveBackground: rgba(0, 0, 0, 0.15);
+@thumbHoverBackground: rgba(128, 135, 139, 0.8);
+
+/* Inverted */
+@trackInvertedBackground: rgba(255, 255, 255, 0.1);
+@thumbInvertedBackground: rgba(255, 255, 255, 0.25);
+@thumbInvertedInactiveBackground: rgba(255, 255, 255, 0.15);
+@thumbInvertedHoverBackground: rgba(255, 255, 255, 0.35);
+
+/*-------------------
+ Highlighted Text
+--------------------*/
+
+@highlightBackground : #CCE2FF;
+@highlightColor : @textColor;
+
+@inputHighlightBackground : rgba(100, 100, 100, 0.4);
+@inputHighlightColor : @textColor;
+
+
+/*-------------------
+ Loader
+--------------------*/
+
+@loaderSize : @relativeBig;
+@loaderSpeedFast : 0.3s;
+@loaderSpeed : 0.6s;
+@loaderSpeedSlow : 0.9s;
+@loaderLineWidth : 0.2em;
+@loaderFillColor : rgba(0, 0, 0, 0.1);
+@loaderLineColor : @grey;
+
+@invertedLoaderFillColor : rgba(255, 255, 255, 0.15);
+@invertedLoaderLineColor : @white;
+
+/*-------------------
+ Grid
+--------------------*/
+
+@columnCount: 16;
+
+/*-------------------
+ Transitions
+--------------------*/
+
+@defaultDuration : 0.1s;
+@defaultEasing : ease;
+
+/*-------------------
+ Breakpoints
+--------------------*/
+
+@mobileBreakpoint : 320px;
+@tabletBreakpoint : 768px;
+@computerBreakpoint : 992px;
+@largeMonitorBreakpoint : 1200px;
+@widescreenMonitorBreakpoint : 1920px;
+
+/*-------------------
+ Site Colors
+--------------------*/
+
+/*--- Colors ---*/
+@red : #DB2828;
+@orange : #F2711C;
+@yellow : #FBBD08;
+@olive : #B5CC18;
+@green : #21BA45;
+@teal : #00B5AD;
+@blue : #2185D0;
+@violet : #6435C9;
+@purple : #A333C8;
+@pink : #E03997;
+@brown : #A5673F;
+@grey : #767676;
+@black : #1B1C1D;
+
+/*--- Light Colors ---*/
+@lightRed : #FF695E;
+@lightOrange : #FF851B;
+@lightYellow : #FFE21F;
+@lightOlive : #D9E778;
+@lightGreen : #2ECC40;
+@lightTeal : #6DFFFF;
+@lightBlue : #54C8FF;
+@lightViolet : #A291FB;
+@lightPurple : #DC73FF;
+@lightPink : #FF8EDF;
+@lightBrown : #D67C1C;
+@lightGrey : #DCDDDE;
+@lightBlack : #545454;
+
+/*--- Neutrals ---*/
+@fullBlack : #000000;
+@offWhite : #F9FAFB;
+@darkWhite : #F3F4F5;
+@midWhite : #DCDDDE;
+@white : #FFFFFF;
+
+/*--- Colored Backgrounds ---*/
+@primaryBackground : #DFF0FF;
+@secondaryBackground : #F4F4F4;
+@redBackground : #FFE8E6;
+@orangeBackground : #FFEDDE;
+@yellowBackground : #FFF8DB;
+@oliveBackground : #FBFDEF;
+@greenBackground : #E5F9E7;
+@tealBackground : #E1F7F7;
+@blueBackground : #DFF0FF;
+@violetBackground : #EAE7FF;
+@purpleBackground : #F6E7FF;
+@pinkBackground : #FFE3FB;
+@brownBackground : #F1E2D3;
+@greyBackground : #F4F4F4;
+@blackBackground : #F4F4F4;
+
+/*--- Colored Headers ---*/
+@primaryHeaderColor : darken(@primaryTextColor, 5);
+@secondaryHeaderColor : darken(@secondaryTextColor, 5);
+@redHeaderColor : darken(@redTextColor, 5);
+@oliveHeaderColor : darken(@oliveTextColor, 5);
+@greenHeaderColor : darken(@greenTextColor, 5);
+@yellowHeaderColor : darken(@yellowTextColor, 5);
+@blueHeaderColor : darken(@blueTextColor, 5);
+@tealHeaderColor : darken(@tealTextColor, 5);
+@pinkHeaderColor : darken(@pinkTextColor, 5);
+@violetHeaderColor : darken(@violetTextColor, 5);
+@purpleHeaderColor : darken(@purpleTextColor, 5);
+@orangeHeaderColor : darken(@orangeTextColor, 5);
+@brownHeaderColor : darken(@brownTextColor, 5);
+@greyHeaderColor : darken(@greyTextColor, 5);
+@blackHeaderColor : darken(@blackTextColor, 5);
+
+/*--- Colored Text ---*/
+@primaryTextColor : @invertedTextColor;
+@secondaryTextColor : @invertedTextColor;
+@redTextColor : @red;
+@orangeTextColor : @orange;
+@yellowTextColor : #B58105; // Yellow text is difficult to read
+@oliveTextColor : #8ABC1E; // Olive is difficult to read
+@greenTextColor : #1EBC30; // Green is difficult to read
+@tealTextColor : #10A3A3; // Teal text is difficult to read
+@blueTextColor : @blue;
+@violetTextColor : @violet;
+@purpleTextColor : @purple;
+@pinkTextColor : @pink;
+@brownTextColor : @brown;
+@greyTextColor : @grey;
+@blackTextColor : @black;
+
+/*--- Light Colored Text ---*/
+@lightPrimaryTextColor : @invertedTextColor;
+@lightSecondaryTextColor : @invertedTextColor;
+@lightRedTextColor : @lightRed;
+@lightOrangeTextColor : @lightOrange;
+@lightYellowTextColor : #B58105; // Yellow text is difficult to read
+@lightOliveTextColor : #8ABC1E; // Olive is difficult to read
+@lightGreenTextColor : #1EBC30; // Green is difficult to read
+@lightTealTextColor : #10A3A3; // Teal text is difficult to read
+@lightBlueTextColor : @lightBlue;
+@lightVioletTextColor : @lightViolet;
+@lightPurpleTextColor : @lightPurple;
+@lightPinkTextColor : @lightPink;
+@lightBrownTextColor : @lightBrown;
+@lightGreyTextColor : @lightGrey;
+@lightBlackTextColor : @lightBlack;
+
+
+/*--- Hovered Colored Text ---*/
+@primaryHoverTextColor : @primaryTextColor;
+@secondaryHoverTextColor : @secondaryTextColor;
+@redHoverTextColor : @redTextColor;
+@orangeHoverTextColor : @orangeTextColor;
+@yellowHoverTextColor : @yellowTextColor;
+@oliveHoverTextColor : @oliveTextColor;
+@greenHoverTextColor : @greenTextColor;
+@tealHoverTextColor : @tealTextColor;
+@blueHoverTextColor : @blueTextColor;
+@violetHoverTextColor : @violetTextColor;
+@purpleHoverTextColor : @purpleTextColor;
+@pinkHoverTextColor : @pinkTextColor;
+@brownHoverTextColor : @brownTextColor;
+@greyHoverTextColor : @greyTextColor;
+@blackHoverTextColor : @blackTextColor;
+
+
+/*--- Colored Border ---*/
+@primaryBorderColor : @primaryColor;
+@secondaryBorderColor : @secondaryColor;
+@redBorderColor : @redTextColor;
+@orangeBorderColor : @orangeTextColor;
+@yellowBorderColor : @yellowTextColor;
+@oliveBorderColor : @oliveTextColor;
+@greenBorderColor : @greenTextColor;
+@tealBorderColor : @tealTextColor;
+@blueBorderColor : @blueTextColor;
+@violetBorderColor : @violetTextColor;
+@purpleBorderColor : @purpleTextColor;
+@pinkBorderColor : @pinkTextColor;
+@brownBorderColor : @brownTextColor;
+@greyBorderColor : @greyTextColor;
+@blackBorderColor : @blackTextColor;
+
+/*--- Shadows ---*/
+@primaryRibbonShadow: darken(@primaryColor, 10);
+@secondaryRibbonShadow: darken(@secondaryColor, 10);
+@redRibbonShadow: darken(@red, 10);
+@orangeRibbonShadow: darken(@orange, 10);
+@yellowRibbonShadow: darken(@yellow, 10);
+@oliveRibbonShadow: darken(@olive, 10);
+@greenRibbonShadow: darken(@green, 10);
+@tealRibbonShadow: darken(@teal, 10);
+@blueRibbonShadow: darken(@blue, 10);
+@violetRibbonShadow: darken(@violet, 10);
+@purpleRibbonShadow: darken(@purple, 10);
+@pinkRibbonShadow: darken(@pink, 10);
+@brownRibbonShadow: darken(@brown, 10);
+@greyRibbonShadow: darken(@grey, 10);
+@blackRibbonShadow: darken(@black, 10);
+
+@primaryInvertedRibbonShadow: darken(@lightPrimaryColor, 10);
+@secondaryInvertedRibbonShadow: darken(@lightSecondaryColor, 10);
+@redInvertedRibbonShadow: darken(@lightRed, 10);
+@orangeInvertedRibbonShadow: darken(@lightOrange, 10);
+@yellowInvertedRibbonShadow: darken(@lightYellow, 10);
+@oliveInvertedRibbonShadow: darken(@lightOlive, 10);
+@greenInvertedRibbonShadow: darken(@lightGreen, 10);
+@tealInvertedRibbonShadow: darken(@lightTeal, 10);
+@blueInvertedRibbonShadow: darken(@lightBlue, 10);
+@violetInvertedRibbonShadow: darken(@lightViolet, 10);
+@purpleInvertedRibbonShadow: darken(@lightPurple, 10);
+@pinkInvertedRibbonShadow: darken(@lightPink, 10);
+@brownInvertedRibbonShadow: darken(@lightBrown, 10);
+@greyInvertedRibbonShadow: lighten(@lightGrey, 5);
+@blackInvertedRibbonShadow: lighten(@lightBlack, 5);
+
+@textShadow: none;
+@invertedTextShadow: @textShadow;
+
+@primaryTextShadow: @invertedTextShadow;
+@secondaryTextShadow: @invertedTextShadow;
+@redTextShadow: @invertedTextShadow;
+@orangeTextShadow: @invertedTextShadow;
+@yellowTextShadow: @invertedTextShadow;
+@oliveTextShadow: @invertedTextShadow;
+@greenTextShadow: @invertedTextShadow;
+@tealTextShadow: @invertedTextShadow;
+@blueTextShadow: @invertedTextShadow;
+@violetTextShadow: @invertedTextShadow;
+@purpleTextShadow: @invertedTextShadow;
+@pinkTextShadow: @invertedTextShadow;
+@brownTextShadow: @invertedTextShadow;
+@greyTextShadow: @invertedTextShadow;
+@blackTextShadow: @invertedTextShadow;
+
+/* Inverted */
+@lightPrimaryTextShadow: @invertedTextShadow;
+@lightSecondaryTextShadow: @invertedTextShadow;
+@lightRedTextShadow: @invertedTextShadow;
+@lightOrangeTextShadow: @invertedTextShadow;
+@lightYellowTextShadow: @textShadow;
+@lightOliveTextShadow: @textShadow;
+@lightGreenTextShadow: @invertedTextShadow;
+@lightTealTextShadow: @textShadow;
+@lightBlueTextShadow: @invertedTextShadow;
+@lightVioletTextShadow: @invertedTextShadow;
+@lightPurpleTextShadow: @invertedTextShadow;
+@lightPinkTextShadow: @invertedTextShadow;
+@lightBrownTextShadow: @invertedTextShadow;
+@lightGreyTextShadow: @textShadow;
+@lightBlackTextShadow: @invertedTextShadow;
+
+/* Box Shadows */
+
+@shadowShadow: 0 0 0 0 rgba(0, 0, 0, 0);
+@borderWidth: 1px;
+
+@primaryBoxShadow:
+ 0 0 0 @borderWidth @primaryBorderColor inset,
+ @shadowShadow
+;
+@primaryBoxFloatingShadow:
+ 0 0 0 @borderWidth @primaryBorderColor inset,
+ @floatingShadow
+;
+@secondaryBoxShadow:
+ 0 0 0 @borderWidth @secondaryBorderColor inset,
+ @shadowShadow
+;
+@secondaryBoxFloatingShadow:
+ 0 0 0 @borderWidth @secondaryBorderColor inset,
+ @floatingShadow
+;
+@redBoxShadow:
+ 0 0 0 @borderWidth @redBorderColor inset,
+ @shadowShadow
+;
+@redBoxFloatingShadow:
+ 0 0 0 @borderWidth @redBorderColor inset,
+ @floatingShadow
+;
+@orangeBoxShadow:
+ 0 0 0 @borderWidth @orangeBorderColor inset,
+ @shadowShadow
+;
+@orangeBoxFloatingShadow:
+ 0 0 0 @borderWidth @orangeBorderColor inset,
+ @floatingShadow
+;
+@yellowBoxShadow:
+ 0 0 0 @borderWidth @yellowBorderColor inset,
+ @shadowShadow
+;
+@yellowBoxFloatingShadow:
+ 0 0 0 @borderWidth @yellowBorderColor inset,
+ @floatingShadow
+;
+@oliveBoxShadow:
+ 0 0 0 @borderWidth @oliveBorderColor inset,
+ @shadowShadow
+;
+@oliveBoxFloatingShadow:
+ 0 0 0 @borderWidth @oliveBorderColor inset,
+ @floatingShadow
+;
+@greenBoxShadow:
+ 0 0 0 @borderWidth @greenBorderColor inset,
+ @shadowShadow
+;
+@greenBoxFloatingShadow:
+ 0 0 0 @borderWidth @greenBorderColor inset,
+ @floatingShadow
+;
+@tealBoxShadow:
+ 0 0 0 @borderWidth @tealBorderColor inset,
+ @shadowShadow
+;
+@tealBoxFloatingShadow:
+ 0 0 0 @borderWidth @tealBorderColor inset,
+ @floatingShadow
+;
+@blueBoxShadow:
+ 0 0 0 @borderWidth @blueBorderColor inset,
+ @shadowShadow
+;
+@blueBoxFloatingShadow:
+ 0 0 0 @borderWidth @blueBorderColor inset,
+ @floatingShadow
+;
+@violetBoxShadow:
+ 0 0 0 @borderWidth @violetBorderColor inset,
+ @shadowShadow
+;
+@violetBoxFloatingShadow:
+ 0 0 0 @borderWidth @violetBorderColor inset,
+ @floatingShadow
+;
+@purpleBoxShadow:
+ 0 0 0 @borderWidth @purpleBorderColor inset,
+ @shadowShadow
+;
+@purpleBoxFloatingShadow:
+ 0 0 0 @borderWidth @purpleBorderColor inset,
+ @floatingShadow
+;
+@pinkBoxShadow:
+ 0 0 0 @borderWidth @pinkBorderColor inset,
+ @shadowShadow
+;
+@pinkBoxFloatingShadow:
+ 0 0 0 @borderWidth @pinkBorderColor inset,
+ @floatingShadow
+;
+@brownBoxShadow:
+ 0 0 0 @borderWidth @brownBorderColor inset,
+ @shadowShadow
+;
+@brownBoxFloatingShadow:
+ 0 0 0 @borderWidth @brownBorderColor inset,
+ @floatingShadow
+;
+@greyBoxShadow:
+ 0 0 0 @borderWidth @greyBorderColor inset,
+ @shadowShadow
+;
+@greyBoxFloatingShadow:
+ 0 0 0 @borderWidth @greyBorderColor inset,
+ @floatingShadow
+;
+@blackBoxShadow:
+ 0 0 0 @borderWidth @blackBorderColor inset,
+ @shadowShadow
+;
+@blackBoxFloatingShadow:
+ 0 0 0 @borderWidth @blackBorderColor inset,
+ @floatingShadow
+;
+
+/*-------------------
+ Alpha Colors
+--------------------*/
+
+@subtleTransparentBlack : rgba(0, 0, 0, 0.03);
+@transparentBlack : rgba(0, 0, 0, 0.05);
+@strongTransparentBlack : rgba(0, 0, 0, 0.10);
+@veryStrongTransparentBlack : rgba(0, 0, 0, 0.15);
+
+@subtleTransparentWhite : rgba(255, 255, 255, 0.02);
+@transparentWhite : rgba(255, 255, 255, 0.08);
+@strongTransparentWhite : rgba(255, 255, 255, 0.15);
+
+/*-------------------
+ Accents
+--------------------*/
+
+/* Differentiating Neutrals */
+@subtleGradient: linear-gradient(transparent, @transparentBlack);
+
+/* Differentiating Layers */
+@subtleShadow:
+ 0 1px 2px 0 @borderColor
+;
+@floatingShadow:
+ 0 2px 4px 0 rgba(34, 36, 38, 0.12),
+ 0 2px 10px 0 rgba(34, 36, 38, 0.15)
+;
+
+/*******************************
+ Power-User
+*******************************/
+
+
+/*-------------------
+ Emotive Colors
+--------------------*/
+
+/* Positive */
+@positiveColor : @green;
+@positiveBackgroundColor : #FCFFF5;
+@positiveBorderColor : #A3C293;
+@positiveHeaderColor : #1A531B;
+@positiveTextColor : #2C662D;
+
+/* Negative */
+@negativeColor : @red;
+@negativeBackgroundColor : #FFF6F6;
+@negativeBorderColor : #E0B4B4;
+@negativeHeaderColor : #912D2B;
+@negativeTextColor : #9F3A38;
+
+/* Info */
+@infoColor : #31CCEC;
+@infoBackgroundColor : #F8FFFF;
+@infoBorderColor : #A9D5DE;
+@infoHeaderColor : #0E566C;
+@infoTextColor : #276F86;
+
+/* Warning */
+@warningColor : #F2C037;
+@warningBorderColor : #C9BA9B;
+@warningBackgroundColor : #FFFAF3;
+@warningHeaderColor : #794B02;
+@warningTextColor : #573A08;
+
+/*-------------------
+ Paths
+--------------------*/
+
+/* For source only. Modified in gulp for dist */
+@imagePath : '../../themes/default/assets/images';
+@fontPath : '../../themes/default/assets/fonts';
+
+/*-------------------
+ Em Sizes
+--------------------*/
+
+/*
+ This rounds @size values to the closest pixel then expresses that value in (r)em.
+ This ensures all size values round to exact pixels
+*/
+@miniRaw : unit( round(@miniSize * @emSize) / @emSize );
+@tinyRaw : unit( round(@tinySize * @emSize) / @emSize );
+@smallRaw : unit( round(@smallSize * @emSize) / @emSize );
+@mediumRaw : unit( round(@mediumSize * @emSize) / @emSize );
+@largeRaw : unit( round(@largeSize * @emSize) / @emSize );
+@bigRaw : unit( round(@bigSize * @emSize) / @emSize );
+@hugeRaw : unit( round(@hugeSize * @emSize) / @emSize );
+@massiveRaw : unit( round(@massiveSize * @emSize) / @emSize );
+
+@mini : unit( @miniRaw, rem);
+@tiny : unit( @tinyRaw, rem);
+@small : unit( @smallRaw, rem);
+@medium : unit( @mediumRaw, rem);
+@large : unit( @largeRaw, rem);
+@big : unit( @bigRaw, rem);
+@huge : unit( @hugeRaw, rem);
+@massive : unit( @massiveRaw, rem);
+
+/* em */
+@relativeMini : unit( @miniRaw, em);
+@relativeTiny : unit( @tinyRaw, em);
+@relativeSmall : unit( @smallRaw, em);
+@relativeMedium : unit( @mediumRaw, em);
+@relativeLarge : unit( @largeRaw, em);
+@relativeBig : unit( @bigRaw, em);
+@relativeHuge : unit( @hugeRaw, em);
+@relativeMassive : unit( @massiveRaw, em);
+
+/* rem */
+@absoluteMini : unit( @miniRaw, rem);
+@absoluteTiny : unit( @tinyRaw, rem);
+@absoluteSmall : unit( @smallRaw, rem);
+@absoluteMedium : unit( @mediumRaw, rem);
+@absoluteLarge : unit( @largeRaw, rem);
+@absoluteBig : unit( @bigRaw, rem);
+@absoluteHuge : unit( @hugeRaw, rem);
+@absoluteMassive : unit( @massiveRaw, rem);
+
+/*-------------------
+ Icons
+--------------------*/
+
+/* Maximum Glyph Width of Icon */
+@iconWidth : 1.18em;
+
+/*-------------------
+ Neutral Text
+--------------------*/
+
+@darkTextColor : rgba(0, 0, 0, 0.85);
+@mutedTextColor : rgba(0, 0, 0, 0.6);
+@lightTextColor : rgba(0, 0, 0, 0.4);
+
+@unselectedTextColor : rgba(0, 0, 0, 0.4);
+@hoveredTextColor : rgba(0, 0, 0, 0.8);
+@pressedTextColor : rgba(0, 0, 0, 0.9);
+@selectedTextColor : rgba(0, 0, 0, 0.95);
+
+@invertedTextColor : rgba(255, 255, 255, 0.9);
+@invertedMutedTextColor : rgba(255, 255, 255, 0.8);
+@invertedLightTextColor : rgba(255, 255, 255, 0.7);
+@invertedUnselectedTextColor : rgba(255, 255, 255, 0.5);
+@invertedHoveredTextColor : rgba(255, 255, 255, 1);
+@invertedPressedTextColor : rgba(255, 255, 255, 1);
+@invertedSelectedTextColor : rgba(255, 255, 255, 1);
+
+/*-------------------
+ Brand Colors
+--------------------*/
+
+@facebookColor : #3B5998;
+@twitterColor : #1DA1F2;
+@googlePlusColor : #DD4B39;
+@linkedInColor : #0077B5;
+@youtubeColor : #FF0000;
+@pinterestColor : #BD081C;
+@vkColor : #45668E;
+@instagramColor : #49769C;
+@telegramColor : #0088CC;
+@whatsAppColor : #25D366;
+
+/*-------------------
+ Borders
+--------------------*/
+
+@circularRadius : 500rem;
+
+@borderColor : rgba(34, 36, 38, 0.15);
+@strongBorderColor : rgba(34, 36, 38, 0.22);
+@internalBorderColor : rgba(34, 36, 38, 0.1);
+@selectedBorderColor : rgba(34, 36, 38, 0.35);
+@strongSelectedBorderColor : rgba(34, 36, 38, 0.5);
+@disabledBorderColor : rgba(34, 36, 38, 0.5);
+
+@solidInternalBorderColor : #FAFAFA;
+@solidBorderColor : #D4D4D5;
+@solidSelectedBorderColor : #BCBDBD;
+
+@whiteBorderColor : rgba(255, 255, 255, 0.1);
+@selectedWhiteBorderColor : rgba(255, 255, 255, 0.8);
+
+@solidWhiteBorderColor : #555555;
+@selectedSolidWhiteBorderColor : #999999;
+
+
+/*-------------------
+ Derived Values
+--------------------*/
+
+/* Loaders Position Offset */
+@loaderOffset : -(@loaderSize / 2);
+@loaderMargin : @loaderOffset 0 0 @loaderOffset;
+
+/* Rendered Scrollbar Width */
+@scrollbarWidth: 17px;
+
+/* Maximum Single Character Glyph Width, aka Capital "W" */
+@glyphWidth: 1.1em;
+
+/* Used to match floats with text */
+@lineHeightOffset : ((@lineHeight - 1em) / 2);
+@headerLineHeightOffset : (@headerLineHeight - 1em) / 2;
+
+/* Header Spacing */
+@headerTopMargin : e(%("calc(2rem - %d)", @headerLineHeightOffset));
+@headerBottomMargin : 1rem;
+@headerMargin : @headerTopMargin 0 @headerBottomMargin;
+
+/* Minimum Mobile Width */
+@pageMinWidth : 320px;
+
+/* Positive / Negative Dupes */
+@successBackgroundColor : @positiveBackgroundColor;
+@successColor : @positiveColor;
+@successBorderColor : @positiveBorderColor;
+@successHeaderColor : @positiveHeaderColor;
+@successTextColor : @positiveTextColor;
+
+@errorBackgroundColor : @negativeBackgroundColor;
+@errorColor : @negativeColor;
+@errorBorderColor : @negativeBorderColor;
+@errorHeaderColor : @negativeHeaderColor;
+@errorTextColor : @negativeTextColor;
+
+
+/* Responsive */
+@largestMobileScreen : (@tabletBreakpoint - 0.02px);
+@largestTabletScreen : (@computerBreakpoint - 0.02px);
+@largestSmallMonitor : (@largeMonitorBreakpoint - 0.02px);
+@largestLargeMonitor : (@widescreenMonitorBreakpoint - 0.02px);
+
+
+/*-------------------
+ Exact Pixel Values
+--------------------*/
+/*
+ These are used to specify exact pixel values in em
+ for things like borders that remain constantly
+ sized as emSize adjusts
+
+ Since there are many more sizes than names for sizes,
+ these are named by their original pixel values.
+
+*/
+
+@1px : unit( (1 / @emSize), rem);
+@2px : unit( (2 / @emSize), rem);
+@3px : unit( (3 / @emSize), rem);
+@4px : unit( (4 / @emSize), rem);
+@5px : unit( (5 / @emSize), rem);
+@6px : unit( (6 / @emSize), rem);
+@7px : unit( (7 / @emSize), rem);
+@8px : unit( (8 / @emSize), rem);
+@9px : unit( (9 / @emSize), rem);
+@10px : unit( (10 / @emSize), rem);
+@11px : unit( (11 / @emSize), rem);
+@12px : unit( (12 / @emSize), rem);
+@13px : unit( (13 / @emSize), rem);
+@14px : unit( (14 / @emSize), rem);
+@15px : unit( (15 / @emSize), rem);
+@16px : unit( (16 / @emSize), rem);
+@17px : unit( (17 / @emSize), rem);
+@18px : unit( (18 / @emSize), rem);
+@19px : unit( (19 / @emSize), rem);
+@20px : unit( (20 / @emSize), rem);
+@21px : unit( (21 / @emSize), rem);
+@22px : unit( (22 / @emSize), rem);
+@23px : unit( (23 / @emSize), rem);
+@24px : unit( (24 / @emSize), rem);
+@25px : unit( (25 / @emSize), rem);
+@26px : unit( (26 / @emSize), rem);
+@27px : unit( (27 / @emSize), rem);
+@28px : unit( (28 / @emSize), rem);
+@29px : unit( (29 / @emSize), rem);
+@30px : unit( (30 / @emSize), rem);
+@31px : unit( (31 / @emSize), rem);
+@32px : unit( (32 / @emSize), rem);
+@33px : unit( (33 / @emSize), rem);
+@34px : unit( (34 / @emSize), rem);
+@35px : unit( (35 / @emSize), rem);
+@36px : unit( (36 / @emSize), rem);
+@37px : unit( (37 / @emSize), rem);
+@38px : unit( (38 / @emSize), rem);
+@39px : unit( (39 / @emSize), rem);
+@40px : unit( (40 / @emSize), rem);
+@41px : unit( (41 / @emSize), rem);
+@42px : unit( (42 / @emSize), rem);
+@43px : unit( (43 / @emSize), rem);
+@44px : unit( (44 / @emSize), rem);
+@45px : unit( (45 / @emSize), rem);
+@46px : unit( (46 / @emSize), rem);
+@47px : unit( (47 / @emSize), rem);
+@48px : unit( (48 / @emSize), rem);
+@49px : unit( (49 / @emSize), rem);
+@50px : unit( (50 / @emSize), rem);
+@51px : unit( (51 / @emSize), rem);
+@52px : unit( (52 / @emSize), rem);
+@53px : unit( (53 / @emSize), rem);
+@54px : unit( (54 / @emSize), rem);
+@55px : unit( (55 / @emSize), rem);
+@56px : unit( (56 / @emSize), rem);
+@57px : unit( (57 / @emSize), rem);
+@58px : unit( (58 / @emSize), rem);
+@59px : unit( (59 / @emSize), rem);
+@60px : unit( (60 / @emSize), rem);
+@61px : unit( (61 / @emSize), rem);
+@62px : unit( (62 / @emSize), rem);
+@63px : unit( (63 / @emSize), rem);
+@64px : unit( (64 / @emSize), rem);
+
+@relative1px : unit( (1 / @emSize), em);
+@relative2px : unit( (2 / @emSize), em);
+@relative3px : unit( (3 / @emSize), em);
+@relative4px : unit( (4 / @emSize), em);
+@relative5px : unit( (5 / @emSize), em);
+@relative6px : unit( (6 / @emSize), em);
+@relative7px : unit( (7 / @emSize), em);
+@relative8px : unit( (8 / @emSize), em);
+@relative9px : unit( (9 / @emSize), em);
+@relative10px : unit( (10 / @emSize), em);
+@relative11px : unit( (11 / @emSize), em);
+@relative12px : unit( (12 / @emSize), em);
+@relative13px : unit( (13 / @emSize), em);
+@relative14px : unit( (14 / @emSize), em);
+@relative15px : unit( (15 / @emSize), em);
+@relative16px : unit( (16 / @emSize), em);
+@relative17px : unit( (17 / @emSize), em);
+@relative18px : unit( (18 / @emSize), em);
+@relative19px : unit( (19 / @emSize), em);
+@relative20px : unit( (20 / @emSize), em);
+@relative21px : unit( (21 / @emSize), em);
+@relative22px : unit( (22 / @emSize), em);
+@relative23px : unit( (23 / @emSize), em);
+@relative24px : unit( (24 / @emSize), em);
+@relative25px : unit( (25 / @emSize), em);
+@relative26px : unit( (26 / @emSize), em);
+@relative27px : unit( (27 / @emSize), em);
+@relative28px : unit( (28 / @emSize), em);
+@relative29px : unit( (29 / @emSize), em);
+@relative30px : unit( (30 / @emSize), em);
+@relative31px : unit( (31 / @emSize), em);
+@relative32px : unit( (32 / @emSize), em);
+@relative33px : unit( (33 / @emSize), em);
+@relative34px : unit( (34 / @emSize), em);
+@relative35px : unit( (35 / @emSize), em);
+@relative36px : unit( (36 / @emSize), em);
+@relative37px : unit( (37 / @emSize), em);
+@relative38px : unit( (38 / @emSize), em);
+@relative39px : unit( (39 / @emSize), em);
+@relative40px : unit( (40 / @emSize), em);
+@relative41px : unit( (41 / @emSize), em);
+@relative42px : unit( (42 / @emSize), em);
+@relative43px : unit( (43 / @emSize), em);
+@relative44px : unit( (44 / @emSize), em);
+@relative45px : unit( (45 / @emSize), em);
+@relative46px : unit( (46 / @emSize), em);
+@relative47px : unit( (47 / @emSize), em);
+@relative48px : unit( (48 / @emSize), em);
+@relative49px : unit( (49 / @emSize), em);
+@relative50px : unit( (50 / @emSize), em);
+@relative51px : unit( (51 / @emSize), em);
+@relative52px : unit( (52 / @emSize), em);
+@relative53px : unit( (53 / @emSize), em);
+@relative54px : unit( (54 / @emSize), em);
+@relative55px : unit( (55 / @emSize), em);
+@relative56px : unit( (56 / @emSize), em);
+@relative57px : unit( (57 / @emSize), em);
+@relative58px : unit( (58 / @emSize), em);
+@relative59px : unit( (59 / @emSize), em);
+@relative60px : unit( (60 / @emSize), em);
+@relative61px : unit( (61 / @emSize), em);
+@relative62px : unit( (62 / @emSize), em);
+@relative63px : unit( (63 / @emSize), em);
+@relative64px : unit( (64 / @emSize), em);
+
+/* Columns */
+@oneWide : (1 / @columnCount * 100%);
+@twoWide : (2 / @columnCount * 100%);
+@threeWide : (3 / @columnCount * 100%);
+@fourWide : (4 / @columnCount * 100%);
+@fiveWide : (5 / @columnCount * 100%);
+@sixWide : (6 / @columnCount * 100%);
+@sevenWide : (7 / @columnCount * 100%);
+@eightWide : (8 / @columnCount * 100%);
+@nineWide : (9 / @columnCount * 100%);
+@tenWide : (10 / @columnCount * 100%);
+@elevenWide : (11 / @columnCount * 100%);
+@twelveWide : (12 / @columnCount * 100%);
+@thirteenWide : (13 / @columnCount * 100%);
+@fourteenWide : (14 / @columnCount * 100%);
+@fifteenWide : (15 / @columnCount * 100%);
+@sixteenWide : (16 / @columnCount * 100%);
+
+@oneColumn : (1 / 1 * 100%);
+@twoColumn : (1 / 2 * 100%);
+@threeColumn : (1 / 3 * 100%);
+@fourColumn : (1 / 4 * 100%);
+@fiveColumn : (1 / 5 * 100%);
+@sixColumn : (1 / 6 * 100%);
+@sevenColumn : (1 / 7 * 100%);
+@eightColumn : (1 / 8 * 100%);
+@nineColumn : (1 / 9 * 100%);
+@tenColumn : (1 / 10 * 100%);
+@elevenColumn : (1 / 11 * 100%);
+@twelveColumn : (1 / 12 * 100%);
+@thirteenColumn : (1 / 13 * 100%);
+@fourteenColumn : (1 / 14 * 100%);
+@fifteenColumn : (1 / 15 * 100%);
+@sixteenColumn : (1 / 16 * 100%);
+
+
+/*******************************
+ States
+*******************************/
+
+/*-------------------
+ Disabled
+--------------------*/
+
+@disabledOpacity: 0.45;
+@disabledTextColor: rgba(40, 40, 40, 0.3);
+@invertedDisabledTextColor: rgba(225, 225, 225, 0.3);
+
+/*-------------------
+ Hover
+--------------------*/
+
+/*--- Shadows ---*/
+@floatingShadowHover:
+ 0 2px 4px 0 rgba(34, 36, 38, 0.15),
+ 0 2px 10px 0 rgba(34, 36, 38, 0.25)
+;
+
+/*--- Colors ---*/
+@primaryColorHover : saturate(darken(@primaryColor, 5), 10, relative);
+@secondaryColorHover : saturate(lighten(@secondaryColor, 5), 10, relative);
+@lightPrimaryColorHover : saturate(darken(@lightPrimaryColor, 10), 10, relative);
+@lightSecondaryColorHover : saturate(lighten(@lightSecondaryColor, 10), 10, relative);
+
+@redHover : saturate(darken(@red, 5), 10, relative);
+@orangeHover : saturate(darken(@orange, 5), 10, relative);
+@yellowHover : saturate(darken(@yellow, 5), 10, relative);
+@oliveHover : saturate(darken(@olive, 5), 10, relative);
+@greenHover : saturate(darken(@green, 5), 10, relative);
+@tealHover : saturate(darken(@teal, 5), 10, relative);
+@blueHover : saturate(darken(@blue, 5), 10, relative);
+@violetHover : saturate(darken(@violet, 5), 10, relative);
+@purpleHover : saturate(darken(@purple, 5), 10, relative);
+@pinkHover : saturate(darken(@pink, 5), 10, relative);
+@brownHover : saturate(darken(@brown, 5), 10, relative);
+
+@lightRedHover : saturate(darken(@lightRed, 10), 10, relative);
+@lightOrangeHover : saturate(darken(@lightOrange, 10), 10, relative);
+@lightYellowHover : saturate(darken(@lightYellow, 10), 10, relative);
+@lightOliveHover : saturate(darken(@lightOlive, 10), 10, relative);
+@lightGreenHover : saturate(darken(@lightGreen, 10), 10, relative);
+@lightTealHover : saturate(darken(@lightTeal, 10), 10, relative);
+@lightBlueHover : saturate(darken(@lightBlue, 10), 10, relative);
+@lightVioletHover : saturate(darken(@lightViolet, 10), 10, relative);
+@lightPurpleHover : saturate(darken(@lightPurple, 10), 10, relative);
+@lightPinkHover : saturate(darken(@lightPink, 10), 10, relative);
+@lightBrownHover : saturate(darken(@lightBrown, 10), 10, relative);
+@lightGreyHover : saturate(darken(@lightGrey, 10), 10, relative);
+@lightBlackHover : saturate(darken(@fullBlack, 10), 10, relative);
+
+/*--- Emotive ---*/
+@positiveColorHover : saturate(darken(@positiveColor, 5), 10, relative);
+@negativeColorHover : saturate(darken(@negativeColor, 5), 10, relative);
+
+/*--- Brand ---*/
+@facebookHoverColor : saturate(darken(@facebookColor, 5), 10, relative);
+@twitterHoverColor : saturate(darken(@twitterColor, 5), 10, relative);
+@googlePlusHoverColor : saturate(darken(@googlePlusColor, 5), 10, relative);
+@linkedInHoverColor : saturate(darken(@linkedInColor, 5), 10, relative);
+@youtubeHoverColor : saturate(darken(@youtubeColor, 5), 10, relative);
+@instagramHoverColor : saturate(darken(@instagramColor, 5), 10, relative);
+@pinterestHoverColor : saturate(darken(@pinterestColor, 5), 10, relative);
+@vkHoverColor : saturate(darken(@vkColor, 5), 10, relative);
+@telegramHoverColor : saturate(darken(@telegramColor, 5), 10, relative);
+@whatsAppHoverColor : saturate(darken(@whatsAppColor, 5), 10, relative);
+
+/*--- Dark Tones ---*/
+@fullBlackHover : lighten(@fullBlack, 5);
+@blackHover : lighten(@black, 5);
+@greyHover : lighten(@grey, 5);
+
+/*--- Light Tones ---*/
+@whiteHover : darken(@white, 5);
+@offWhiteHover : darken(@offWhite, 5);
+@darkWhiteHover : darken(@darkWhite, 5);
+
+/*-------------------
+ Focus
+--------------------*/
+
+/*--- Colors ---*/
+@primaryColorFocus : saturate(darken(@primaryColor, 8), 20, relative);
+@secondaryColorFocus : saturate(lighten(@secondaryColor, 8), 20, relative);
+@lightPrimaryColorFocus : saturate(darken(@lightPrimaryColor, 8), 20, relative);
+@lightSecondaryColorFocus : saturate(lighten(@lightSecondaryColor, 8), 20, relative);
+
+@redFocus : saturate(darken(@red, 8), 20, relative);
+@orangeFocus : saturate(darken(@orange, 8), 20, relative);
+@yellowFocus : saturate(darken(@yellow, 8), 20, relative);
+@oliveFocus : saturate(darken(@olive, 8), 20, relative);
+@greenFocus : saturate(darken(@green, 8), 20, relative);
+@tealFocus : saturate(darken(@teal, 8), 20, relative);
+@blueFocus : saturate(darken(@blue, 8), 20, relative);
+@violetFocus : saturate(darken(@violet, 8), 20, relative);
+@purpleFocus : saturate(darken(@purple, 8), 20, relative);
+@pinkFocus : saturate(darken(@pink, 8), 20, relative);
+@brownFocus : saturate(darken(@brown, 8), 20, relative);
+
+@lightRedFocus : saturate(darken(@lightRed, 8), 20, relative);
+@lightOrangeFocus : saturate(darken(@lightOrange, 8), 20, relative);
+@lightYellowFocus : saturate(darken(@lightYellow, 8), 20, relative);
+@lightOliveFocus : saturate(darken(@lightOlive, 8), 20, relative);
+@lightGreenFocus : saturate(darken(@lightGreen, 8), 20, relative);
+@lightTealFocus : saturate(darken(@lightTeal, 8), 20, relative);
+@lightBlueFocus : saturate(darken(@lightBlue, 8), 20, relative);
+@lightVioletFocus : saturate(darken(@lightViolet, 8), 20, relative);
+@lightPurpleFocus : saturate(darken(@lightPurple, 8), 20, relative);
+@lightPinkFocus : saturate(darken(@lightPink, 8), 20, relative);
+@lightBrownFocus : saturate(darken(@lightBrown, 8), 20, relative);
+@lightGreyFocus : saturate(darken(@lightGrey, 8), 20, relative);
+@lightBlackFocus : saturate(darken(@fullBlack, 8), 20, relative);
+
+/*--- Emotive ---*/
+@positiveColorFocus : saturate(darken(@positiveColor, 8), 20, relative);
+@negativeColorFocus : saturate(darken(@negativeColor, 8), 20, relative);
+
+/*--- Brand ---*/
+@facebookFocusColor : saturate(darken(@facebookColor, 8), 20, relative);
+@twitterFocusColor : saturate(darken(@twitterColor, 8), 20, relative);
+@googlePlusFocusColor : saturate(darken(@googlePlusColor, 8), 20, relative);
+@linkedInFocusColor : saturate(darken(@linkedInColor, 8), 20, relative);
+@youtubeFocusColor : saturate(darken(@youtubeColor, 8), 20, relative);
+@instagramFocusColor : saturate(darken(@instagramColor, 8), 20, relative);
+@pinterestFocusColor : saturate(darken(@pinterestColor, 8), 20, relative);
+@vkFocusColor : saturate(darken(@vkColor, 8), 20, relative);
+@telegramFocusColor : saturate(darken(@telegramColor, 8), 20, relative);
+@whatsAppFocusColor : saturate(darken(@whatsAppColor, 8), 20, relative);
+
+/*--- Dark Tones ---*/
+@fullBlackFocus : lighten(@fullBlack, 8);
+@blackFocus : lighten(@black, 8);
+@greyFocus : lighten(@grey, 8);
+
+/*--- Light Tones ---*/
+@whiteFocus : darken(@white, 8);
+@offWhiteFocus : darken(@offWhite, 8);
+@darkWhiteFocus : darken(@darkWhite, 8);
+
+
+/*-------------------
+ Down (:active)
+--------------------*/
+
+/*--- Colors ---*/
+@primaryColorDown : darken(@primaryColor, 10);
+@secondaryColorDown : lighten(@secondaryColor, 10);
+@lightPrimaryColorDown : darken(@lightPrimaryColor, 10);
+@lightSecondaryColorDown : lighten(@lightSecondaryColor, 10);
+
+@redDown : darken(@red, 10);
+@orangeDown : darken(@orange, 10);
+@yellowDown : darken(@yellow, 10);
+@oliveDown : darken(@olive, 10);
+@greenDown : darken(@green, 10);
+@tealDown : darken(@teal, 10);
+@blueDown : darken(@blue, 10);
+@violetDown : darken(@violet, 10);
+@purpleDown : darken(@purple, 10);
+@pinkDown : darken(@pink, 10);
+@brownDown : darken(@brown, 10);
+
+@lightRedDown : darken(@lightRed, 10);
+@lightOrangeDown : darken(@lightOrange, 10);
+@lightYellowDown : darken(@lightYellow, 10);
+@lightOliveDown : darken(@lightOlive, 10);
+@lightGreenDown : darken(@lightGreen, 10);
+@lightTealDown : darken(@lightTeal, 10);
+@lightBlueDown : darken(@lightBlue, 10);
+@lightVioletDown : darken(@lightViolet, 10);
+@lightPurpleDown : darken(@lightPurple, 10);
+@lightPinkDown : darken(@lightPink, 10);
+@lightBrownDown : darken(@lightBrown, 10);
+@lightGreyDown : darken(@lightGrey, 10);
+@lightBlackDown : darken(@fullBlack, 10);
+
+/*--- Emotive ---*/
+@positiveColorDown : darken(@positiveColor, 10);
+@negativeColorDown : darken(@negativeColor, 10);
+
+/*--- Brand ---*/
+@facebookDownColor : darken(@facebookColor, 10);
+@twitterDownColor : darken(@twitterColor, 10);
+@googlePlusDownColor : darken(@googlePlusColor, 10);
+@linkedInDownColor : darken(@linkedInColor, 10);
+@youtubeDownColor : darken(@youtubeColor, 10);
+@instagramDownColor : darken(@instagramColor, 10);
+@pinterestDownColor : darken(@pinterestColor, 10);
+@vkDownColor : darken(@vkColor, 10);
+@telegramDownColor : darken(@telegramColor, 10);
+@whatsAppDownColor : darken(@whatsAppColor, 10);
+
+/*--- Dark Tones ---*/
+@fullBlackDown : lighten(@fullBlack, 10);
+@blackDown : lighten(@black, 10);
+@greyDown : lighten(@grey, 10);
+
+/*--- Light Tones ---*/
+@whiteDown : darken(@white, 10);
+@offWhiteDown : darken(@offWhite, 10);
+@darkWhiteDown : darken(@darkWhite, 10);
+
+
+/*-------------------
+ Active
+--------------------*/
+
+/*--- Colors ---*/
+@primaryColorActive : saturate(darken(@primaryColor, 5), 15, relative);
+@secondaryColorActive : saturate(lighten(@secondaryColor, 5), 15, relative);
+@lightPrimaryColorActive : saturate(darken(@lightPrimaryColor, 5), 15, relative);
+@lightSecondaryColorActive : saturate(lighten(@lightSecondaryColor, 5), 15, relative);
+
+@redActive : saturate(darken(@red, 5), 15, relative);
+@orangeActive : saturate(darken(@orange, 5), 15, relative);
+@yellowActive : saturate(darken(@yellow, 5), 15, relative);
+@oliveActive : saturate(darken(@olive, 5), 15, relative);
+@greenActive : saturate(darken(@green, 5), 15, relative);
+@tealActive : saturate(darken(@teal, 5), 15, relative);
+@blueActive : saturate(darken(@blue, 5), 15, relative);
+@violetActive : saturate(darken(@violet, 5), 15, relative);
+@purpleActive : saturate(darken(@purple, 5), 15, relative);
+@pinkActive : saturate(darken(@pink, 5), 15, relative);
+@brownActive : saturate(darken(@brown, 5), 15, relative);
+
+@lightRedActive : saturate(darken(@lightRed, 5), 15, relative);
+@lightOrangeActive : saturate(darken(@lightOrange, 5), 15, relative);
+@lightYellowActive : saturate(darken(@lightYellow, 5), 15, relative);
+@lightOliveActive : saturate(darken(@lightOlive, 5), 15, relative);
+@lightGreenActive : saturate(darken(@lightGreen, 5), 15, relative);
+@lightTealActive : saturate(darken(@lightTeal, 5), 15, relative);
+@lightBlueActive : saturate(darken(@lightBlue, 5), 15, relative);
+@lightVioletActive : saturate(darken(@lightViolet, 5), 15, relative);
+@lightPurpleActive : saturate(darken(@lightPurple, 5), 15, relative);
+@lightPinkActive : saturate(darken(@lightPink, 5), 15, relative);
+@lightBrownActive : saturate(darken(@lightBrown, 5), 15, relative);
+@lightGreyActive : saturate(darken(@lightGrey, 5), 15, relative);
+@lightBlackActive : saturate(darken(@fullBlack, 5), 15, relative);
+
+/*--- Emotive ---*/
+@positiveColorActive : saturate(darken(@positiveColor, 5), 15, relative);
+@negativeColorActive : saturate(darken(@negativeColor, 5), 15, relative);
+
+/*--- Brand ---*/
+@facebookActiveColor : saturate(darken(@facebookColor, 5), 15, relative);
+@twitterActiveColor : saturate(darken(@twitterColor, 5), 15, relative);
+@googlePlusActiveColor : saturate(darken(@googlePlusColor, 5), 15, relative);
+@linkedInActiveColor : saturate(darken(@linkedInColor, 5), 15, relative);
+@youtubeActiveColor : saturate(darken(@youtubeColor, 5), 15, relative);
+@instagramActiveColor : saturate(darken(@instagramColor, 5), 15, relative);
+@pinterestActiveColor : saturate(darken(@pinterestColor, 5), 15, relative);
+@vkActiveColor : saturate(darken(@vkColor, 5), 15, relative);
+@telegramActiveColor : saturate(darken(@telegramColor, 5), 15, relative);
+@whatsAppActiveColor : saturate(darken(@whatsAppColor, 5), 15, relative);
+
+/*--- Dark Tones ---*/
+@fullBlackActive : darken(@fullBlack, 5);
+@blackActive : darken(@black, 5);
+@greyActive : darken(@grey, 5);
+
+/*--- Light Tones ---*/
+@whiteActive : darken(@white, 5);
+@offWhiteActive : darken(@offWhite, 5);
+@darkWhiteActive : darken(@darkWhite, 5);
+
+/*--- Tertiary ---*/
+@primaryTertiaryColor : saturate(@primaryColor, 20%);
+@primaryTertiaryColorHover : desaturate(@primaryColorHover, 20%);
+@primaryTertiaryColorFocus : desaturate(@primaryColorFocus, 20%);
+@primaryTertiaryColorActive : saturate(@primaryColorActive, 20%);
+@secondaryTertiaryColor : saturate(@secondaryColor, 20%);
+@secondaryTertiaryColorHover : desaturate(@secondaryColorHover, 20%);
+@secondaryTertiaryColorFocus : desaturate(@secondaryColorFocus, 20%);
+@secondaryTertiaryColorActive: saturate(@secondaryColorActive, 20%);
+@redTertiaryColor : saturate(@red, 20%);
+@redTertiaryColorHover : desaturate(@redHover, 20%);
+@redTertiaryColorFocus : desaturate(@redFocus, 20%);
+@redTertiaryColorActive : saturate(@redActive, 20%);
+@orangeTertiaryColor : saturate(@orange, 20%);
+@orangeTertiaryColorHover : desaturate(@orangeHover, 20%);
+@orangeTertiaryColorFocus : desaturate(@orangeFocus, 20%);
+@orangeTertiaryColorActive : saturate(@orangeActive, 20%);
+@yellowTertiaryColor : saturate(@yellow, 20%);
+@yellowTertiaryColorHover : desaturate(@yellowHover, 20%);
+@yellowTertiaryColorFocus : desaturate(@yellowFocus, 20%);
+@yellowTertiaryColorActive : saturate(@yellowActive, 20%);
+@oliveTertiaryColor : saturate(@olive, 20%);
+@oliveTertiaryColorHover : desaturate(@oliveHover, 20%);
+@oliveTertiaryColorFocus : desaturate(@oliveFocus, 20%);
+@oliveTertiaryColorActive : saturate(@oliveActive, 20%);
+@greenTertiaryColor : saturate(@green, 20%);
+@greenTertiaryColorHover : desaturate(@greenHover, 20%);
+@greenTertiaryColorFocus : desaturate(@greenFocus, 20%);
+@greenTertiaryColorActive : saturate(@greenActive, 20%);
+@tealTertiaryColor : saturate(@teal, 20%);
+@tealTertiaryColorHover : desaturate(@tealHover, 20%);
+@tealTertiaryColorFocus : desaturate(@tealFocus, 20%);
+@tealTertiaryColorActive : saturate(@tealActive, 20%);
+@blueTertiaryColor : saturate(@blue, 20%);
+@blueTertiaryColorHover : desaturate(@blueHover, 20%);
+@blueTertiaryColorFocus : desaturate(@blueFocus, 20%);
+@blueTertiaryColorActive : saturate(@blueActive, 20%);
+@violetTertiaryColor : saturate(@violet, 20%);
+@violetTertiaryColorHover : desaturate(@violetHover, 20%);
+@violetTertiaryColorFocus : desaturate(@violetFocus, 20%);
+@violetTertiaryColorActive : saturate(@violetActive, 20%);
+@purpleTertiaryColor : saturate(@purple, 20%);
+@purpleTertiaryColorHover : desaturate(@purpleHover, 20%);
+@purpleTertiaryColorFocus : desaturate(@purpleFocus, 20%);
+@purpleTertiaryColorActive : saturate(@purpleActive, 20%);
+@pinkTertiaryColor : saturate(@pink, 20%);
+@pinkTertiaryColorHover : desaturate(@pinkHover, 20%);
+@pinkTertiaryColorFocus : desaturate(@pinkFocus, 20%);
+@pinkTertiaryColorActive : saturate(@pinkActive, 20%);
+@brownTertiaryColor : saturate(@brown, 20%);
+@brownTertiaryColorHover : desaturate(@brownHover, 20%);
+@brownTertiaryColorFocus : desaturate(@brownFocus, 20%);
+@brownTertiaryColorActive : saturate(@brownActive, 20%);
+@greyTertiaryColor : saturate(@grey, 20%);
+@greyTertiaryColorHover : desaturate(@greyHover, 20%);
+@greyTertiaryColorFocus : desaturate(@greyFocus, 20%);
+@greyTertiaryColorActive : saturate(@greyActive, 20%);
+@blackTertiaryColor : lighten(@black, 20%);
+@blackTertiaryColorHover : lighten(@blackHover, 40%);
+@blackTertiaryColorFocus : lighten(@blackFocus, 40%);
+@blackTertiaryColorActive : lighten(@blackActive, 20%);
+
+/*--- Bright ---*/
+@primaryBright : screen(@lightPrimaryColor,@blendingBaseColor);
+@secondaryBright : screen(@lightSecondaryColor,@blendingBaseColor);
+@redBright : screen(@lightRed,@blendingBaseColor);
+@orangeBright : screen(@lightOrange,@blendingBaseColor);
+@yellowBright : screen(@lightYellow,@blendingBaseColor);
+@oliveBright : screen(@lightOlive,@blendingBaseColor);
+@greenBright : screen(@lightGreen,@blendingBaseColor);
+@tealBright : screen(@lightTeal,@blendingBaseColor);
+@blueBright : screen(@lightBlue,@blendingBaseColor);
+@violetBright : screen(@lightViolet,@blendingBaseColor);
+@purpleBright : screen(@lightPurple,@blendingBaseColor);
+@pinkBright : screen(@lightPink,@blendingBaseColor);
+@brownBright : screen(@lightBrown,@blendingBaseColor);
+@greyBright : @lightGrey;
+@blackBright : @lightBlack;
+
+@primaryBrightHover : screen(@lightPrimaryColorHover,@blendingBaseColor);
+@secondaryBrightHover : screen(@lightSecondaryColorHover,@blendingBaseColor);
+@redBrightHover : screen(@lightRedHover,@blendingBaseColor);
+@orangeBrightHover : screen(@lightOrangeHover,@blendingBaseColor);
+@yellowBrightHover : screen(@lightYellowHover,@blendingBaseColor);
+@oliveBrightHover : screen(@lightOliveHover,@blendingBaseColor);
+@greenBrightHover : screen(@lightGreenHover,@blendingBaseColor);
+@tealBrightHover : screen(@lightTealHover,@blendingBaseColor);
+@blueBrightHover : screen(@lightBlueHover,@blendingBaseColor);
+@violetBrightHover : screen(@lightVioletHover,@blendingBaseColor);
+@purpleBrightHover : screen(@lightPurpleHover,@blendingBaseColor);
+@pinkBrightHover : screen(@lightPinkHover,@blendingBaseColor);
+@brownBrightHover : screen(@lightBrownHover,@blendingBaseColor);
+@greyBrightHover : @lightGreyHover;
+@blackBrightHover : @lightBlackHover;
+
+/*******************************
+ States shared in Form-related components
+ *******************************/
+/* Form state*/
+@formErrorColor: @negativeTextColor;
+@formErrorBorder: @negativeBorderColor;
+@formErrorBackground: @negativeBackgroundColor;
+@transparentFormErrorColor: @formErrorColor;
+@transparentFormErrorBackground: @formErrorBackground;
+
+@formInfoColor: @infoTextColor;
+@formInfoBorder: @infoBorderColor;
+@formInfoBackground: @infoBackgroundColor;
+@transparentFormInfoColor: @formInfoColor;
+@transparentFormInfoBackground: @formInfoBackground;
+
+@formSuccessColor: @positiveTextColor;
+@formSuccessBorder: @positiveBorderColor;
+@formSuccessBackground: @positiveBackgroundColor;
+@transparentFormSuccessColor: @formSuccessColor;
+@transparentFormSuccessBackground: @formSuccessBackground;
+
+@formWarningColor: @warningTextColor;
+@formWarningBorder: @warningBorderColor;
+@formWarningBackground: @warningBackgroundColor;
+@transparentFormWarningColor: @formWarningColor;
+@transparentFormWarningBackground: @formWarningBackground;
+
+/* Input state */
+@inputErrorBorderRadius: '';
+@inputErrorBoxShadow: none;
+
+@inputInfoBorderRadius: '';
+@inputInfoBoxShadow: none;
+
+@inputSuccessBorderRadius: '';
+@inputSuccessBoxShadow: none;
+
+@inputWarningBorderRadius: '';
+@inputWarningBoxShadow: none;
+
+/* AutoFill */
+@inputAutoFillBackground: #FFFFF0;
+@inputAutoFillBorder: #E5DFA1;
+@inputAutoFillFocusBackground: @inputAutoFillBackground;
+@inputAutoFillFocusBorder: #D5C315;
+
+@inputAutoFillErrorBackground: #FFFAF0;
+@inputAutoFillErrorBorder: #E0B4B4;
+
+@inputAutoFillInfoBackground: #F0FAFF;
+@inputAutoFillInfoBorder: #b3e0e0;
+
+@inputAutoFillSuccessBackground: #F0FFF0;
+@inputAutoFillSuccessBorder: #bee0b3;
+
+@inputAutoFillWarningBackground: #FFFFe0;
+@inputAutoFillWarningBorder: #e0e0b3;
+
+/* Dropdown state */
+@dropdownErrorHoverBackground: #FBE7E7;
+@dropdownErrorSelectedBackground: @dropdownErrorHoverBackground;
+@dropdownErrorActiveBackground: #FDCFCF;
+@dropdownErrorLabelBackground: #EACBCB;
+@dropdownErrorLabelColor: @errorTextColor;
+
+@dropdownInfoHoverBackground: #e9f2fb;
+@dropdownInfoSelectedBackground: @dropdownInfoHoverBackground;
+@dropdownInfoActiveBackground: #cef1fd;
+@dropdownInfoLabelBackground: #cce3ea;
+@dropdownInfoLabelColor: @infoTextColor;
+
+@dropdownSuccessHoverBackground: #e9fbe9;
+@dropdownSuccessSelectedBackground: @dropdownSuccessHoverBackground;
+@dropdownSuccessActiveBackground: #dafdce;
+@dropdownSuccessLabelBackground: #cceacc;
+@dropdownSuccessLabelColor: @successTextColor;
+
+@dropdownWarningHoverBackground: #fbfbe9;
+@dropdownWarningSelectedBackground: @dropdownWarningHoverBackground;
+@dropdownWarningActiveBackground: #fdfdce;
+@dropdownWarningLabelBackground: #eaeacc;
+@dropdownWarningLabelColor: @warningTextColor;
+
+/* Focused state */
+@inputErrorFocusBackground: @negativeBackgroundColor;
+@inputErrorFocusColor: @negativeTextColor;
+@inputErrorFocusBorder: @negativeBorderColor;
+@inputErrorFocusBoxShadow: none;
+
+@inputInfoFocusBackground: @infoBackgroundColor;
+@inputInfoFocusColor: @infoTextColor;
+@inputInfoFocusBorder: @infoBorderColor;
+@inputInfoFocusBoxShadow: none;
+
+@inputSuccessFocusBackground: @positiveBackgroundColor;
+@inputSuccessFocusColor: @positiveTextColor;
+@inputSuccessFocusBorder: @positiveBorderColor;
+@inputSuccessFocusBoxShadow: none;
+
+@inputWarningFocusBackground: @warningBackgroundColor;
+@inputWarningFocusColor: @warningTextColor;
+@inputWarningFocusBorder: @warningBorderColor;
+@inputWarningFocusBoxShadow: none;
+
+/* Placeholder state */
+@inputErrorPlaceholderColor: lighten(@formErrorColor, 40);
+@inputErrorPlaceholderFocusColor: lighten(@formErrorColor, 30);
+
+@inputInfoPlaceholderColor: lighten(@formInfoColor, 40);
+@inputInfoPlaceholderFocusColor: lighten(@formInfoColor, 30);
+
+@inputSuccessPlaceholderColor: lighten(@formSuccessColor, 40);
+@inputSuccessPlaceholderFocusColor: lighten(@formSuccessColor, 30);
+
+@inputWarningPlaceholderColor: lighten(@formWarningColor, 40);
+@inputWarningPlaceholderFocusColor: lighten(@formWarningColor, 30);
+
+
+
diff --git a/assets/semantic/src/themes/default/globals/variation.variables b/assets/semantic/src/themes/default/globals/variation.variables
new file mode 100644
index 0000000..0462ea6
--- /dev/null
+++ b/assets/semantic/src/themes/default/globals/variation.variables
@@ -0,0 +1,560 @@
+/***********************************************************
+ Central element variation compilation enablers
+***********************************************************/
+
+/* General */
+@variationAllSizes: mini, tiny, small, large, big, huge, massive;
+
+/*******************************
+ Elements
+*******************************/
+
+/* Button */
+@variationButtonDisabled: true;
+@variationButtonAnimated: true;
+@variationButtonInverted: true;
+@variationButtonSocial: true;
+@variationButtonFloated: true;
+@variationButtonCompact: true;
+@variationButtonBasic: true;
+@variationButtonTertiary: true;
+@variationButtonLabeled: true;
+@variationButtonLabeledIcon: true;
+@variationButtonToggle: true;
+@variationButtonOr: true;
+@variationButtonAttached: true;
+@variationButtonFluid: true;
+@variationButtonCircular: true;
+@variationButtonGroups: true;
+@variationButtonSizes: @variationAllSizes;
+
+/* Container */
+@variationContainerGrid: true;
+@variationContainerRelaxed: true;
+@variationContainerText: true;
+@variationContainerFluid: true;
+@variationContainerAligned: true;
+@variationContainerJustified: true;
+
+/* Divider */
+@variationDividerInverted: true;
+@variationDividerHorizontal: true;
+@variationDividerVertical: true;
+@variationDividerIcon: true;
+@variationDividerHidden: true;
+@variationDividerFitted: true;
+@variationDividerClearing: true;
+@variationDividerSection: true;
+@variationDividerSizes: @variationAllSizes;
+
+/* Header */
+@variationHeaderDisabled: true;
+@variationHeaderInverted: true;
+@variationHeaderSub: true;
+@variationHeaderIcon: true;
+@variationHeaderAligned: true;
+@variationHeaderJustified: true;
+@variationHeaderFloated: true;
+@variationHeaderFitted: true;
+@variationHeaderDividing: true;
+@variationHeaderBlock: true;
+@variationHeaderAttached: true;
+@variationHeaderTags: h1, h2, h3, h4, h5, h6;
+@variationHeaderSizes: @variationAllSizes;
+
+/* Icon */
+@variationIconDisabled: true;
+@variationIconInverted: true;
+@variationIconLoading: true;
+@variationIconFitted: true;
+@variationIconLink: true;
+@variationIconCircular: true;
+@variationIconBordered: true;
+@variationIconRotated: true;
+@variationIconFlipped: true;
+@variationIconCorner: true;
+@variationIconGroups: true;
+@variationIconSizes: @variationAllSizes;
+
+/* Image */
+@variationImageDisabled: true;
+@variationImageCircular: true;
+@variationImageBordered: true;
+@variationImageRounded: true;
+@variationImageInline: true;
+@variationImageAligned: true;
+@variationImageFluid: true;
+@variationImageAvatar: true;
+@variationImageFloated: true;
+@variationImageSpaced: true;
+@variationImageCentered: true;
+@variationImageGroups: true;
+@variationImageSizes: @variationAllSizes;
+
+/* Input */
+@variationInputDisabled: true;
+@variationInputInverted: true;
+@variationInputStates: true;
+@variationInputTransparent: true;
+@variationInputCorner: true;
+@variationInputLoading: true;
+@variationInputIcon: true;
+@variationInputLabeled: true;
+@variationInputAction: true;
+@variationInputFluid: true;
+@variationInputSizes: @variationAllSizes;
+
+/* Label */
+@variationLabelDisabled: true;
+@variationLabelInverted: true;
+@variationLabelImage: true;
+@variationLabelTag: true;
+@variationLabelCorner: true;
+@variationLabelRibbon: true;
+@variationLabelCircular: true;
+@variationLabelPointing: true;
+@variationLabelFloating: true;
+@variationLabelBasic: true;
+@variationLabelAttached: true;
+@variationLabelFluid: true;
+@variationLabelSizes: @variationAllSizes;
+
+/* List */
+@variationListInverted: true;
+@variationListDisabled: true;
+@variationListBulleted: true;
+@variationListOrdered: true;
+@variationListIcon: true;
+@variationListImage: true;
+@variationListFloated: true;
+@variationListLink: true;
+@variationListAligned: true;
+@variationListFitted: true;
+@variationListAnimated: true;
+@variationListHorizontal: true;
+@variationListSuffixed: true;
+@variationListSelection: true;
+@variationListDivided: true;
+@variationListCelled: true;
+@variationListRelaxed: true;
+@variationListSizes: @variationAllSizes;
+
+/* Loader */
+@variationLoaderSpeeds: true;
+@variationLoaderIndeterminate: true;
+@variationLoaderText: true;
+@variationLoaderInline: true;
+@variationLoaderElastic: true;
+@variationLoaderSizes: @variationAllSizes;
+
+/* Placeholder */
+@variationPlaceholderInverted: true;
+@variationPlaceholderImage: true;
+@variationPlaceholderLine: true;
+@variationPlaceholderHeader: true;
+@variationPlaceholderFluid: true;
+@variationPlaceholderLengths: true;
+
+/* Rail */
+@variationRailInternal: true;
+@variationRailDividing: true;
+@variationRailDistance: true;
+@variationRailAttached: true;
+@variationRailSizes: @variationAllSizes;
+
+/* Reveal */
+@variationRevealDisabled: true;
+@variationRevealSlide: true;
+@variationRevealFade: true;
+@variationRevealMove: true;
+@variationRevealRotate: true;
+@variationRevealSizes: @variationAllSizes;
+
+/* Segment */
+@variationSegmentInverted: true;
+@variationSegmentDisabled: true;
+@variationSegmentVertical: true;
+@variationSegmentPlaceholder: true;
+@variationSegmentHorizontal: true;
+@variationSegmentPiled: true;
+@variationSegmentStacked: true;
+@variationSegmentPadded: true;
+@variationSegmentCircular: true;
+@variationSegmentCompact: true;
+@variationSegmentRaised: true;
+@variationSegmentGroups: true;
+@variationSegmentBasic: true;
+@variationSegmentClearing: true;
+@variationSegmentLoading: true;
+@variationSegmentFloating: true;
+@variationSegmentAligned: true;
+@variationSegmentSecondary: true;
+@variationSegmentTertiary: true;
+@variationSegmentAttached: true;
+@variationSegmentFitted: true;
+@variationSegmentSizes: @variationAllSizes;
+
+/* Step */
+@variationStepInverted: true;
+@variationStepDisabled: true;
+@variationStepStackable: true;
+@variationStepVertical: true;
+@variationStepOrdered: true;
+@variationStepFluid: true;
+@variationStepAttached: true;
+@variationStepSizes: @variationAllSizes;
+
+/* Text */
+@variationTextInverted: true;
+@variationTextDisabled: true;
+@variationTextStates: true;
+@variationTextSizes: @variationAllSizes;
+
+
+/*******************************
+ Collections
+*******************************/
+
+/* Breadcrumb */
+@variationBreadcrumbInverted: true;
+@variationBreadcrumbSizes: @variationAllSizes;
+
+/* Form */
+@variationFormInverted: true;
+@variationFormDisabled: true;
+@variationFormTransparent: true;
+@variationFormLoading: true;
+@variationFormStates: true;
+@variationFormRequired: true;
+@variationFormInline: true;
+@variationFormGrouped: true;
+@variationFormSizes: @variationAllSizes;
+
+/* Grid */
+@variationGridInverted: true;
+@variationGridPage: true;
+@variationGridCelled: true;
+@variationGridCentered: true;
+@variationGridRelaxed: true;
+@variationGridPadded: true;
+@variationGridFloated: true;
+@variationGridDivided: true;
+@variationGridAligned: true;
+@variationGridStretched: true;
+@variationGridJustified: true;
+@variationGridReversed: true;
+@variationGridDoubling: true;
+@variationGridStackable: true;
+@variationGridCompact: true;
+
+/* Menu */
+@variationMenuInverted: true;
+@variationMenuSecondary: true;
+@variationMenuPointing: true;
+@variationMenuVertical: true;
+@variationMenuTabular: true;
+@variationMenuPagination: true;
+@variationMenuText: true;
+@variationMenuFluid: true;
+@variationMenuLabeled: true;
+@variationMenuStackable: true;
+@variationMenuFloated: true;
+@variationMenuFitted: true;
+@variationMenuBorderless: true;
+@variationMenuCompact: true;
+@variationMenuFixed: true;
+@variationMenuAttached: true;
+@variationMenuSizes: @variationAllSizes;
+
+/* Message */
+@variationMessageInverted: true;
+@variationMessageCompact: true;
+@variationMessageAttached: true;
+@variationMessageIcon: true;
+@variationMessageFloating: true;
+@variationMessageConsequences: true;
+@variationMessageSizes: @variationAllSizes;
+
+/* Table */
+@variationTableInverted: true;
+@variationTableDisabled: true;
+@variationTableDefinition: true;
+@variationTableStructured: true;
+@variationTablePositive: true;
+@variationTableNegative: true;
+@variationTableError: true;
+@variationTableWarning: true;
+@variationTableActive: true;
+@variationTableStackable: true;
+@variationTableAligned: true;
+@variationTableFixed: true;
+@variationTableSelectable: true;
+@variationTableAttached: true;
+@variationTableStriped: true;
+@variationTableSortable: true;
+@variationTableCollapsing: true;
+@variationTableBasic: true;
+@variationTableCelled: true;
+@variationTablePadded: true;
+@variationTableCompact: true;
+@variationTableMarked: true;
+@variationTableSizes: @variationAllSizes;
+
+
+/*******************************
+ Views
+*******************************/
+
+/* Ad */
+@variationAdLeaderboard: true;
+@variationAdBillboard: true;
+@variationAdPanorama: true;
+@variationAdNetboard: true;
+@variationAdRectangle: true;
+@variationAdSquare: true;
+@variationAdButton: true;
+@variationAdSkyscraper: true;
+@variationAdBanner: true;
+@variationAdMobile: true;
+@variationAdCentered: true;
+@variationAdTest: true;
+
+/* Card */
+@variationCardInverted: true;
+@variationCardHorizontal: true;
+@variationCardRaised: true;
+@variationCardCentered: true;
+@variationCardFluid: true;
+@variationCardLink: true;
+@variationCardDoubling: true;
+@variationCardStackable: true;
+@variationCardSizes: @variationAllSizes;
+
+/* Comment */
+@variationCommentInverted: true;
+@variationCommentThreaded: true;
+@variationCommentMinimal: true;
+@variationCommentSizes: @variationAllSizes;
+
+/* Feed */
+@variationFeedInverted: true;
+@variationFeedSizes: @variationAllSizes;
+
+/* Item */
+@variationItemInverted: true;
+@variationItemAligned: true;
+@variationItemRelaxed: true;
+@variationItemDivided: true;
+@variationItemLink: true;
+@variationItemUnstackable: true;
+@variationItemSizes: @variationAllSizes;
+
+/* Statistic */
+@variationStatisticInverted: true;
+@variationStatisticStackable: true;
+@variationStatisticFloated: true;
+@variationStatisticHorizontal: true;
+@variationStatisticSizes: @variationAllSizes;
+
+
+/*******************************
+ Modules
+*******************************/
+
+/* Accordion */
+@variationAccordionInverted: true;
+@variationAccordionStyled: true;
+@variationAccordionFluid: true;
+
+/* Calendar */
+@variationCalendarInverted: true;
+@variationCalendarDisabled: true;
+
+/* Checkbox */
+@variationCheckboxBox: false; //.box (instead of label) is an ancient fragment of sui v1 and not even documented in v2.x anymore
+@variationCheckboxDisabled: true;
+@variationCheckboxInverted: true;
+@variationCheckboxRadio: true;
+@variationCheckboxSlider: true;
+@variationCheckboxToggle: true;
+@variationCheckboxIndeterminate: true;
+@variationCheckboxFitted: true;
+@variationCheckboxSizes: @variationAllSizes;
+
+/* Dimmer */
+@variationDimmerInverted: true;
+@variationDimmerDisabled: true;
+@variationDimmerLegacy: true;
+@variationDimmerAligned: true;
+@variationDimmerPage: true;
+@variationDimmerBlurring: true;
+@variationDimmerShades: true;
+@variationDimmerSimple: true;
+@variationDimmerPartially: true;
+
+/* Dropdown */
+@variationDropdownInverted: true;
+@variationDropdownDisabled: true;
+@variationDropdownLabel: true;
+@variationDropdownButton: true;
+@variationDropdownSelection: true;
+@variationDropdownShort: true;
+@variationDropdownLong: true;
+@variationDropdownCompact: true;
+@variationDropdownSearch: true;
+@variationDropdownMultiple: true;
+@variationDropdownInline: true;
+@variationDropdownLoading: true;
+@variationDropdownStates: true;
+@variationDropdownClear: true;
+@variationDropdownLeft: true;
+@variationDropdownUpward: true;
+@variationDropdownSimple: true;
+@variationDropdownScrolling: true;
+@variationDropdownFluid: true;
+@variationDropdownFloating: true;
+@variationDropdownPointing: true;
+@variationDropdownScrollhint: true;
+@variationDropdownSizes: @variationAllSizes;
+
+/* Embed */
+@variationEmbedRatio: true;
+
+/* Modal */
+@variationModalInverted: true;
+@variationModalBasic: true;
+@variationModalFullscreen: true;
+@variationModalOverlay: true;
+@variationModalAligned: true;
+@variationModalScrolling: true;
+@variationModalLegacy: true;
+@variationModalCloseInside: true;
+@variationModalSizes: @variationAllSizes;
+
+/* Popup */
+@variationPopupInverted: true;
+@variationPopupTooltip: true;
+@variationPopupPosition: true;
+@variationPopupTop: true;
+@variationPopupBottom: true;
+@variationPopupLeft: true;
+@variationPopupRight: true;
+@variationPopupCenter: true;
+@variationPopupLoading: true;
+@variationPopupBasic: true;
+@variationPopupWide: true;
+@variationPopupFluid: true;
+@variationPopupFlowing: true;
+@variationPopupFixed: true;
+@variationPopupSizes: @variationAllSizes;
+
+/* Progress */
+@variationProgressInverted: true;
+@variationProgressDisabled: true;
+@variationProgressIndicating: true;
+@variationProgressIndeterminate: true;
+@variationProgressSliding: true;
+@variationProgressFilling: true;
+@variationProgressSwinging: true;
+@variationProgressMultiple: true;
+@variationProgressSuccess: true;
+@variationProgressWarning: true;
+@variationProgressError: true;
+@variationProgressActive: true;
+@variationProgressAttached: true;
+@variationProgressSpeeds: true;
+@variationProgressSizes: @variationAllSizes;
+
+/* Rating */
+@variationRatingDisabled: true;
+@variationRatingSizes: @variationAllSizes;
+
+/* Search */
+@variationSearchDisabled: true;
+@variationSearchSelection: true;
+@variationSearchCategory: true;
+@variationSearchLoading: true;
+@variationSearchAligned: true;
+@variationSearchFluid: true;
+@variationSearchShort: true;
+@variationSearchLong: true;
+@variationSearchScrolling: true;
+@variationSearchSizes: @variationAllSizes;
+
+/* Shape */
+@variationShapeCube: true;
+@variationShapeText: true;
+@variationShapeLoading: true;
+
+/* Sidebar */
+@variationSidebarThin: true;
+@variationSidebarWide: true;
+@variationSidebarTop: true;
+@variationSidebarBottom: true;
+@variationSidebarLeft: true;
+@variationSidebarRight: true;
+@variationSidebarOverlay: true;
+@variationSidebarSlideAlong: true;
+@variationSidebarSlideOut: true;
+@variationSidebarScale: true;
+@variationSidebarPush: true;
+@variationSidebarUncover: true;
+
+/* Slider */
+@variationSliderInverted: true;
+@variationSliderDisabled: true;
+@variationSliderReversed: true;
+@variationSliderLabeled: true;
+@variationSliderTicked: true;
+@variationSliderVertical: true;
+@variationSliderBasic: true;
+@variationSliderSizes: small, large, big;
+
+/* Tab */
+@variationTabLoading: true;
+
+/* Toast */
+@variationToastInverted: true;
+@variationToastTop: true;
+@variationToastBottom: true;
+@variationToastLeft: true;
+@variationToastRight: true;
+@variationToastCenter: true;
+@variationToastInfo: true;
+@variationToastWarning: true;
+@variationToastSuccess: true;
+@variationToastError: true;
+@variationToastFloating: true;
+@variationToastProgress: true;
+@variationToastIcon: true;
+@variationToastClose: true;
+@variationToastImage: true;
+@variationToastMessage: true;
+@variationToastCard: true;
+@variationToastActions: true;
+@variationToastVertical: true;
+@variationToastAttached: true;
+
+/* Transition */
+@variationTransitionDisabled: true;
+@variationTransitionLoading: true;
+@variationTransitionBrowse: true;
+@variationTransitionDrop: true;
+@variationTransitionFade: true;
+@variationTransitionFlip: true;
+@variationTransitionScale: true;
+@variationTransitionFly: true;
+@variationTransitionSlide: true;
+@variationTransitionSwing: true;
+@variationTransitionZoom: true;
+@variationTransitionFlash: true;
+@variationTransitionShake: true;
+@variationTransitionBounce: true;
+@variationTransitionTada: true;
+@variationTransitionPulse: true;
+@variationTransitionJiggle: true;
+@variationTransitionGlow: true;
+
+/* Emojis */
+@variationEmojiColons: true;
+@variationEmojiNoColons: true;
diff --git a/assets/semantic/src/themes/default/modules/accordion.overrides b/assets/semantic/src/themes/default/modules/accordion.overrides
new file mode 100644
index 0000000..d12ac28
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/accordion.overrides
@@ -0,0 +1,28 @@
+/*******************************
+ Theme Overrides
+*******************************/
+@font-face {
+ font-family: 'Accordion';
+ src:
+ url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'),
+ url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff')
+ ;
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Dropdown Icon */
+.ui.accordion .title .dropdown.icon,
+.ui.accordion .accordion .title .dropdown.icon {
+ font-family: Accordion;
+ line-height: 1;
+ backface-visibility: hidden;
+ font-weight: normal;
+ font-style: normal;
+ text-align: center;
+}
+
+.ui.accordion .title .dropdown.icon:before,
+.ui.accordion .accordion .title .dropdown.icon:before {
+ content: '\f0da'/*rtl:'\f0d9'*/;
+}
diff --git a/assets/semantic/src/themes/default/modules/accordion.variables b/assets/semantic/src/themes/default/modules/accordion.variables
new file mode 100644
index 0000000..3cdbde7
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/accordion.variables
@@ -0,0 +1,100 @@
+/*******************************
+ Accordion
+*******************************/
+
+@boxShadow: none;
+
+/* Title */
+@titleFont: @headerFont;
+@titlePadding: 0.5em 0;
+@titleFontSize: 1em;
+@titleColor: @textColor;
+
+/* Icon */
+@iconOpacity: 1;
+@iconFontSize: 1em;
+@iconFloat: none;
+@iconWidth: 1.25em;
+@iconHeight: 1em;
+@iconDisplay: inline-block;
+@iconMargin: 0 0.25rem 0 0;
+@iconPadding: 0;
+@iconTransition:
+ transform @defaultDuration @defaultEasing,
+ opacity @defaultDuration @defaultEasing
+;
+@iconVerticalAlign: baseline;
+@iconTransform: none;
+
+/* Child Accordion */
+@childAccordionMargin: 1em 0 0;
+@childAccordionPadding: 0;
+
+/* Content */
+@contentMargin: '';
+@contentPadding: 0.5em 0 1em;
+
+/*-------------------
+ Coupling
+--------------------*/
+
+@menuTitlePadding: 0;
+@menuIconFloat: right;
+@menuIconMargin: @lineHeightOffset 0 0 1em;
+@menuIconTransform: rotate(180deg);
+
+
+/*-------------------
+ States
+--------------------*/
+
+@activeIconTransform: rotate(90deg);
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Styled */
+@styledWidth: 600px;
+@styledBackground: @white;
+@styledBorderRadius: @defaultBorderRadius;
+@styledBoxShadow:
+ @subtleShadow,
+ 0 0 0 1px @borderColor
+;
+
+/* Content */
+@styledContentMargin: 0;
+@styledContentPadding: 0.5em 1em 1.5em;
+
+/* Child Content */
+@styledChildContentMargin: 0;
+@styledChildContentPadding: @styledContentPadding;
+
+/* Styled Title */
+@styledTitleMargin: 0;
+@styledTitlePadding: 0.75em 1em;
+@styledTitleFontWeight: @bold;
+@styledTitleColor: @unselectedTextColor;
+@styledTitleTransition: background-color @defaultDuration @defaultEasing;
+@styledTitleBorder: 1px solid @borderColor;
+@styledTitleTransition:
+ background @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing
+;
+
+/* Styled Title States */
+@styledTitleHoverBackground: transparent;
+@styledTitleHoverColor: @textColor;
+@styledActiveTitleBackground: transparent;
+@styledActiveTitleColor: @selectedTextColor;
+
+/* Styled Child Title States */
+@styledHoverChildTitleBackground: @styledTitleHoverBackground;
+@styledHoverChildTitleColor: @styledTitleHoverColor;
+@styledActiveChildTitleBackground: @styledActiveTitleBackground;
+@styledActiveChildTitleColor: @styledActiveTitleColor;
+
+/* Inverted */
+@invertedTitleColor: @invertedTextColor;
+
diff --git a/assets/semantic/src/themes/default/modules/calendar.overrides b/assets/semantic/src/themes/default/modules/calendar.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/calendar.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/calendar.variables b/assets/semantic/src/themes/default/modules/calendar.variables
new file mode 100644
index 0000000..4cb800c
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/calendar.variables
@@ -0,0 +1,20 @@
+/*******************************
+ Calendar
+*******************************/
+
+@focusBoxShadow: inset 0 0 0 1px @focusedFormBorderColor;
+@focusInvertedBoxShadow: inset 0 0 0 1px @focusedFormBorderColor;
+
+@todayFontWeight: bold;
+
+@rangeBackground: @transparentBlack;
+@rangeTextColor: @selectedTextColor;
+@rangeBoxShadow: none;
+@rangeInvertedBackground: @transparentWhite;
+@rangeInvertedTextColor: @invertedSelectedTextColor;
+@rangeInvertedBoxShadow: none;
+
+@adjacentTextColor: @mutedTextColor;
+@adjacentBackground: @subtleTransparentBlack;
+@adjacentInvertedTextColor: @invertedMutedTextColor;
+@adjacentInvertedBackground: @subtleTransparentWhite;
diff --git a/assets/semantic/src/themes/default/modules/chatroom.overrides b/assets/semantic/src/themes/default/modules/chatroom.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/chatroom.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/chatroom.variables b/assets/semantic/src/themes/default/modules/chatroom.variables
new file mode 100644
index 0000000..34f1197
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/chatroom.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Chatroom
+*******************************/
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/modules/checkbox.overrides b/assets/semantic/src/themes/default/modules/checkbox.overrides
new file mode 100644
index 0000000..b4c90ff
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/checkbox.overrides
@@ -0,0 +1,36 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
+@font-face {
+ font-family: 'Checkbox';
+ src:
+ url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype')
+ ;
+}
+
+/* Checkmark */
+.ui.checkbox label:after,
+.ui.checkbox .box:after {
+ font-family: 'Checkbox';
+}
+
+/* Checked */
+.ui.checkbox input:checked ~ .box:after,
+.ui.checkbox input:checked ~ label:after {
+ content: '\e800';
+}
+
+/* Indeterminate */
+.ui.checkbox input:indeterminate ~ .box:after,
+.ui.checkbox input:indeterminate ~ label:after {
+ font-size: 12px;
+ content: '\e801';
+}
+
+
+/* UTF Reference
+.check:before { content: '\e800'; }
+.dash:before { content: '\e801'; }
+.plus:before { content: '\e802'; }
+*/
diff --git a/assets/semantic/src/themes/default/modules/checkbox.variables b/assets/semantic/src/themes/default/modules/checkbox.variables
new file mode 100644
index 0000000..e91c975
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/checkbox.variables
@@ -0,0 +1,220 @@
+/*******************************
+ Checkbox
+*******************************/
+
+@checkboxSize: 17px;
+@checkboxColor: @textColor;
+@checkboxLineHeight: @checkboxSize;
+
+
+/* Label */
+@labelDistance: 1.85714em; /* 26px @ 14/em */
+
+/* Checkbox */
+@checkboxBackground: @white;
+@checkboxBorder: 1px solid @solidBorderColor;
+@checkboxBorderRadius: @3px;
+@checkboxTransition:
+ border @defaultDuration @defaultEasing,
+ opacity @defaultDuration @defaultEasing,
+ transform @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing
+;
+
+/* Checkmark */
+@checkboxCheckFontSize: 14px;
+@checkboxCheckTop: 0;
+@checkboxCheckLeft: 0;
+@checkboxCheckSize: @checkboxSize;
+
+/* Label */
+@labelFontSize: @relativeMedium;
+@labelColor: @textColor;
+@labelTransition: color @defaultDuration @defaultEasing;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Hover */
+@checkboxHoverBackground: @checkboxBackground;
+@checkboxHoverBorderColor: @selectedBorderColor;
+@labelHoverColor: @hoveredTextColor;
+
+/* Pressed */
+@checkboxPressedBackground: @offWhite;
+@checkboxPressedBorderColor: @selectedBorderColor;
+@checkboxPressedColor: @selectedTextColor;
+@labelPressedColor: @selectedTextColor;
+
+/* Focus */
+@checkboxFocusBackground: @white;
+@checkboxFocusBorderColor: @focusedFormMutedBorderColor;
+@checkboxFocusCheckColor: @selectedTextColor;
+@labelFocusColor: @selectedTextColor;
+
+/* Active */
+@labelActiveColor: @selectedTextColor;
+@checkboxActiveBackground: @white;
+@checkboxActiveBorderColor: @selectedBorderColor;
+@checkboxActiveCheckColor: @selectedTextColor;
+@checkboxActiveCheckOpacity: 1;
+
+/* Active Focus */
+@checkboxActiveFocusBackground: @white;
+@checkboxActiveFocusBorderColor: @checkboxFocusBorderColor;
+@checkboxActiveFocusCheckColor: @selectedTextColor;
+
+/* Indeterminate */
+@checkboxIndeterminateBackground: @checkboxActiveBackground;
+@checkboxIndeterminateBorderColor: @checkboxActiveBorderColor;
+@checkboxIndeterminateCheckOpacity: 1;
+@checkboxIndeterminateCheckColor: @checkboxActiveCheckColor;
+
+/* Disabled */
+@disabledCheckboxOpacity: 0.5;
+@disabledCheckboxLabelColor: rgba(0, 0, 0, 1);
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Radio */
+/* Uses px to avoid rounding issues with circles */
+
+@radioSize: 15px;
+@radioTop: 1px;
+@radioLeft: 0;
+@radioLabelDistance: @labelDistance;
+
+@bulletTop: 1px;
+@bulletLeft: 0;
+@bulletScale: (7 / 15); /* 7px as unitless value from radio size */
+@bulletColor: @textColor;
+@bulletRadius: @circularRadius;
+
+@radioFocusBackground: @checkboxFocusBackground;
+@radioFocusBulletColor: @checkboxFocusCheckColor;
+
+@radioActiveBackground: @checkboxActiveBackground;
+@radioActiveBulletColor: @checkboxActiveCheckColor;
+
+@radioActiveFocusBackground: @checkboxActiveFocusBackground;
+@radioActiveFocusBulletColor: @checkboxActiveFocusCheckColor;
+
+/* Slider & Toggle Handle */
+@handleBackground: @white @subtleGradient;
+@handleBoxShadow:
+ @subtleShadow,
+ 0 0 0 1px @borderColor inset
+;
+
+/* Slider */
+@sliderHandleSize: 1.5rem;
+@sliderLineWidth: 3.5rem;
+@sliderTransitionDuration: 0.3s;
+
+@sliderHandleOffset: (1rem - @sliderHandleSize) / 2;
+@sliderHandleTransition: left @sliderTransitionDuration @defaultEasing;
+
+@sliderWidth: @sliderLineWidth;
+@sliderHeight: (@sliderHandleSize + @sliderHandleOffset);
+
+@sliderLineHeight: @3px;
+@sliderLineVerticalOffset: 0.4rem;
+@sliderLineColor: @transparentBlack;
+@sliderLineRadius: @circularRadius;
+@sliderLineTransition: background @sliderTransitionDuration @defaultEasing;
+
+@sliderTravelDistance: @sliderLineWidth - @sliderHandleSize;
+
+@sliderLabelDistance: @sliderLineWidth + 1rem;
+@sliderOffLabelColor: @unselectedTextColor;
+
+@sliderLabelLineHeight: 1rem;
+
+/* Slider States */
+@sliderHoverLaneBackground: @veryStrongTransparentBlack;
+@sliderHoverLabelColor: @hoveredTextColor;
+
+@sliderOnLineColor: @lightBlack;
+@sliderOnLabelColor: @selectedTextColor;
+
+@sliderOnFocusLineColor: @lightBlackFocus;
+@sliderOnFocusLabelColor: @sliderOnLabelColor;
+
+
+
+/* Toggle */
+@toggleLaneWidth: 3.5rem;
+@toggleHandleSize: 1.5rem;
+@toggleTransitionDuration: 0.2s;
+
+@toggleWidth: @toggleLaneWidth;
+@toggleHeight: @toggleHandleSize;
+
+@toggleHandleRadius: @circularRadius;
+@toggleHandleOffset: 0;
+@toggleHandleTransition:
+ background @sliderTransitionDuration @defaultEasing,
+ left @sliderTransitionDuration @defaultEasing
+;
+
+@toggleLaneBackground: @transparentBlack;
+@toggleLaneHeight: @toggleHandleSize;
+@toggleLaneBoxShadow: none;
+@toggleLaneVerticalOffset: 0;
+@toggleOffOffset: -0.05rem;
+@toggleOnOffset: (@toggleLaneWidth - @toggleHandleSize) + 0.15rem;
+@toggleCenterOffset: @toggleOnOffset / 2;
+@toggleCenterLaneBackground: @veryStrongTransparentBlack;
+
+@toggleLabelDistance: @toggleLaneWidth + 1rem;
+@toggleLabelLineHeight: 1.5rem;
+@toggleLabelOffset: 0.15em;
+
+
+@toggleFocusColor: @veryStrongTransparentBlack;
+@toggleHoverColor: @toggleFocusColor;
+
+@toggleOffLabelColor: @checkboxColor;
+@toggleOffHandleBoxShadow: @handleBoxShadow;
+
+@toggleOnLabelColor: @selectedTextColor;
+@toggleOnLaneColor: @primaryColor;
+
+@toggleOnHandleBoxShadow: @handleBoxShadow;
+
+@toggleOnFocusLaneColor: @primaryColorFocus;
+@toggleOnFocusLabelColor: @toggleOnLabelColor;
+
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Inverted */
+@checkboxInvertedHoverBackground: @black;
+
+@miniCheckboxSize: @relativeMini;
+@miniCheckboxCircleScale: @miniRaw / 2;
+@miniCheckboxCircleLeft: unit((@miniRaw - @miniCheckboxCircleScale) / 2 + 0.05 , em);
+@tinyCheckboxSize: @relativeTiny;
+@tinyCheckboxCircleScale: @tinyRaw / 2;
+@tinyCheckboxCircleLeft: unit((@tinyRaw - @tinyCheckboxCircleScale) / 2 + 0.05 , em);
+@smallCheckboxSize: @relativeSmall;
+@smallCheckboxCircleScale: @smallRaw / 2;
+@smallCheckboxCircleLeft: unit((@smallRaw - @smallCheckboxCircleScale) / 2 + 0.05 , em);
+@largeCheckboxSize: @relativeLarge;
+@largeCheckboxCircleScale: @largeRaw / 2;
+@largeCheckboxCircleLeft: unit((@largeRaw - @largeCheckboxCircleScale) / 2 + 0.05 , em);
+@bigCheckboxSize: @relativeBig;
+@bigCheckboxCircleScale: @bigRaw / 2;
+@bigCheckboxCircleLeft: unit((@bigRaw - @bigCheckboxCircleScale) / 2 + 0.05 , em);
+@hugeCheckboxSize: @relativeHuge;
+@hugeCheckboxCircleScale: @hugeRaw / 2;
+@hugeCheckboxCircleLeft: unit((@hugeRaw - @hugeCheckboxCircleScale) / 2 + 0.05 , em);
+@massiveCheckboxSize: @relativeMassive;
+@massiveCheckboxCircleScale: @massiveRaw / 2;
+@massiveCheckboxCircleLeft: unit((@massiveRaw - @massiveCheckboxCircleScale) / 2 + 0.05 , em);
diff --git a/assets/semantic/src/themes/default/modules/dimmer.overrides b/assets/semantic/src/themes/default/modules/dimmer.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/dimmer.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/dimmer.variables b/assets/semantic/src/themes/default/modules/dimmer.variables
new file mode 100644
index 0000000..e0aab7a
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/dimmer.variables
@@ -0,0 +1,66 @@
+/*******************************
+ Dimmer
+*******************************/
+
+@dimmablePosition: relative;
+@dimmerPosition: absolute;
+
+@backgroundColor: rgba(0, 0, 0 , 0.85);
+@lineHeight: 1;
+@perspective: 2000px;
+@padding: 1em;
+
+@duration: 0.5s;
+@transition:
+ background-color @duration linear
+;
+@zIndex: 1000;
+@textAlign: center;
+@verticalAlign: middle;
+@textColor: @white;
+@overflow: hidden;
+
+@blurredStartFilter: initial;
+@blurredEndFilter: e("blur(5px) grayscale(0.7)");
+@blurredTransition: 800ms filter @defaultEasing;
+
+@blurredBackgroundColor: rgba(0, 0, 0, 0.6);
+@blurredInvertedBackgroundColor: rgba(255, 255, 255, 0.6);
+
+/* Hidden (Default) */
+@hiddenOpacity: 0;
+
+/* Visible */
+@visibleOpacity: 1;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Page Dimmer*/
+@transformStyle: '';
+@pageDimmerPosition: fixed;
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Inverted */
+@invertedBackgroundColor: rgba(255, 255, 255, 0.85);
+@invertedTextColor: @fullBlack;
+
+/* Simple */
+@simpleZIndex: 1;
+@simpleStartBackgroundColor: rgba(0, 0, 0, 0);
+@simpleEndBackgroundColor: @backgroundColor;
+@simpleInvertedStartBackgroundColor: rgba(255, 255, 255, 0);
+@simpleInvertedEndBackgroundColor: @invertedBackgroundColor;
+
+/* Intensity */
+@veryLightBackgroundColor: rgba(0,0,0,.25);
+@lightBackgroundColor: rgba(0,0,0,.45);
+@mediumBackgroundColor: rgba(0,0,0,.65);
+@veryLightInvertedBackgroundColor: rgba(255,255,255,.25);
+@lightInvertedBackgroundColor: rgba(255,255,255,.45);
+@mediumInvertedBackgroundColor: rgba(255,255,255,.65);
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/modules/dropdown.overrides b/assets/semantic/src/themes/default/modules/dropdown.overrides
new file mode 100644
index 0000000..608fbaf
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/dropdown.overrides
@@ -0,0 +1,62 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
+/* Dropdown Carets */
+@font-face {
+ font-family: 'Dropdown';
+ src:
+ url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'),
+ url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff')
+ ;
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.dropdown > .dropdown.icon {
+ font-family: 'Dropdown';
+ line-height: 1;
+ height: 1em;
+ width: 1.23em;
+ backface-visibility: hidden;
+ font-weight: normal;
+ font-style: normal;
+ text-align: center;
+}
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+}
+.ui.dropdown > .dropdown.icon:before {
+ content: '\f0d7';
+}
+
+/* Sub Menu */
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: '\f0da'/*rtl:'\f0d9'*/;
+}
+
+.ui.dropdown .item .left.dropdown.icon:before,
+.ui.dropdown .left.menu .item .dropdown.icon:before {
+ content: "\f0d9"/*rtl:"\f0da"*/;
+}
+
+/* Vertical Menu Dropdown */
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da"/*rtl:"\f0d9"*/;
+}
+
+/* Icons for Reference
+.dropdown.down.icon {
+ content: "\f0d7";
+}
+.dropdown.up.icon {
+ content: "\f0d8";
+}
+.dropdown.left.icon {
+ content: "\f0d9";
+}
+.dropdown.icon.icon {
+ content: "\f0da";
+}
+*/
diff --git a/assets/semantic/src/themes/default/modules/dropdown.variables b/assets/semantic/src/themes/default/modules/dropdown.variables
new file mode 100644
index 0000000..9ecbaa3
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/dropdown.variables
@@ -0,0 +1,471 @@
+/*******************************
+ Dropdown
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@transition:
+ box-shadow @defaultDuration @defaultEasing,
+ width @defaultDuration @defaultEasing
+;
+@borderRadius: @defaultBorderRadius;
+
+@raisedShadow: 0 2px 3px 0 @borderColor;
+
+/*-------------------
+ Content
+--------------------*/
+
+/* Icon */
+@dropdownIconSize: @relative12px;
+@dropdownIconMargin: 0 0 0 1em;
+
+/* Current Text */
+@textTransition: none;
+
+/* Menu */
+@menuBackground: #FFFFFF;
+@menuMargin: 0;
+@menuPadding: 0 0;
+@menuTop: 100%;
+@menuTextAlign: left;
+
+@menuBorderWidth: 1px;
+@menuBorderColor: @borderColor;
+@menuBorder: @menuBorderWidth solid @menuBorderColor;
+@menuBoxShadow: @raisedShadow;
+@menuBorderRadius: @borderRadius;
+@menuTransition: opacity @defaultDuration @defaultEasing;
+@menuMinWidth: e(%("calc(100%% + %d)", @menuBorderWidth * 2));
+@menuZIndex: 11;
+
+/* Text */
+@textLineHeight: 1em;
+@textLineHeightOffset: (@textLineHeight - 1em);
+@textCursorSpacing: 1px;
+
+/* Menu Item */
+@itemFontSize: @medium;
+@itemTextAlign: left;
+@itemBorder: none;
+@itemHeight: auto;
+@itemDivider: none;
+@itemColor: @textColor;
+@itemVerticalPadding: @mini;
+@itemHorizontalPadding: @large;
+@itemPadding: @itemVerticalPadding @itemHorizontalPadding;
+@itemFontWeight: @normal;
+@itemLineHeight: 1em;
+@itemLineHeightOffset: (@itemLineHeight - 1em);
+@itemTextTransform: none;
+@itemBoxShadow: none;
+@itemMinHeight: unit(@itemLineHeight + 2 * @itemVerticalPadding, rem);
+
+/* Vertical Item */
+@verticalItemMargin: 0.25em;
+
+/* Sub Menu */
+@subMenuTop: 0;
+@subMenuLeft: 100%;
+@subMenuRight: auto;
+@subMenuDistanceAway: -0.5em;
+@subMenuMargin: 0 @subMenuDistanceAway;
+@subMenuBorderRadius: @borderRadius;
+@subMenuZIndex: 21;
+
+/* Menu Header */
+@menuHeaderColor: @darkTextColor;
+@menuHeaderFontSize: @relative11px;
+@menuHeaderFontWeight: @bold;
+@menuHeaderTextTransform: uppercase;
+@menuHeaderMargin: 1rem 0 0.75rem;
+@menuHeaderPadding: 0 @itemHorizontalPadding;
+
+/* Menu Divider */
+@menuDividerMargin: 0.5em 0;
+@menuDividerColor: @internalBorderColor;
+@menuDividerSize: 1px;
+@menuDividerBorder: @menuDividerSize solid @menuDividerColor;
+
+/* Menu Input */
+@menuInputMargin: @large @mini;
+@menuInputMinWidth: 10rem;
+@menuInputVerticalPadding: 0.5em;
+@menuInputHorizontalPadding: @inputHorizontalPadding;
+@menuInputPadding: @menuInputVerticalPadding @menuInputHorizontalPadding;
+
+/* Menu Image */
+@menuImageMaxHeight: 2em;
+@menuImageVerticalMargin: -(@menuImageMaxHeight - 1em) / 2;
+
+/* Item Sub-Element */
+@itemElementFloat: none;
+@itemElementDistance: @mini;
+@itemElementBottomDistance: @itemElementDistance / 2;
+
+/* Sub-Menu Dropdown Icon */
+@itemDropdownIconDistance: 1em;
+@itemDropdownIconFloat: right;
+@itemDropdownIconMargin: @itemLineHeightOffset 0 0 @itemDropdownIconDistance;
+
+/* Description */
+@itemDescriptionFloat: right;
+@itemDescriptionMargin: 0 0 0 1em;
+@itemDescriptionColor: @lightTextColor;
+
+/* Message */
+@messagePadding: @selectionItemPadding;
+@messageFontWeight: @normal;
+@messageColor: @unselectedTextColor;
+
+/* Floated Content */
+@floatedDistance: 1em;
+
+/*-------------------
+ Types
+--------------------*/
+
+/*------------
+ Selection
+--------------*/
+
+@selectionMinWidth: 14em;
+@selectionVerticalPadding: @inputVerticalPadding;
+@selectionHorizontalPadding: @inputHorizontalPadding;
+@selectionBorderEmWidth: @relative1px;
+@selectionMinHeight: @inputLineHeight + (@selectionVerticalPadding * 2) - @selectionBorderEmWidth;
+@selectionBackground: @inputBackground;
+@selectionDisplay: inline-block;
+@selectionIconDistance: @inputHorizontalPadding + (@glyphWidth * 2);
+@selectionPadding: @selectionVerticalPadding @selectionIconDistance @selectionVerticalPadding @selectionHorizontalPadding;
+@selectionZIndex: 10;
+
+@selectionItemDivider: 1px solid @solidInternalBorderColor;
+@selectionMessagePadding: @selectionItemPadding;
+
+/* */
+@selectBorder: 1px solid @borderColor;
+@selectPadding: 0.5em;
+@selectVisibility: visible;
+@selectHeight: 38px;
+
+@selectionTextColor: @textColor;
+
+@selectionTextUnderlayIconOpacity: @disabledOpacity;
+@selectionTextUnderlayColor: @inputPlaceholderFocusColor;
+
+@selectionBoxShadow: none;
+@selectionBorderColor: @borderColor;
+@selectionBorder: 1px solid @selectionBorderColor;
+@selectionBorderRadius: @borderRadius;
+
+@selectionIconOpacity: 0.8;
+@selectionIconZIndex: 3;
+@selectionIconHitbox: @selectionVerticalPadding;
+@selectionIconMargin: -@selectionIconHitbox;
+@selectionIconPadding: @selectionIconHitbox / @dropdownIconSize;
+@selectionIconTransition: opacity @defaultDuration @defaultEasing;
+
+@selectionMenuBorderRadius: 0 0 @borderRadius @borderRadius;
+@selectionMenuBoxShadow: @raisedShadow;
+@selectionMenuItemBoxShadow: none;
+
+@selectionItemHorizontalPadding: @itemHorizontalPadding;
+@selectionItemVerticalPadding: @itemVerticalPadding;
+@selectionItemPadding: @selectionItemVerticalPadding @selectionItemHorizontalPadding;
+
+@selectionTransition: @transition;
+@selectionMenuTransition: @menuTransition;
+
+/* Responsive */
+@selectionMobileMaxItems: 3;
+@selectionTabletMaxItems: 4;
+@selectionComputerMaxItems: 6;
+@selectionWidescreenMaxItems: 8;
+
+/* Derived */
+@selectedBorderEMWidth: 0.1em; /* 1px / em size */
+@selectionItemHeight: (@selectionItemVerticalPadding * 2) + @itemLineHeight + @selectedBorderEMWidth;
+@selectionMobileMaxMenuHeight: (@selectionItemHeight * @selectionMobileMaxItems);
+@selectionTabletMaxMenuHeight: (@selectionItemHeight * @selectionTabletMaxItems);
+@selectionComputerMaxMenuHeight: (@selectionItemHeight * @selectionComputerMaxItems);
+@selectionWidescreenMaxMenuHeight: (@selectionItemHeight * @selectionWidescreenMaxItems);
+
+/* Hover */
+@selectionHoverBorderColor: @selectedBorderColor;
+@selectionHoverBoxShadow: none;
+
+/* Focus */
+@selectionFocusBorderColor: @focusedFormMutedBorderColor;
+@selectionFocusBoxShadow: none;
+@selectionFocusMenuBoxShadow: @raisedShadow;
+
+/* Visible */
+@selectionVisibleTextFontWeight: @normal;
+@selectionVisibleTextColor: @hoveredTextColor;
+
+@selectionVisibleBorderColor: @focusedFormMutedBorderColor;
+@selectionVisibleBoxShadow: @raisedShadow;
+@selectionVisibleMenuBoxShadow: @raisedShadow;
+
+/* Visible Hover */
+@selectionActiveHoverBorderColor: @focusedFormMutedBorderColor;
+@selectionActiveHoverBoxShadow: @selectionVisibleBoxShadow;
+@selectionActiveHoverMenuBoxShadow: @selectionVisibleMenuBoxShadow;
+
+@selectionVisibleConnectingBorder: 0;
+@selectionVisibleIconOpacity: '';
+
+/*--------------
+ Search
+--------------*/
+
+@searchMinWidth: '';
+
+/* Search Selection */
+@searchSelectionLineHeight: @inputLineHeight;
+@searchSelectionLineHeightOffset: ((@searchSelectionLineHeight - 1em) / 2);
+@searchSelectionVerticalPadding: (@selectionVerticalPadding - @searchSelectionLineHeightOffset);
+@searchSelectionHorizontalPadding: @selectionHorizontalPadding;
+@searchSelectionInputPadding: @searchSelectionVerticalPadding @selectionIconDistance @searchSelectionVerticalPadding @searchSelectionHorizontalPadding;
+
+@searchMobileMaxMenuHeight: @selectionMobileMaxMenuHeight;
+@searchTabletMaxMenuHeight: @selectionTabletMaxMenuHeight;
+@searchComputerMaxMenuHeight: @selectionComputerMaxMenuHeight;
+@searchWidescreenMaxMenuHeight: @selectionWidescreenMaxMenuHeight;
+
+/* Inline */
+@inlineIconMargin: 0 @relative3px 0 @relative3px;
+@inlineTextColor: inherit;
+@inlineTextFontWeight: @bold;
+@inlineMenuDistance: @relative3px;
+@inlineMenuBorderRadius: @borderRadius;
+
+
+/*--------------
+ Multiple
+--------------*/
+
+/* Split Actual Padding Between Child and Parent (allows for label spacing) */
+@multipleSelectionVerticalPadding: (@searchSelectionVerticalPadding * (1/3));
+@multipleSelectionLeftPadding: @relative5px;
+@multipleSelectionRightPadding: @selectionIconDistance;
+@multipleSelectionPadding: @multipleSelectionVerticalPadding @multipleSelectionRightPadding @multipleSelectionVerticalPadding @multipleSelectionLeftPadding;
+
+/* Child Elements */
+@multipleSelectionChildVerticalMargin: (@searchSelectionVerticalPadding * (2/3));
+@multipleSelectionChildLeftMargin: (@inputHorizontalPadding - @multipleSelectionLeftPadding);
+@multipleSelectionChildMargin: @multipleSelectionChildVerticalMargin 0 @multipleSelectionChildVerticalMargin @multipleSelectionChildLeftMargin;
+@multipleSelectionChildLineHeight: @relative17px;
+@multipleSelectionSearchStartWidth: (@glyphWidth * 2);
+
+/* Dropdown Icon */
+@multipleSelectionDropdownIconMargin: '';
+@multipleSelectionDropdownIconPadding: '';
+
+@multipleSelectionSearchAfterLabelDistance: @relative2px;
+
+/* Selection Label */
+@labelSize: @relativeMedium;
+@labelHorizontalMargin: @4px;
+@labelVerticalMargin: @2px;
+@labelMargin: @labelVerticalMargin @labelHorizontalMargin @labelVerticalMargin 0;
+@labelBorderWidth: 1px;
+@labelBoxShadow: 0 0 0 @labelBorderWidth @borderColor inset;
+
+@labelVerticalPadding: @relative5px;
+@labelHorizontalPadding: @relativeMini;
+@labelPadding: @labelVerticalPadding @labelHorizontalPadding;
+
+@imageLabelHeight: (1em + @labelVerticalPadding * 2); /* Logic adopted from label.less */
+@imageLabelImageMargin: -@labelVerticalPadding @labelHorizontalPadding -@labelVerticalPadding -@labelHorizontalPadding;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Hovered */
+@hoveredItemBackground: @transparentBlack;
+@hoveredItemColor: @selectedTextColor;
+@hoveredZIndex: @menuZIndex + 2;
+
+/* Default Text */
+@defaultTextColor: @inputPlaceholderColor;
+@defaultTextFocusColor: @inputPlaceholderFocusColor;
+
+/* Loading */
+@loadingZIndex: -1;
+
+/* Active Menu Item */
+@activeItemZIndex: @menuZIndex + 1;
+@activeItemBackground: transparent;
+@activeItemBoxShadow: none;
+@activeItemFontWeight: @bold;
+@activeItemColor: @selectedTextColor;
+
+/* Selected */
+@selectedBackground: @subtleTransparentBlack;
+@selectedColor: @selectedTextColor;
+
+/* Clearable */
+@clearableIconOpacity: 0.8;
+@clearableIconActiveOpacity: 1;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Scrolling */
+@scrollingMenuWidth: 100%;
+@scrollingMenuItemBorder: none;
+@scrollingMenuRightItemPadding: e(%("calc(%d + %d)", @itemHorizontalPadding, @scrollbarWidth));
+
+@scrollingMobileMaxItems: 4;
+@scrollingTabletMaxItems: 6;
+@scrollingComputerMaxItems: 8;
+@scrollingWidescreenMaxItems: 12;
+
+@scrollingBorderEMWidth: 0; /* 0 / em size */
+@scrollingItemHeight: (@itemVerticalPadding * 2) + @itemLineHeight + @scrollingBorderEMWidth;
+@scrollingMobileMaxMenuHeight: (@scrollingItemHeight * @scrollingMobileMaxItems);
+@scrollingTabletMaxMenuHeight: (@scrollingItemHeight * @scrollingTabletMaxItems);
+@scrollingComputerMaxMenuHeight: (@scrollingItemHeight * @scrollingComputerMaxItems);
+@scrollingWidescreenMaxMenuHeight: (@scrollingItemHeight * @selectionWidescreenMaxItems);
+
+/* Upward */
+@upwardSelectionVisibleBorderRadius: @selectionVisibleConnectingBorder @selectionVisibleConnectingBorder @borderRadius @borderRadius;
+@upwardMenuBoxShadow: 0 0 3px 0 rgba(0, 0, 0, 0.08);
+@upwardSelectionMenuBoxShadow: 0 -2px 3px 0 rgba(0, 0, 0, 0.08);
+@upwardMenuBorderRadius: @borderRadius @borderRadius 0 0;
+@upwardSelectionHoverBoxShadow: 0 0 2px 0 rgba(0, 0, 0, 0.05);
+@upwardSelectionVisibleBoxShadow: 0 0 3px 0 rgba(0, 0, 0, 0.08);
+@upwardSelectionActiveHoverBoxShadow: 0 0 3px 0 rgba(0, 0, 0, 0.05);
+@upwardSelectionActiveHoverMenuBoxShadow: 0 -2px 3px 0 rgba(0, 0, 0, 0.08);
+
+/* Flyout Direction */
+@leftMenuDropdownIconFloat: left;
+@leftMenuDropdownIconMargin: @itemLineHeightOffset 0 0 0;
+
+/* Left */
+@leftSubMenuBorderRadius: @borderRadius;
+@leftSubMenuMargin: 0 @subMenuDistanceAway 0 0;
+
+/* Simple */
+@simpleTransitionDuration: @defaultDuration;
+@simpleTransition: opacity @simpleTransitionDuration @defaultEasing;
+
+/* Floating */
+@floatingMenuDistance: 0.5em;
+@floatingMenuBoxShadow: @floatingShadow;
+@floatingMenuBorderRadius: @borderRadius;
+
+/* Pointing */
+@pointingArrowOffset: -(@pointingArrowSize / 2);
+@pointingArrowDistanceFromEdge: 1em;
+
+@pointingArrowBackground: @white;
+@pointingArrowZIndex: 2;
+@pointingArrowBoxShadow: -@menuBorderWidth -@menuBorderWidth 0 0 @menuBorderColor;
+@pointingArrowSize: @relative7px;
+
+@pointingMenuDistance: @mini;
+@pointingMenuBorderRadius: @borderRadius;
+
+/* Pointing Upward */
+@pointingUpwardMenuBorderRadius: @borderRadius;
+@pointingUpwardArrowBoxShadow: @menuBorderWidth @menuBorderWidth 0 0 @menuBorderColor;
+
+/* Scrollhint */
+@scrollhintWidth: 0.25em;
+@scrollhintRightBorder: @scrollhintWidth solid;
+@scrollhintLeftBorder: 0;
+@scrollhintZIndex: 15;
+@scrollhintDuration: 2s;
+@scrollhintEasing: @defaultEasing;
+@scrollhintIteration: 2;
+@scrollhintOffsetRight: @scrollhintWidth;
+@scrollhintStartColor: rgba(0, 0, 0, 0.75);
+@scrollhintEndColor: rgba(0, 0, 0, 0);
+
+/*--------------
+ Inverted
+---------------*/
+
+/* General rules and basic dropdowns */
+@invertedMenuBackground: @black;
+@invertedMenuColor: @invertedMutedTextColor;
+@invertedMenuBorderColor: @strongTransparentWhite;
+@invertedMenuBorder: 1px solid @invertedMenuBorderColor;
+@invertedMenuBoxShadow: none;
+
+@invertedPointingArrowBackground: @black;
+@invertedPointingArrowBoxShadow: -@menuBorderWidth -@menuBorderWidth 0 0 @invertedMenuBorderColor;
+
+@invertedHoveredItemBackground: @transparentWhite;
+@invertedHoveredItemColor: @invertedMenuColor;
+
+@invertedActiveItemBackground: transparent;
+@invertedActiveItemColor: @invertedMenuColor;
+@invertedActiveItemBoxShadow: none;
+
+@invertedSelectedBackground: @strongTransparentWhite;
+@invertedSelectedColor: @invertedMenuColor;
+
+@invertedMenuHeaderColor: @white;
+@invertedItemDescriptionColor: @invertedUnselectedTextColor;
+
+@invertedMenuDividerBorder: @menuDividerSize solid @strongTransparentWhite;
+
+/* Selection */
+@invertedSelectionBorderColor: @strongTransparentWhite;
+@invertedSelectionBorder: 1px solid @invertedSelectionBorderColor;
+@invertedSelectionBackground: @black;
+@invertedSelectionTextColor: @invertedMenuColor;
+@invertedSelectionInputTextColor: @white;
+
+@invertedSelectionHoverBorderColor: rgba(255, 255, 255, 0.25);
+@invertedSelectionHoverBoxShadow: none;
+
+@invertedDefaultTextColor: @invertedUnselectedTextColor;
+@invertedDefaultTextFocusColor: @invertedLightTextColor;
+
+@invertedSelectionVisibleTextColor: @invertedTextColor;
+
+@invertedSelectionTextUnderlayIconOpacity: 0.45;
+@invertedSelectionTextUnderlayColor: @invertedLightTextColor;
+
+@invertedSelectionItemDivider: 1px solid #242526;
+@invertedSelectionVisibleBorderColor: @strongTransparentWhite;
+
+@invertedMessageColor: @invertedUnselectedTextColor;
+
+@invertedInputHighlightBackground: rgba(255, 255, 255, 0.25);
+@invertedInputHighlightColor: @invertedMutedTextColor;
+
+/* Multiple */
+/*@invertedLabelBackgroundColor: rgba(255, 255, 255, 0.06);
+@invertedLabelBackgroundImage: none;
+@invertedLabelColor: rgba(255, 255, 255, 0.6);
+@invertedLabelBoxShadow: 0 0 0 @labelBorderWidth rgba(255, 255, 255, 0.16) inset;
+
+@invertedLabelHoverBackgroundColor: rgba(255, 255, 255, 0.12);
+@invertedLabelHoverBackgroundImage: none;
+@invertedLabelHoverTextColor: rgba(255, 255, 255, 0.7);*/
+
+@invertedLabelBackgroundColor: rgba(255, 255, 255, 0.7);
+@invertedLabelBackgroundImage: none;
+@invertedLabelColor: rgba(0, 0, 0, 1);
+@invertedLabelBoxShadow: 0 0 0 @labelBorderWidth rgba(255, 255, 255, 0) inset;
+
+@invertedLabelHoverBackgroundColor: rgba(255, 255, 255, 0.9);
+@invertedLabelHoverBackgroundImage: none;
+@invertedLabelHoverTextColor: @invertedLabelColor;
+
+@invertedLabelIconOpacity: 0.6;
+@invertedLabelIconHoverOpacity: 0.8;
+
+/* Scrollhint */
+@invertedScrollhintStartColor: rgba(255, 255, 255, 0.75);
+@invertedScrollhintEndColor: rgba(255, 255, 255, 0);
diff --git a/assets/semantic/src/themes/default/modules/embed.overrides b/assets/semantic/src/themes/default/modules/embed.overrides
new file mode 100644
index 0000000..64b4efd
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/embed.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Video Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/embed.variables b/assets/semantic/src/themes/default/modules/embed.variables
new file mode 100644
index 0000000..0c1e923
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/embed.variables
@@ -0,0 +1,53 @@
+/*******************************
+ Video
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+/* Simple */
+@background: @lightGrey;
+@transitionDuration: 0.5s;
+@transitionEasing: @defaultEasing;
+
+/* Placeholder */
+@placeholderUnderlay: @background;
+
+/* Placeholder Overlayed Background */
+@placeholderBackground: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
+@placeholderBackgroundOpacity: 0.5;
+@placeholderBackgroundTransition: opacity @transitionDuration @transitionEasing;
+
+/* Icon */
+@iconBackground: @veryStrongTransparentBlack;
+@iconSize: 6rem;
+@iconTransition:
+ opacity @transitionDuration @transitionEasing,
+ color @transitionDuration @transitionEasing
+;
+@iconColor: @white;
+@iconShadow:
+ 0 2px 10px rgba(34, 36, 38, 0.2)
+;
+@iconZIndex: 10;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Hover */
+@hoverPlaceholderBackground: @placeholderBackground;
+@hoverPlaceholderBackgroundOpacity: 1;
+@hoverIconColor: @white;
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Aspect Ratios */
+@squareRatio: (1/1) * 100%;
+@widescreenRatio: (9/16) * 100%;
+@ultraWidescreenRatio: (9/21) * 100%;
+@standardRatio: (3/4) * 100%;
diff --git a/assets/semantic/src/themes/default/modules/modal.overrides b/assets/semantic/src/themes/default/modules/modal.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/modal.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/modal.variables b/assets/semantic/src/themes/default/modules/modal.variables
new file mode 100644
index 0000000..e42707b
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/modal.variables
@@ -0,0 +1,250 @@
+/*******************************
+ Modal
+*******************************/
+
+@background: @white;
+@border: none;
+@zIndex: 1001;
+@borderRadius: @defaultBorderRadius;
+@transformOrigin: 50% 25%;
+@boxShadow:
+ 1px 3px 3px 0 rgba(0, 0, 0, 0.2),
+ 1px 3px 15px 2px rgba(0, 0, 0, 0.2)
+;
+
+/* Close Icon */
+@closeOpacity: 0.8;
+@closeSize: 1.25em;
+@closeColor: @white;
+
+@closeHitbox: 2.25rem;
+@closeDistance: 0.25rem;
+@closeHitBoxOffset: (@closeHitbox - 1rem) / 2;
+@closePadding: @closeHitBoxOffset 0 0 0;
+@closeTop: -(@closeDistance + @closeHitbox);
+@closeRight: -(@closeDistance + @closeHitbox);
+
+/* Header */
+@headerMargin: 0;
+@headerVerticalPadding: 1.25rem;
+@headerHorizontalPadding: 1.5rem;
+@headerPadding: @headerVerticalPadding @headerHorizontalPadding;
+@headerBackground: @white;
+@headerColor: @darkTextColor;
+@headerFontSize: @huge;
+@headerBoxShadow: none;
+@headerFontWeight: @bold;
+@headerFontFamily: @headerFont;
+@headerBorder: 1px solid @borderColor;
+
+/* Content */
+@contentFontSize: 1em;
+@contentPadding: 1.5rem;
+@contentLineHeight: 1.4;
+@contentBackground: #FFFFFF;
+
+/* Image / Description */
+@imageWidth: '';
+@imageIconSize: 8rem;
+@imageVerticalAlign: start;
+
+@descriptionDistance: 2em;
+@descriptionMinWidth: '';
+@descriptionWidth: auto;
+@descriptionVerticalAlign: start;
+
+/* Modal Actions */
+@actionBorder: 1px solid @borderColor;
+@actionBackground: @offWhite;
+@actionPadding: 1rem 1rem;
+@actionAlign: right;
+
+@buttonDistance: 0.75em;
+
+/* Inner Close Position (Tablet/Mobile) */
+@innerCloseTop: (@headerVerticalPadding - @closeHitBoxOffset + (@lineHeight - 1em));
+@innerCloseRight: 1rem;
+@innerCloseColor: @textColor;
+
+/* Mobile Positions */
+@mobileHeaderPadding: 0.75rem 1rem;
+@mobileContentPadding: 1rem;
+@mobileImagePadding: 0 0 1rem;
+@mobileDescriptionPadding: 1rem 0 ;
+@mobileButtonDistance: 1rem;
+@mobileActionPadding: 1rem 1rem (1rem - @mobileButtonDistance);
+@mobileImageIconSize: 5rem;
+@mobileCloseTop: 0.5rem;
+@mobileCloseRight: 0.5rem;
+
+/* Responsive Widths */
+@mobileWidth: 95%;
+@tabletWidth: 88%;
+@computerWidth: 850px;
+@largeMonitorWidth: 900px;
+@widescreenMonitorWidth: 950px;
+
+@mobileMargin: 0 0 0 0;
+@tabletMargin: 0 0 0 0;
+@computerMargin: 0 0 0 0;
+@largeMonitorMargin: 0 0 0 0;
+@widescreenMonitorMargin: 0 0 0 0;
+
+@fullScreenWidth: 95%;
+@fullScreenOffset: (100% - @fullScreenWidth) / 2;
+@fullScreenMargin: 1em auto;
+
+/* Coupling */
+@invertedBoxShadow: 1px 3px 10px 2px rgba(0, 0, 0, 0.2);
+
+/*-------------------
+ States
+--------------------*/
+
+@loadingZIndex: -1;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Basic */
+@basicModalHeaderColor: @white;
+@basicModalColor: @white;
+@basicModalCloseTop: 1rem;
+@basicModalCloseRight: 1.5rem;
+@basicInnerCloseColor: @white;
+
+@basicInvertedModalColor: @textColor;
+@basicInvertedModalHeaderColor: @darkTextColor;
+
+/* Aligned */
+@topAlignedMargin: 5vh;
+@mobileTopAlignedMargin: 1rem;
+@bottomAlignedMargin: @topAlignedMargin;
+@mobileBottomAlignedMargin: @mobileTopAlignedMargin;
+
+/* Scrolling Margin */
+@scrollingMargin: 2rem;
+@mobileScrollingMargin: @mobileTopAlignedMargin;
+
+/* Scrolling Content */
+@scrollingContentMaxHeight: calc(80vh - 10rem);
+@overlayFullscreenScrollingContentMaxHeight: calc(100vh - 9.1rem);
+@overlayFullscreenScrollingContentMaxHeightMobile: calc(100vh - 8.1rem);
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Size Widths */
+@miniRatio: 0.4;
+@tinyRatio: 0.6;
+@smallRatio: 0.8;
+@largeRatio: 1.2;
+@bigRatio: 1.4;
+@hugeRatio: 1.6;
+@massiveRatio: 1.8;
+
+/* Derived Responsive Sizes */
+@miniHeaderSize: 1.3em;
+@miniMobileWidth: @mobileWidth;
+@miniTabletWidth: (@tabletWidth * @miniRatio);
+@miniComputerWidth: (@computerWidth * @miniRatio);
+@miniLargeMonitorWidth: (@largeMonitorWidth * @miniRatio);
+@miniWidescreenMonitorWidth: (@widescreenMonitorWidth * @miniRatio);
+
+@miniMobileMargin: 0 0 0 0;
+@miniTabletMargin: 0 0 0 0;
+@miniComputerMargin: 0 0 0 0;
+@miniLargeMonitorMargin: 0 0 0 0;
+@miniWidescreenMonitorMargin: 0 0 0 0;
+
+@tinyHeaderSize: 1.3em;
+@tinyMobileWidth: @mobileWidth;
+@tinyTabletWidth: (@tabletWidth * @tinyRatio);
+@tinyComputerWidth: (@computerWidth * @tinyRatio);
+@tinyLargeMonitorWidth: (@largeMonitorWidth * @tinyRatio);
+@tinyWidescreenMonitorWidth: (@widescreenMonitorWidth * @tinyRatio);
+
+@tinyMobileMargin: 0 0 0 0;
+@tinyTabletMargin: 0 0 0 0;
+@tinyComputerMargin: 0 0 0 0;
+@tinyLargeMonitorMargin: 0 0 0 0;
+@tinyWidescreenMonitorMargin: 0 0 0 0;
+
+@smallHeaderSize: 1.3em;
+@smallMobileWidth: @mobileWidth;
+@smallTabletWidth: (@tabletWidth * @smallRatio);
+@smallComputerWidth: (@computerWidth * @smallRatio);
+@smallLargeMonitorWidth: (@largeMonitorWidth * @smallRatio);
+@smallWidescreenMonitorWidth: (@widescreenMonitorWidth * @smallRatio);
+
+@smallMobileMargin: 0 0 0 0;
+@smallTabletMargin: 0 0 0 0;
+@smallComputerMargin: 0 0 0 0;
+@smallLargeMonitorMargin: 0 0 0 0;
+@smallWidescreenMonitorMargin: 0 0 0 0;
+
+@largeHeaderSize: 1.6em;
+@largeMobileWidth: @mobileWidth;
+@largeTabletWidth: @tabletWidth;
+@largeComputerWidth: (@computerWidth * @largeRatio);
+@largeLargeMonitorWidth: (@largeMonitorWidth * @largeRatio);
+@largeWidescreenMonitorWidth: (@widescreenMonitorWidth * @largeRatio);
+
+@largeMobileMargin: 0 0 0 0;
+@largeTabletMargin: 0 0 0 0;
+@largeComputerMargin: 0 0 0 0;
+@largeLargeMonitorMargin: 0 0 0 0;
+@largeWidescreenMonitorMargin: 0 0 0 0;
+
+@bigHeaderSize: 1.6em;
+@bigMobileWidth: @mobileWidth;
+@bigTabletWidth: @tabletWidth;
+@bigComputerWidth: (@computerWidth * @bigRatio);
+@bigLargeMonitorWidth: (@largeMonitorWidth * @bigRatio);
+@bigWidescreenMonitorWidth: (@widescreenMonitorWidth * @bigRatio);
+
+@bigMobileMargin: 0 0 0 0;
+@bigTabletMargin: 0 0 0 0;
+@bigComputerMargin: 0 0 0 0;
+@bigLargeMonitorMargin: 0 0 0 0;
+@bigWidescreenMonitorMargin: 0 0 0 0;
+
+@hugeHeaderSize: 1.6em;
+@hugeMobileWidth: @mobileWidth;
+@hugeTabletWidth: @tabletWidth;
+@hugeComputerWidth: (@computerWidth * @hugeRatio);
+@hugeLargeMonitorWidth: (@largeMonitorWidth * @hugeRatio);
+@hugeWidescreenMonitorWidth: (@widescreenMonitorWidth * @hugeRatio);
+
+@hugeMobileMargin: 0 0 0 0;
+@hugeTabletMargin: 0 0 0 0;
+@hugeComputerMargin: 0 0 0 0;
+@hugeLargeMonitorMargin: 0 0 0 0;
+@hugeWidescreenMonitorMargin: 0 0 0 0;
+
+@massiveHeaderSize: 1.8em;
+@massiveMobileWidth: @mobileWidth;
+@massiveTabletWidth: @tabletWidth;
+@massiveComputerWidth: (@computerWidth * @massiveRatio);
+@massiveLargeMonitorWidth: (@largeMonitorWidth * @massiveRatio);
+@massiveWidescreenMonitorWidth: (@widescreenMonitorWidth * @massiveRatio);
+
+@massiveMobileMargin: 0 0 0 0;
+@massiveTabletMargin: 0 0 0 0;
+@massiveComputerMargin: 0 0 0 0;
+@massiveLargeMonitorMargin: 0 0 0 0;
+@massiveWidescreenMonitorMargin: 0 0 0 0;
+
+/*-------------------
+ Inverted
+--------------------*/
+@invertedBackground: rgba(0,0,0,.9);
+@invertedCloseColor: @white;
+@invertedHeaderColor: @white;
+@invertedHeaderBackgroundColor: @darkTextColor;
+@invertedActionBackground: #191A1B;
+@invertedActionBorder: 1px solid rgba(34, 36, 38, 0.85);
+@invertedActionColor: @white;
+@invertedDimmerCloseColor: rgba(0,0,0,.85);
diff --git a/assets/semantic/src/themes/default/modules/nag.overrides b/assets/semantic/src/themes/default/modules/nag.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/nag.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/nag.variables b/assets/semantic/src/themes/default/modules/nag.variables
new file mode 100644
index 0000000..2b72a41
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/nag.variables
@@ -0,0 +1,74 @@
+/*******************************
+ Nag
+*******************************/
+
+/*--------------
+ Collection
+---------------*/
+
+@position: relative;
+@width: 100%;
+@zIndex: 999;
+@margin: 0;
+
+@background: #555555;
+@opacity: 0.95;
+@minHeight: 0;
+@padding: 0.75em 1em;
+@lineHeight: 1em;
+@boxShadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
+
+@fontSize: 1rem;
+@textAlign: center;
+@color: @textColor;
+
+@transition: 0.2s background ease;
+
+
+/*--------------
+ Elements
+---------------*/
+
+/* Title */
+@titleColor: @white;
+@titleMargin: 0 0.5em;
+
+@closeSize: 1em;
+@closeMargin: (-@closeSize / 2) 0 0;
+@closeTop: 50%;
+@closeRight: 1em;
+@closeColor: @white;
+@closeTransition: opacity 0.2s ease;
+@closeOpacity: 0.4;
+
+
+/*--------------
+ States
+---------------*/
+
+/* Hover */
+@nagHoverBackground: @background;
+@nagHoverOpacity: 1;
+
+@closeHoverOpacity: 1;
+
+/*--------------
+ Variations
+---------------*/
+
+/* Top / Bottom */
+@top: 0;
+@bottom: 0;
+@borderRadius: @defaultBorderRadius;
+@topBorderRadius: 0 0 @borderRadius @borderRadius;
+@bottomBorderRadius: @borderRadius @borderRadius 0 0;
+
+/* Inverted */
+@invertedBackground: @darkWhite;
+
+/*--------------
+ Plural
+---------------*/
+
+@groupedBorderRadius: 0;
+
diff --git a/assets/semantic/src/themes/default/modules/popup.overrides b/assets/semantic/src/themes/default/modules/popup.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/popup.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/popup.variables b/assets/semantic/src/themes/default/modules/popup.variables
new file mode 100644
index 0000000..91d62d6
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/popup.variables
@@ -0,0 +1,138 @@
+/*******************************
+ Popup
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@zIndex: 1900;
+@background: @white;
+
+@maxWidth: 250px;
+@borderColor: @solidBorderColor;
+@borderWidth: 1px;
+@boxShadow: @floatingShadow;
+@color: @textColor;
+
+@verticalPadding: 0.833em;
+@horizontalPadding: 1em;
+@fontWeight: @normal;
+@fontStyle: @normal;
+@borderRadius: @defaultBorderRadius;
+
+/*-------------------
+ Parts
+--------------------*/
+
+/* Placement */
+@arrowSize: @relative10px;
+@arrowWidth: 1em;
+@arrowDistanceFromEdge: 1em;
+@boxArrowOffset: 0;
+@popupDistanceAway: @arrowSize;
+
+
+/* Header */
+@headerFontFamily: @headerFont;
+@headerFontWeight: @bold;
+@headerFontSize: @relativeLarge;
+@headerDistance: @relative7px;
+@headerLineHeight: 1.2;
+
+/* Content Border */
+@border: @borderWidth solid @borderColor;
+
+/* Arrow */
+@arrowBackground: @background;
+@arrowZIndex: 1901;
+@arrowJitter: 0.05em;
+@arrowOffset: -(@arrowSize / 2) + @arrowJitter;
+
+@arrowStroke: @borderWidth;
+@arrowColor: darken(@borderColor, 10);
+
+/* Arrow color by position */
+@arrowTopBackground: @arrowBackground;
+@arrowCenterBackground: @arrowBackground;
+@arrowBottomBackground: @arrowBackground;
+
+@arrowBoxShadow: @arrowStroke @arrowStroke 0 0 @arrowColor;
+@leftArrowBoxShadow: @arrowStroke -@arrowStroke 0 0 @arrowColor;
+@rightArrowBoxShadow: -@arrowStroke @arrowStroke 0 0 @arrowColor;
+@bottomArrowBoxShadow: -@arrowStroke -@arrowStroke 0 0 @arrowColor;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Tooltip */
+@tooltipBackground: @background;
+@tooltipBorderRadius: @borderRadius;
+@tooltipPadding: @verticalPadding @horizontalPadding;
+@tooltipFontWeight: @fontWeight;
+@tooltipFontStyle: @fontStyle;
+@tooltipColor: @color;
+@tooltipBorder: @border;
+@tooltipBoxShadow: @boxShadow;
+@tooltipMaxWidth: none;
+@tooltipFontSize: @medium;
+@tooltipLineHeight: @lineHeight;
+@tooltipDistanceAway: @relative7px;
+@tooltipZIndex: 1900;
+@tooltipDuration: @defaultDuration;
+@tooltipEasing: @defaultEasing;
+
+/* Inverted */
+@tooltipInvertedBackground: @invertedBackground;
+@tooltipInvertedColor: @invertedColor;
+@tooltipInvertedBorder: @invertedBorder;
+@tooltipInvertedBoxShadow: @invertedBoxShadow;
+@tooltipInvertedHeaderBackground: @invertedHeaderBackground;
+@tooltipInvertedHeaderColor: @invertedHeaderColor;
+
+/* Arrow */
+@tooltipArrowVerticalOffset: -@2px;
+@tooltipArrowHorizontalOffset: -@1px;
+@tooltipArrowBoxShadow: @arrowBoxShadow;
+@tooltipArrowBackground: @arrowBackground;
+@tooltipArrowTopBackground: @arrowTopBackground;
+@tooltipArrowCenterBackground: @arrowCenterBackground;
+@tooltipArrowBottomBackground: @arrowBottomBackground;
+
+/*-------------------
+ Coupling
+--------------------*/
+
+/* Grid Inside Popup */
+@nestedGridMargin: -0.7rem -0.875rem; /* (padding * @medium) */
+@nestedGridWidth: e("calc(100% + 1.75rem)");
+
+/*-------------------
+ States
+--------------------*/
+
+@loadingZIndex: -1;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Wide */
+@wideWidth: 350px;
+@veryWideWidth: 550px;
+
+/* Inverted */
+@invertedBackground: @black;
+@invertedColor: @white;
+@invertedBorder: none;
+@invertedBoxShadow: none;
+
+@invertedHeaderBackground: none;
+@invertedHeaderColor: @white;
+@invertedArrowColor: @invertedBackground;
+
+/* Arrow color by position */
+@invertedArrowTopBackground: @invertedBackground;
+@invertedArrowCenterBackground: @invertedBackground;
+@invertedArrowBottomBackground: @invertedBackground;
diff --git a/assets/semantic/src/themes/default/modules/progress.overrides b/assets/semantic/src/themes/default/modules/progress.overrides
new file mode 100644
index 0000000..dcbb8f7
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/progress.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Progress
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/progress.variables b/assets/semantic/src/themes/default/modules/progress.variables
new file mode 100644
index 0000000..b09e780
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/progress.variables
@@ -0,0 +1,129 @@
+/*******************************
+ Progress
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@verticalSpacing: 1em;
+@margin: @verticalSpacing 0 (@labelHeight + @verticalSpacing);
+@firstMargin: 0 0 (@labelHeight + @verticalSpacing);
+@lastMargin: 0 0 (@labelHeight);
+
+@background: @strongTransparentBlack;
+@border: none;
+@boxShadow: none;
+@padding: 0;
+@borderRadius: @defaultBorderRadius;
+
+/* Bar */
+@barPosition: relative;
+@barHeight: 1.75em;
+@barBackground: #888888;
+@barBorderRadius: @borderRadius;
+@barTransitionEasing: @defaultEasing;
+@barTransitionDuration: @defaultDuration;
+@barTransition:
+ width @barTransitionDuration @barTransitionEasing,
+ background-color @barTransitionDuration @barTransitionEasing
+;
+@barInitialWidth: 0;
+@barMinWidth: 2em;
+
+/* Progress Bar Label */
+@progressWidth: auto;
+@progressSize: @relativeSmall;
+@progressPosition: absolute;
+@progressTop: 50%;
+@progressRight: 0.5em;
+@progressLeft: auto;
+@progressBottom: auto;
+@progressOffset: -0.5em;
+@progressColor: @invertedLightTextColor;
+@progressTextShadow: none;
+@progressFontWeight: @bold;
+@progressTextAlign: left;
+
+/* Label */
+@labelWidth: 100%;
+@labelHeight: 1.5em;
+@labelSize: 1em;
+@labelPosition: absolute;
+@labelTop: 100%;
+@labelLeft: 0;
+@labelRight: auto;
+@labelBottom: auto;
+@labelOffset: (@labelHeight - 1.3em);
+@labelColor: @textColor;
+@labelTextShadow: none;
+@labelFontWeight: @bold;
+@labelTextAlign: center;
+@labelTransition: color 0.4s @defaultEasing;
+
+/*-------------------
+ Types
+--------------------*/
+
+@indicatingFirstColor: #D95C5C;
+@indicatingSecondColor: #EFBC72;
+@indicatingThirdColor: #E6BB48;
+@indicatingFourthColor: #DDC928;
+@indicatingFifthColor: #B4D95C;
+@indicatingSixthColor: #66DA81;
+
+@indicatingFirstLabelColor: @textColor;
+@indicatingSecondLabelColor: @textColor;
+@indicatingThirdLabelColor: @textColor;
+@indicatingFourthLabelColor: @textColor;
+@indicatingFifthLabelColor: @textColor;
+@indicatingSixthLabelColor: @textColor;
+
+@invertedIndicatingFirstLabelColor: @invertedTextColor;
+@invertedIndicatingSecondLabelColor: @invertedTextColor;
+@invertedIndicatingThirdLabelColor: @invertedTextColor;
+@invertedIndicatingFourthLabelColor: @invertedTextColor;
+@invertedIndicatingFifthLabelColor: @invertedTextColor;
+@invertedIndicatingSixthLabelColor: @invertedTextColor;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Active */
+@activePulseColor: @white;
+@activePulseMaxOpacity: 0.3;
+@activePulseDuration: 2s;
+@activeMinWidth: @barMinWidth;
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Attached */
+@attachedBackground: transparent;
+@attachedHeight: 0.2rem;
+@attachedBorderRadius: @borderRadius;
+
+/* Inverted */
+@invertedBackground: @transparentWhite;
+@invertedBorder: none;
+@invertedBarBackground: @barBackground;
+@invertedProgressColor: @black;
+@invertedLabelColor: @white;
+
+/* Sizing */
+@miniBarHeight: 0.3em;
+@tinyBarHeight: 0.5em;
+@smallBarHeight: 1em;
+@largeBarHeight: 2.5em;
+@bigBarHeight: 3.5em;
+@hugeBarHeight: 4em;
+@massiveBarHeight: 5em;
+
+/* Indeterminate */
+@indeterminatePulseColor: @white;
+@indeterminatePulseDuration: @activePulseDuration;
+@indeterminatePulseDurationSlow: 4s;
+@indeterminatePulseDurationFast: 1s;
diff --git a/assets/semantic/src/themes/default/modules/rating.overrides b/assets/semantic/src/themes/default/modules/rating.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/rating.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/rating.variables b/assets/semantic/src/themes/default/modules/rating.variables
new file mode 100644
index 0000000..da5fba7
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/rating.variables
@@ -0,0 +1,47 @@
+/*******************************
+ Rating
+*******************************/
+
+@margin: 0 @relativeMini;
+@whiteSpace: nowrap;
+@verticalAlign: baseline;
+
+@iconCursor: pointer;
+@iconWidth: 1.25em;
+@iconHeight: auto;
+@iconTransition:
+ opacity @defaultDuration @defaultEasing,
+ background @defaultDuration @defaultEasing,
+ text-shadow @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing
+;
+
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Standard */
+@inactiveBackground: transparent;
+@inactiveColor: rgba(0, 0, 0, 0.15);
+
+@selectedBackground: @inactiveBackground;
+@selectedColor: @textColor;
+
+@activeBackground: @inactiveBackground;
+@activeColor: @darkTextColor;
+
+@shadowWidth: 1px;
+
+/*-------------------
+ States
+--------------------*/
+
+@interactiveActiveIconOpacity: 1;
+@interactiveSelectedIconOpacity: 1;
+
+/*-------------------
+ Variations
+--------------------*/
+
+@massive: 2rem;
diff --git a/assets/semantic/src/themes/default/modules/search.overrides b/assets/semantic/src/themes/default/modules/search.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/search.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/search.variables b/assets/semantic/src/themes/default/modules/search.variables
new file mode 100644
index 0000000..bbf4f21
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/search.variables
@@ -0,0 +1,181 @@
+/*******************************
+ Search
+*******************************/
+
+/* Search Prompt */
+@promptBackground: @inputBackground;
+@promptVerticalPadding: @inputVerticalPadding;
+@promptHorizontalPadding: @inputHorizontalPadding;
+@promptLineHeight: @inputLineHeight;
+@promptFontSize: @relativeMedium;
+@promptPadding: (@promptVerticalPadding + ((1em - @promptLineHeight) / 2)) @promptHorizontalPadding;
+@promptBorder: 1px solid @borderColor;
+@promptBorderRadius: @circularRadius;
+@promptColor: @textColor;
+@promptTransition:
+ background-color @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing,
+ border-color @defaultDuration @defaultEasing
+;
+@promptBoxShadow: 0 0 0 0 transparent inset;
+
+/* Mobile */
+@mobileMaxWidth: e("calc(100vw - 2rem)");
+
+/* Result Box */
+@resultsWidth: 18em;
+@resultsBackground: #FFFFFF;
+@resultsDistance: 0.5em;
+@resultsBorderRadius: @defaultBorderRadius;
+@resultsBorder: 1px solid @solidBorderColor;
+@resultsBoxShadow: @floatingShadow;
+
+/* Result */
+@resultFontSize: 1em;
+@resultVerticalPadding: @relativeTiny;
+@resultHorizontalPadding: @relativeLarge;
+@resultPadding: @resultVerticalPadding @resultHorizontalPadding;
+@resultTextColor: @textColor;
+@resultLineHeight: 1.33;
+@resultDivider: 1px solid @internalBorderColor;
+@resultLastDivider: none;
+
+/* Result Image */
+@resultImageFloat: right;
+@resultImageBackground: none;
+@resultImageWidth: 5em;
+@resultImageHeight: 3em;
+@resultImageBorderRadius: 0.25em;
+@resultImageMargin: 0 6em 0 0;
+
+/* Result Content */
+@resultTitleFont: @headerFont;
+@resultTitleMargin: -@headerLineHeightOffset 0 0;
+@resultTitleFontWeight: @bold;
+@resultTitleFontSize: @relativeMedium;
+@resultTitleColor: @darkTextColor;
+
+/* Result Scrolling */
+@scrollingMobileMaxResults: 4;
+@scrollingTabletMaxResults: 6;
+@scrollingComputerMaxResults: 8;
+@scrollingWidescreenMaxResults: 12;
+
+@scrollingResultHeight: (@resultVerticalPadding * 2) + @resultLineHeight;
+@scrollingMobileMaxResultsHeight: (@scrollingResultHeight * @scrollingMobileMaxResults);
+@scrollingTabletMaxResultsHeight: (@scrollingResultHeight * @scrollingTabletMaxResults);
+@scrollingComputerMaxResultsHeight: (@scrollingResultHeight * @scrollingComputerMaxResults);
+@scrollingWidescreenMaxResultsHeight: (@scrollingResultHeight * @scrollingWidescreenMaxResults);
+
+/* Description */
+@resultDescriptionFontSize: @relativeSmall;
+@resultDescriptionDistance: 0;
+@resultDescriptionColor: @lightTextColor;
+
+/* Price */
+@resultPriceFloat: right;
+@resultPriceColor: @green;
+
+/* Special Message */
+@messageVerticalPadding: 1em;
+@messageHorizontalPadding: 1em;
+@messageHeaderFontSize: @medium;
+@messageHeaderFontWeight: @bold;
+@messageHeaderColor: @textColor;
+@messageDescriptionDistance: 0.25rem;
+@messageDescriptionFontSize: 1em;
+@messageDescriptionColor: @textColor;
+
+/* All Results Link */
+@actionBorder: none;
+@actionBackground: @darkWhite;
+@actionPadding: @relativeSmall @relativeMedium;
+@actionColor: @textColor;
+@actionFontWeight: @bold;
+@actionAlign: center;
+
+
+/*******************************
+ States
+*******************************/
+
+/* Focus */
+@promptFocusBackground: @promptBackground;
+@promptFocusBorderColor: @selectedBorderColor;
+@promptFocusColor: @selectedTextColor;
+
+/* Hover */
+@resultHoverBackground: @offWhite;
+@actionHoverBackground: #E0E0E0;
+
+/* Loading */
+@invertedLoaderFillColor: rgba(0, 0, 0, 0.15);
+
+/* Active Category */
+@categoryActiveBackground: @darkWhite;
+@categoryNameActiveColor: @textColor;
+
+/* Active Result */
+@resultActiveBorderLeft: @internalBorderColor;
+@resultActiveBackground: @darkWhite;
+@resultActiveBoxShadow: none;
+@resultActiveTitleColor: @darkTextColor;
+@resultActiveDescriptionColor: @darkTextColor;
+@resultsZIndex: 998;
+
+
+/*******************************
+ Types
+*******************************/
+
+/* Selection */
+@selectionPromptBorderRadius: @defaultBorderRadius;
+
+@selectionCloseTop: 0;
+@selectionCloseTransition:
+ color @defaultDuration @defaultEasing,
+ opacity @defaultDuration @defaultEasing
+;
+@selectionCloseRight: 0;
+@selectionCloseIconOpacity: 0.8;
+@selectionCloseIconColor: '';
+@selectionCloseIconHoverOpacity: 1;
+@selectionCloseIconHoverColor: @red;
+
+@selectionCloseIconInputRight: 1.85714em;
+
+/* Category */
+@categoryBackground: @darkWhite;
+@categoryBoxShadow: none;
+@categoryDivider: 1px solid @internalBorderColor;
+@categoryTransition:
+ background @defaultDuration @defaultEasing,
+ border-color @defaultDuration @defaultEasing
+;
+
+@categoryResultsWidth: 28em;
+
+@categoryResultBackground: @white;
+@categoryResultLeftBorder: 1px solid @borderColor;
+@categoryResultDivider: @resultDivider;
+@categoryResultLastDivider: none;
+@categoryResultPadding: @resultPadding;
+@categoryResultTransition: @categoryTransition;
+
+@categoryNameWidth: 100px;
+@categoryNameBackground: transparent;
+@categoryNameFont: @pageFont;
+@categoryNameFontSize: 1em;
+@categoryNameWhitespace: nowrap;
+@categoryNamePadding: 0.4em 1em;
+@categoryNameFontWeight: @bold;
+@categoryNameColor: @lightTextColor;
+
+@miniSearchSize: @relativeMini;
+@tinySearchSize: @relativeTiny;
+@smallSearchSize: @relativeSmall;
+@largeSearchSize: @relativeLarge;
+@bigSearchSize: @relativeBig;
+@hugeSearchSize: @relativeHuge;
+@massiveSearchSize: @relativeMassive;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/modules/shape.overrides b/assets/semantic/src/themes/default/modules/shape.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/shape.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/shape.variables b/assets/semantic/src/themes/default/modules/shape.variables
new file mode 100644
index 0000000..3d4032c
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/shape.variables
@@ -0,0 +1,40 @@
+/*******************************
+ Shape
+*******************************/
+
+@display: inline-block;
+
+/* Animating */
+@perspective: 2000px;
+
+@duration: 0.6s;
+@easing: ease-in-out;
+
+@hiddenSideOpacity: 0.6;
+@animatingZIndex: 100;
+
+@transition:
+ transform @duration @easing,
+ left @duration @easing,
+ width @duration @easing,
+ height @duration @easing
+;
+@sideTransition: opacity @duration @easing;
+@backfaceVisibility: hidden;
+
+/* Side */
+@sideMargin: 0;
+
+/*--------------
+ Types
+---------------*/
+
+/* Cube */
+@cubeSize: 15em;
+@cubeBackground: #E6E6E6;
+@cubePadding: 2em;
+@cubeTextColor: @textColor;
+@cubeBoxShadow: 0 0 2px rgba(0, 0, 0, 0.3);
+
+@cubeTextAlign: center;
+@cubeFontSize: 2em;
diff --git a/assets/semantic/src/themes/default/modules/sidebar.overrides b/assets/semantic/src/themes/default/modules/sidebar.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/sidebar.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/sidebar.variables b/assets/semantic/src/themes/default/modules/sidebar.variables
new file mode 100644
index 0000000..9da0c04
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/sidebar.variables
@@ -0,0 +1,45 @@
+/*******************************
+ Sidebar
+*******************************/
+
+/*-------------------
+ Content
+--------------------*/
+
+/* Animation */
+@perspective: 1500px;
+@duration: 500ms;
+@easing: @defaultEasing;
+
+/* Dimmer */
+@dimmerColor: rgba(0, 0, 0, 0.4);
+@dimmerTransition: opacity @duration;
+
+/* Color below page */
+@canvasBackground: @lightBlack;
+
+/* Shadow */
+@boxShadow: 0 0 20px @borderColor;
+@horizontalBoxShadow: @boxShadow;
+@verticalBoxShadow: @boxShadow;
+
+/* Layering */
+@bottomLayer: 1;
+@middleLayer: 2;
+@fixedLayer: 101;
+@topLayer: 102;
+@dimmerLayer: 1000;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Width */
+@veryThinWidth: 60px;
+@thinWidth: 150px;
+@width: 260px;
+@wideWidth: 350px;
+@veryWideWidth: 475px;
+
+/* Height */
+@height: 36px;
diff --git a/assets/semantic/src/themes/default/modules/slider.overrides b/assets/semantic/src/themes/default/modules/slider.overrides
new file mode 100644
index 0000000..63c79de
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/slider.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Slider Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/slider.variables b/assets/semantic/src/themes/default/modules/slider.variables
new file mode 100644
index 0000000..b02f382
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/slider.variables
@@ -0,0 +1,83 @@
+/*******************************
+ Slider Variables
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@height : 1.5em;
+@hoverPointer : auto;
+@padding : 1em .5em;
+
+/* Track */
+@trackHeight : .4em;
+@trackPositionTop : (@height / 2) - (@trackHeight / 2);
+@background : #ccc;
+@trackBorderRadius : 4px;
+@trackColor : @transparentBlack;
+
+/* Track Fill */
+@trackFillHeight : @trackHeight;
+@trackFillColor : @black;
+@trackFillColorFocus : @blackHover;
+@invertedTrackFillColor : @lightBlack;
+@invertedTrackFillColorFocus : @lightBlackHover;
+@trackFillBorderRadius : @trackBorderRadius;
+
+/* Thumb */
+@thumbHeight : @height;
+@thumbBorderRadius : 100%;
+@thumbBackground : @white @subtleGradient;
+@thumbShadow : @subtleShadow, 0 0 0 1px @borderColor inset;
+@thumbTransitionDuration : 0.3s;
+@thumbTransition : background @thumbTransitionDuration @defaultEasing;
+@thumbVerticalSliderOffset: 0.03em;
+
+/* Thumb Hover */
+@thumbHoverPointer : pointer;
+@thumbHoverBackground : @whiteHover @subtleGradient;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Disabled */
+@disabledOpactiy : .5;
+@disabledTrackFillColor : @background;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Vertical */
+@verticalPadding : .5em 1em;
+
+/* Labeled */
+@labelHeight : @height;
+@labelWidth : 1px;
+@labelColor : @background;
+@labelPadding : 0.2em 0;
+
+/* Hover */
+@hoverVarOpacity : 0;
+@hoverVarHoverOpacity : 1;
+@hoverOpacityTransitionDuration : 0.2s;
+@hoverOpacityTransition : opacity @hoverOpacityTransitionDuration linear;
+
+/* Sizing */
+@smallHeight : 1em;
+@smallLabelHeight : @smallHeight;
+@smallTrackHeight : 0.3em;
+@smallTrackPositionTop : (@smallHeight / 2) - (@smallTrackHeight / 2);
+
+@largeHeight : 2em;
+@largeLabelHeight : @largeHeight;
+@largeTrackHeight : 0.5em;
+@largeTrackPositionTop : (@largeHeight / 2) - (@largeTrackHeight / 2);
+
+@bigHeight : 2.5em;
+@bigLabelHeight : @bigHeight;
+@bigTrackHeight : 0.6em;
+@bigTrackPositionTop : (@bigHeight / 2) - (@bigTrackHeight / 2);
+
diff --git a/assets/semantic/src/themes/default/modules/sticky.overrides b/assets/semantic/src/themes/default/modules/sticky.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/sticky.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/sticky.variables b/assets/semantic/src/themes/default/modules/sticky.variables
new file mode 100644
index 0000000..597bce1
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/sticky.variables
@@ -0,0 +1,7 @@
+/*******************************
+ Sticky
+*******************************/
+
+@transitionDuration: @defaultDuration;
+@transition: none;
+@zIndex: 800;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/modules/tab.overrides b/assets/semantic/src/themes/default/modules/tab.overrides
new file mode 100644
index 0000000..e2e56c6
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/tab.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Tab Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/tab.variables b/assets/semantic/src/themes/default/modules/tab.variables
new file mode 100644
index 0000000..f40ee78
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/tab.variables
@@ -0,0 +1,11 @@
+/*******************************
+ Tab
+*******************************/
+
+/* Loading */
+@loadingMinHeight: 250px;
+@loadingContentPosition: relative;
+@loadingContentOffset: -10000px;
+
+@loaderDistanceFromTop: 50%;
+@loaderSize: 2.5em;
diff --git a/assets/semantic/src/themes/default/modules/toast.overrides b/assets/semantic/src/themes/default/modules/toast.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/toast.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/modules/toast.variables b/assets/semantic/src/themes/default/modules/toast.variables
new file mode 100644
index 0000000..0867cab
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/toast.variables
@@ -0,0 +1,83 @@
+/*******************************
+ Toast
+*******************************/
+
+/* Container */
+@toastContainerDistance: @relative12px;
+
+/* Toast */
+@toastWidth: 350px;
+@toastBorderRadius: @defaultBorderRadius;
+@toastPadding: @inputPadding;
+@toastMarginBottom: -0.01em;
+@toastLeftRightMargin: 1px;
+@toastBoxMarginBottom: 0.5em;
+@toastMarginProgress: -0.2em;
+@toastMargin: 0 -@toastLeftRightMargin @toastMarginBottom;
+@toastTextColor: @invertedTextColor;
+@toastInvertedTextColor: @textColor;
+@toastNeutralTextColor: @textColor;
+
+/* Mobile */
+@mobileToastBreakpoint: 420px;
+@mobileWidth: 280px;
+
+/* on Hover */
+@toastOpacityOnHover: 1;
+@toastCursorOnHover: pointer;
+
+/* Color variations */
+@toastInfoColor: @infoColor;
+@toastWarningColor: @warningColor;
+@toastErrorColor: @errorColor;
+@toastSuccessColor: @successColor;
+@toastNeutralColor: @white;
+@toastInvertedColor: @black;
+
+@toastBoxBorder: 1px solid rgba(34, 36, 38, 0.12);
+
+/* Icon */
+@toastIconContentPadding: 3em;
+@toastIconFontSize: 1.5em;
+@toastIconMessageContentPadding: 5rem;
+@toastIconMessageWidth: 4rem;
+
+/* Image */
+@toastImageContentPadding: 1em;
+@toastAvatarImageContentPadding: 3em;
+@toastMiniImageContentPadding: 3.4em;
+@toastTinyImageContentPadding: 7em;
+@toastSmallImageContentPadding: 12em;
+
+@toastAvatarImageHeight: 2em;
+@toastMiniImageHeight: 35px;
+@toastTinyImageHeight: 80px;
+@toastSmallImageHeight: 150px;
+
+@toastIconCenteredAdjustment: 1.2em;
+@toastImageCenteredAdjustment: 2em;
+
+/* Progressbar Colors */
+@toastInfoProgressColor: darken(@toastInfoColor,15);
+@toastWarningProgressColor: darken(@toastWarningColor,15);
+@toastErrorProgressColor: darken(@toastErrorColor,15);
+@toastSuccessProgressColor: darken(@toastSuccessColor,15);
+@toastNeutralProgressColor: darken(@toastNeutralColor,15);
+
+/* Close Icon */
+@toastCloseTopDistance: 0.3em;
+@toastCloseRightDistance: 0.3em;
+@toastCloseOpacity: 0.7;
+@toastCloseTransition: opacity @defaultDuration @defaultEasing;
+@toastCloseDistance: 1.5em;
+@toastCloseDistanceVertical: 1em;
+
+/* Actions */
+@toastActionBackground: rgba(255, 255, 255, .25);
+@toastActionBorder: 1px solid rgba(0, 0, 0, .2);
+@toastActionMargin: -1em;
+@toastActionMarginTop: 0.5em;
+@toastActionMarginLeft: 1em;
+@toastActionMarginBottom: 0.3em;
+@toastActionPadding: 0.5em;
+@toastActionPaddingBottom: 0.75em;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/modules/transition.overrides b/assets/semantic/src/themes/default/modules/transition.overrides
new file mode 100644
index 0000000..0ff8025
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/transition.overrides
@@ -0,0 +1,997 @@
+/*******************************
+ Transitions
+*******************************/
+
+/*
+ Some transitions adapted from Animate CSS
+ https://github.com/daneden/animate.css
+
+ Additional transitions adapted from Glide
+ by Nick Pettit - https://github.com/nickpettit/glide
+*/
+
+& when (@variationTransitionBrowse) {
+ /*--------------
+ Browse
+ ---------------*/
+
+ .transition.browse {
+ animation-duration: 500ms;
+ }
+ .transition.browse.in {
+ animation-name: browseIn;
+ }
+ .transition.browse.out,
+ .transition.browse.left.out {
+ animation-name: browseOutLeft;
+ }
+ .transition.browse.right.out {
+ animation-name: browseOutRight;
+ }
+
+ /* In */
+ @keyframes browseIn {
+ 0% {
+ transform: scale(0.8) translateZ(0px);
+ z-index: -1;
+ }
+ 10% {
+ transform: scale(0.8) translateZ(0px);
+ z-index: -1;
+ opacity: 0.7;
+ }
+ 80% {
+ transform: scale(1.05) translateZ(0px);
+ opacity: 1;
+ z-index: 999;
+ }
+ 100% {
+ transform: scale(1) translateZ(0px);
+ z-index: 999;
+ }
+ }
+
+ /* Out */
+ @keyframes browseOutLeft {
+ 0% {
+ z-index: 999;
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg);
+ }
+ 50% {
+ z-index: -1;
+ transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
+ }
+ 80% {
+ opacity: 1;
+ }
+ 100% {
+ z-index: -1;
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
+ opacity: 0;
+ }
+ }
+ @keyframes browseOutRight {
+ 0% {
+ z-index: 999;
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg);
+ }
+ 50% {
+ z-index: 1;
+ transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
+ }
+ 80% {
+ opacity: 1;
+ }
+ 100% {
+ z-index: 1;
+ transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
+ opacity: 0;
+ }
+ }
+}
+
+& when (@variationTransitionDrop) {
+ /*--------------
+ Drop
+ ---------------*/
+
+ .drop.transition {
+ transform-origin: top center;
+ animation-duration: 400ms;
+ animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);
+ }
+ .drop.transition.in {
+ animation-name: dropIn;
+ }
+ .drop.transition.out {
+ animation-name: dropOut;
+ }
+
+ /* Drop */
+ @keyframes dropIn {
+ 0% {
+ opacity: 0;
+ transform: scale(0);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ }
+ @keyframes dropOut {
+ 0% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ 100% {
+ opacity: 0;
+ transform: scale(0);
+ }
+ }
+}
+
+& when (@variationTransitionFade) {
+ /*--------------
+ Fade
+ ---------------*/
+
+ .transition.fade.in {
+ animation-name: fadeIn;
+ }
+ .transition[class*="fade up"].in {
+ animation-name: fadeInUp;
+ }
+ .transition[class*="fade down"].in {
+ animation-name: fadeInDown;
+ }
+ .transition[class*="fade left"].in {
+ animation-name: fadeInLeft;
+ }
+ .transition[class*="fade right"].in {
+ animation-name: fadeInRight;
+ }
+
+ .transition.fade.out {
+ animation-name: fadeOut;
+ }
+ .transition[class*="fade up"].out {
+ animation-name: fadeOutUp;
+ }
+ .transition[class*="fade down"].out {
+ animation-name: fadeOutDown;
+ }
+ .transition[class*="fade left"].out {
+ animation-name: fadeOutLeft;
+ }
+ .transition[class*="fade right"].out {
+ animation-name: fadeOutRight;
+ }
+
+ /* In */
+ @keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ @keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(10%);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0%);
+ }
+ }
+ @keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-10%);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0%);
+ }
+ }
+ @keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(10%);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0%);
+ }
+ }
+ @keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(-10%);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0%);
+ }
+ }
+
+ /* Out */
+ @keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+ }
+ @keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ transform: translateY(0%);
+ }
+ 100% {
+ opacity: 0;
+ transform: translateY(5%);
+ }
+ }
+ @keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ transform: translateY(0%);
+ }
+ 100% {
+ opacity: 0;
+ transform: translateY(-5%);
+ }
+ }
+ @keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ transform: translateX(0%);
+ }
+ 100% {
+ opacity: 0;
+ transform: translateX(5%);
+ }
+ }
+ @keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ transform: translateX(0%);
+ }
+ 100% {
+ opacity: 0;
+ transform: translateX(-5%);
+ }
+ }
+}
+
+& when (@variationTransitionFlip) {
+ /*--------------
+ Flips
+ ---------------*/
+
+ .flip.transition.in,
+ .flip.transition.out {
+ animation-duration: 600ms;
+ }
+ .horizontal.flip.transition.in {
+ animation-name: horizontalFlipIn;
+ }
+ .horizontal.flip.transition.out {
+ animation-name: horizontalFlipOut;
+ }
+ .vertical.flip.transition.in {
+ animation-name: verticalFlipIn;
+ }
+ .vertical.flip.transition.out {
+ animation-name: verticalFlipOut;
+ }
+
+ /* In */
+ @keyframes horizontalFlipIn {
+ 0% {
+ transform: perspective(2000px) rotateY(-90deg);
+ opacity: 0;
+ }
+ 100% {
+ transform: perspective(2000px) rotateY(0deg);
+ opacity: 1;
+ }
+ }
+ @keyframes verticalFlipIn {
+ 0% {
+ transform: perspective(2000px) rotateX(-90deg);
+ opacity: 0;
+ }
+ 100% {
+ transform: perspective(2000px) rotateX(0deg);
+ opacity: 1;
+ }
+ }
+
+ /* Out */
+ @keyframes horizontalFlipOut {
+ 0% {
+ transform: perspective(2000px) rotateY(0deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: perspective(2000px) rotateY(90deg);
+ opacity: 0;
+ }
+ }
+ @keyframes verticalFlipOut {
+ 0% {
+ transform: perspective(2000px) rotateX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: perspective(2000px) rotateX(-90deg);
+ opacity: 0;
+ }
+ }
+}
+
+& when (@variationTransitionScale) {
+ /*--------------
+ Scale
+ ---------------*/
+
+ .scale.transition.in {
+ animation-name: scaleIn;
+ }
+ .scale.transition.out {
+ animation-name: scaleOut;
+ }
+
+ @keyframes scaleIn {
+ 0% {
+ opacity: 0;
+ transform: scale(0.8);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ }
+
+ /* Out */
+ @keyframes scaleOut {
+ 0% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ 100% {
+ opacity: 0;
+ transform: scale(0.9);
+ }
+ }
+}
+
+& when (@variationTransitionFly) {
+ /*--------------
+ Fly
+ ---------------*/
+
+ /* Inward */
+ .transition.fly {
+ animation-duration: 0.6s;
+ transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+ }
+ .transition.fly.in {
+ animation-name: flyIn;
+ }
+ .transition[class*="fly up"].in {
+ animation-name: flyInUp;
+ }
+ .transition[class*="fly down"].in {
+ animation-name: flyInDown;
+ }
+ .transition[class*="fly left"].in {
+ animation-name: flyInLeft;
+ }
+ .transition[class*="fly right"].in {
+ animation-name: flyInRight;
+ }
+
+ /* Outward */
+ .transition.fly.out {
+ animation-name: flyOut;
+ }
+ .transition[class*="fly up"].out {
+ animation-name: flyOutUp;
+ }
+ .transition[class*="fly down"].out {
+ animation-name: flyOutDown;
+ }
+ .transition[class*="fly left"].out {
+ animation-name: flyOutLeft;
+ }
+ .transition[class*="fly right"].out {
+ animation-name: flyOutRight;
+ }
+
+ /* In */
+ @keyframes flyIn {
+ 0% {
+ opacity: 0;
+ transform: scale3d(.3, .3, .3);
+ }
+ 20% {
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+ 40% {
+ transform: scale3d(.9, .9, .9);
+ }
+ 60% {
+ opacity: 1;
+ transform: scale3d(1.03, 1.03, 1.03);
+ }
+ 80% {
+ transform: scale3d(.97, .97, .97);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale3d(1, 1, 1);
+ }
+ }
+ @keyframes flyInUp {
+ 0% {
+ opacity: 0;
+ transform: translate3d(0, 1500px, 0);
+ }
+ 60% {
+ opacity: 1;
+ transform: translate3d(0, -20px, 0);
+ }
+ 75% {
+ transform: translate3d(0, 10px, 0);
+ }
+ 90% {
+ transform: translate3d(0, -5px, 0);
+ }
+ 100% {
+ transform: translate3d(0, 0, 0);
+ }
+ }
+ @keyframes flyInDown {
+ 0% {
+ opacity: 0;
+ transform: translate3d(0, -1500px, 0);
+ }
+ 60% {
+ opacity: 1;
+ transform: translate3d(0, 25px, 0);
+ }
+ 75% {
+ transform: translate3d(0, -10px, 0);
+ }
+ 90% {
+ transform: translate3d(0, 5px, 0);
+ }
+ 100% {
+ transform: none;
+ }
+ }
+ @keyframes flyInLeft {
+ 0% {
+ opacity: 0;
+ transform: translate3d(1500px, 0, 0);
+ }
+ 60% {
+ opacity: 1;
+ transform: translate3d(-25px, 0, 0);
+ }
+ 75% {
+ transform: translate3d(10px, 0, 0);
+ }
+ 90% {
+ transform: translate3d(-5px, 0, 0);
+ }
+ 100% {
+ transform: none;
+ }
+ }
+ @keyframes flyInRight {
+ 0% {
+ opacity: 0;
+ transform: translate3d(-1500px, 0, 0);
+ }
+ 60% {
+ opacity: 1;
+ transform: translate3d(25px, 0, 0);
+ }
+ 75% {
+ transform: translate3d(-10px, 0, 0);
+ }
+ 90% {
+ transform: translate3d(5px, 0, 0);
+ }
+ 100% {
+ transform: none;
+ }
+ }
+
+ /* Out */
+ @keyframes flyOut {
+ 20% {
+ transform: scale3d(.9, .9, .9);
+ }
+ 50%, 55% {
+ opacity: 1;
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+ 100% {
+ opacity: 0;
+ transform: scale3d(.3, .3, .3);
+ }
+ }
+ @keyframes flyOutUp {
+ 20% {
+ transform: translate3d(0, 10px, 0);
+ }
+ 40%, 45% {
+ opacity: 1;
+ transform: translate3d(0, -20px, 0);
+ }
+ 100% {
+ opacity: 0;
+ transform: translate3d(0, 2000px, 0);
+ }
+ }
+ @keyframes flyOutDown {
+ 20% {
+ transform: translate3d(0, -10px, 0);
+ }
+ 40%, 45% {
+ opacity: 1;
+ transform: translate3d(0, 20px, 0);
+ }
+ 100% {
+ opacity: 0;
+ transform: translate3d(0, -2000px, 0);
+ }
+ }
+ @keyframes flyOutRight {
+ 20% {
+ opacity: 1;
+ transform: translate3d(20px, 0, 0);
+ }
+ 100% {
+ opacity: 0;
+ transform: translate3d(-2000px, 0, 0);
+ }
+ }
+ @keyframes flyOutLeft {
+ 20% {
+ opacity: 1;
+ transform: translate3d(-20px, 0, 0);
+ }
+ 100% {
+ opacity: 0;
+ transform: translate3d(2000px, 0, 0);
+ }
+ }
+}
+
+& when (@variationTransitionSlide) {
+ /*--------------
+ Slide
+ ---------------*/
+
+ .transition.slide.in,
+ .transition[class*="slide down"].in {
+ animation-name: slideInY;
+ transform-origin: top center;
+ }
+ .transition[class*="slide up"].in {
+ animation-name: slideInY;
+ transform-origin: bottom center;
+ }
+ .transition[class*="slide left"].in {
+ animation-name: slideInX;
+ transform-origin: right center;
+ }
+ .transition[class*="slide right"].in {
+ animation-name: slideInX;
+ transform-origin: left center;
+ }
+
+ .transition.slide.out,
+ .transition[class*="slide down"].out {
+ animation-name: slideOutY;
+ transform-origin: top center;
+ }
+ .transition[class*="slide up"].out {
+ animation-name: slideOutY;
+ transform-origin: bottom center;
+ }
+ .transition[class*="slide left"].out {
+ animation-name: slideOutX;
+ transform-origin: right center;
+ }
+ .transition[class*="slide right"].out {
+ animation-name: slideOutX;
+ transform-origin: left center;
+ }
+
+ /* In */
+ @keyframes slideInY {
+ 0% {
+ opacity: 0;
+ transform: scaleY(0);
+ }
+ 100% {
+ opacity: 1;
+ transform: scaleY(1);
+ }
+ }
+ @keyframes slideInX {
+ 0% {
+ opacity: 0;
+ transform: scaleX(0);
+ }
+ 100% {
+ opacity: 1;
+ transform: scaleX(1);
+ }
+ }
+
+ /* Out */
+ @keyframes slideOutY {
+ 0% {
+ opacity: 1;
+ transform: scaleY(1);
+ }
+ 100% {
+ opacity: 0;
+ transform: scaleY(0);
+ }
+ }
+ @keyframes slideOutX {
+ 0% {
+ opacity: 1;
+ transform: scaleX(1);
+ }
+ 100% {
+ opacity: 0;
+ transform: scaleX(0);
+ }
+ }
+}
+
+& when (@variationTransitionSwing) {
+ /*--------------
+ Swing
+ ---------------*/
+
+ .transition.swing {
+ animation-duration: 800ms;
+ }
+
+ .transition[class*="swing down"].in {
+ animation-name: swingInX;
+ transform-origin: top center;
+ }
+ .transition[class*="swing up"].in {
+ animation-name: swingInX;
+ transform-origin: bottom center;
+ }
+ .transition[class*="swing left"].in {
+ animation-name: swingInY;
+ transform-origin: right center;
+ }
+ .transition[class*="swing right"].in {
+ animation-name: swingInY;
+ transform-origin: left center;
+ }
+
+ .transition.swing.out,
+ .transition[class*="swing down"].out {
+ animation-name: swingOutX;
+ transform-origin: top center;
+ }
+ .transition[class*="swing up"].out {
+ animation-name: swingOutX;
+ transform-origin: bottom center;
+ }
+ .transition[class*="swing left"].out {
+ animation-name: swingOutY;
+ transform-origin: right center;
+ }
+ .transition[class*="swing right"].out {
+ animation-name: swingOutY;
+ transform-origin: left center;
+ }
+
+ /* In */
+ @keyframes swingInX {
+ 0% {
+ transform: perspective(1000px) rotateX(90deg);
+ opacity: 0;
+ }
+ 40% {
+ transform: perspective(1000px) rotateX(-30deg);
+ opacity: 1;
+ }
+ 60% {
+ transform: perspective(1000px) rotateX(15deg);
+ }
+ 80% {
+ transform: perspective(1000px) rotateX(-7.5deg);
+ }
+ 100% {
+ transform: perspective(1000px) rotateX(0deg);
+ }
+ }
+ @keyframes swingInY {
+ 0% {
+ transform: perspective(1000px) rotateY(-90deg);
+ opacity: 0;
+ }
+ 40% {
+ transform: perspective(1000px) rotateY(30deg);
+ opacity: 1;
+ }
+ 60% {
+ transform: perspective(1000px) rotateY(-17.5deg);
+ }
+ 80% {
+ transform: perspective(1000px) rotateY(7.5deg);
+ }
+ 100% {
+ transform: perspective(1000px) rotateY(0deg);
+ }
+ }
+
+ /* Out */
+ @keyframes swingOutX {
+ 0% {
+ transform: perspective(1000px) rotateX(0deg);
+ }
+ 40% {
+ transform: perspective(1000px) rotateX(-7.5deg);
+ }
+ 60% {
+ transform: perspective(1000px) rotateX(17.5deg);
+ }
+ 80% {
+ transform: perspective(1000px) rotateX(-30deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: perspective(1000px) rotateX(90deg);
+ opacity: 0;
+ }
+ }
+ @keyframes swingOutY {
+ 0% {
+ transform: perspective(1000px) rotateY(0deg);
+ }
+ 40% {
+ transform: perspective(1000px) rotateY(7.5deg);
+ }
+ 60% {
+ transform: perspective(1000px) rotateY(-10deg);
+ }
+ 80% {
+ transform: perspective(1000px) rotateY(30deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: perspective(1000px) rotateY(-90deg);
+ opacity: 0;
+ }
+ }
+}
+
+& when (@variationTransitionZoom) {
+ /*--------------
+ Zoom
+ ---------------*/
+
+ .transition.zoom.in {
+ animation-name: zoomIn;
+ }
+ .transition.zoom.out {
+ animation-name: zoomOut;
+ }
+ @keyframes zoomIn {
+ 0% {
+ opacity: 1;
+ transform: scale(0);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ }
+ @keyframes zoomOut {
+ 0% {
+ opacity: 1;
+ transform: scale(1);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale(0);
+ }
+ }
+}
+
+
+/*******************************
+ Static Animations
+*******************************/
+
+/*--------------
+ Emphasis
+---------------*/
+
+& when (@variationTransitionFlash) {
+ .flash.transition {
+ animation-duration: 750ms;
+ animation-name: flash;
+ }
+}
+& when (@variationTransitionShake) {
+ .shake.transition {
+ animation-duration: 750ms;
+ animation-name: shake;
+ }
+}
+& when (@variationTransitionBounce) {
+ .bounce.transition {
+ animation-duration: 750ms;
+ animation-name: bounce;
+ }
+}
+& when (@variationTransitionTada) {
+ .tada.transition {
+ animation-duration: 750ms;
+ animation-name: tada;
+ }
+}
+& when (@variationTransitionPulse) {
+ .pulse.transition {
+ animation-duration: 500ms;
+ animation-name: pulse;
+ }
+}
+& when (@variationTransitionJiggle) {
+ .jiggle.transition {
+ animation-duration: 750ms;
+ animation-name: jiggle;
+ }
+}
+& when (@variationTransitionGlow) {
+ .transition.glow {
+ animation-duration: 2000ms;
+ animation-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
+ }
+
+ .transition.glow {
+ animation-name: glow;
+ }
+}
+
+& when (@variationTransitionFlash) {
+ /* Flash */
+ @keyframes flash {
+ 0%, 50%, 100% {
+ opacity: 1;
+ }
+ 25%, 75% {
+ opacity: 0;
+ }
+ }
+}
+& when (@variationTransitionShake) {
+ /* Shake */
+ @keyframes shake {
+ 0%, 100% {
+ transform: translateX(0);
+ }
+ 10%, 30%, 50%, 70%, 90% {
+ transform: translateX(-10px);
+ }
+ 20%, 40%, 60%, 80% {
+ transform: translateX(10px);
+ }
+ }
+}
+& when (@variationTransitionBounce) {
+ /* Bounce */
+ @keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ transform: translateY(0);
+ }
+ 40% {
+ transform: translateY(-30px);
+ }
+ 60% {
+ transform: translateY(-15px);
+ }
+ }
+}
+& when (@variationTransitionTada) {
+ /* Tada */
+ @keyframes tada {
+ 0% {
+ transform: scale(1);
+ }
+ 10%, 20% {
+ transform: scale(0.9) rotate(-3deg);
+ }
+ 30%, 50%, 70%, 90% {
+ transform: scale(1.1) rotate(3deg);
+ }
+ 40%, 60%, 80% {
+ transform: scale(1.1) rotate(-3deg);
+ }
+ 100% {
+ transform: scale(1) rotate(0);
+ }
+ }
+}
+& when (@variationTransitionPulse) {
+ /* Pulse */
+ @keyframes pulse {
+ 0% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ 50% {
+ transform: scale(0.9);
+ opacity: 0.7;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ }
+
+}
+& when (@variationTransitionJiggle) {
+ /* Jiggle */
+ @keyframes jiggle {
+ 0% {
+ transform: scale3d(1, 1, 1);
+ }
+ 30% {
+ transform: scale3d(1.25, 0.75, 1);
+ }
+ 40% {
+ transform: scale3d(0.75, 1.25, 1);
+ }
+ 50% {
+ transform: scale3d(1.15, 0.85, 1);
+ }
+ 65% {
+ transform: scale3d(.95, 1.05, 1);
+ }
+ 75% {
+ transform: scale3d(1.05, .95, 1);
+ }
+ 100% {
+ transform: scale3d(1, 1, 1);
+ }
+ }
+}
+& when (@variationTransitionGlow) {
+ /* Glow */
+ @keyframes glow {
+ 0% {
+ background-color: #FCFCFD;
+ }
+ 30% {
+ background-color: #FFF6CD;
+ }
+ 100% {
+ background-color: #FCFCFD;
+ }
+ }
+}
+
diff --git a/assets/semantic/src/themes/default/modules/transition.variables b/assets/semantic/src/themes/default/modules/transition.variables
new file mode 100644
index 0000000..9d209fa
--- /dev/null
+++ b/assets/semantic/src/themes/default/modules/transition.variables
@@ -0,0 +1,10 @@
+/*******************************
+ Transition
+*******************************/
+
+@transitionDefaultEasing: @defaultEasing;
+@transitionDefaultFill: both;
+@transitionDefaultDuration: 300ms;
+
+@use3DAcceleration: translateZ(0);
+@backfaceVisibility: hidden;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/default/views/ad.overrides b/assets/semantic/src/themes/default/views/ad.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/ad.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/views/ad.variables b/assets/semantic/src/themes/default/views/ad.variables
new file mode 100644
index 0000000..4f4e6bb
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/ad.variables
@@ -0,0 +1,13 @@
+/*******************************
+ Advertisement
+*******************************/
+
+@margin: 1em 0;
+@overflow: hidden;
+
+@testBackground: @lightBlack;
+@testColor: @white;
+@testFontWeight: @bold;
+@testText: 'Ad';
+@testFontSize: @relativeMedium;
+@testMobileFontSize: @relativeTiny;
diff --git a/assets/semantic/src/themes/default/views/card.overrides b/assets/semantic/src/themes/default/views/card.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/card.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/views/card.variables b/assets/semantic/src/themes/default/views/card.variables
new file mode 100644
index 0000000..38d2415
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/card.variables
@@ -0,0 +1,241 @@
+/*******************************
+ Card
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+/* Shadow */
+@shadowDistance: 1px;
+@shadowBoxShadow: 0 @shadowDistance 3px 0 @solidBorderColor;
+
+/* Card */
+@fontFamily: @pageFont;
+@display: flex;
+@background: @white;
+@borderRadius: @defaultBorderRadius;
+@margin: 1em 0;
+@minHeight: 0;
+@padding: 0;
+@width: 290px;
+@borderWidth: 1px;
+@borderShadow: 0 0 0 @borderWidth @solidBorderColor;
+@boxShadow:
+ @shadowBoxShadow,
+ @borderShadow
+;
+@border: none;
+@zIndex: '';
+@transition:
+ box-shadow @defaultDuration @defaultEasing,
+ transform @defaultDuration @defaultEasing
+;
+
+/* Card Group */
+@horizontalSpacing: 1em;
+@rowSpacing: 1.75em;
+
+@groupMargin: -(@rowSpacing / 2) -(@horizontalSpacing / 2);
+@groupDisplay: flex;
+
+@groupCardFloat: none;
+@groupCardDisplay: flex;
+@groupCardMargin: (@rowSpacing / 2) (@horizontalSpacing / 2);
+
+/* Consecutive Cards */
+@consecutiveGroupDistance: (@rowSpacing / 2);
+
+/*-------------------
+ Content
+--------------------*/
+
+
+/* Image */
+@imageBackground: @transparentBlack;
+@imagePadding: 0;
+@imageBorder: none;
+@imageBoxShadow: none;
+@imageBorder: none;
+
+/* Content */
+@contentDivider: @borderWidth solid @internalBorderColor;
+@contentMargin: 0;
+@contentBackground: none;
+@contentPadding: 1em 1em;
+@contentFontSize: 1em;
+@contentBorderRadius: 0;
+@contentBoxShadow: none;
+@contentBorder: none;
+
+
+/* Header */
+@headerMargin: '';
+@headerFontWeight: @bold;
+@headerFontSize: @relativeBig;
+@headerLineHeightOffset: -(@lineHeight - 1em) / 2;
+@headerColor: @darkTextColor;
+
+/* Metadata */
+@metaFontSize: @relativeMedium;
+@metaSpacing: 0.3em;
+@metaColor: @lightTextColor;
+
+/* Icons */
+@actionOpacity: 0.75;
+@actionHoverOpacity: 1;
+@actionTransition: color @defaultDuration @defaultEasing;
+
+@starColor: #FFB70A;
+@starActiveColor: #FFE623;
+
+@likeColor: #FF2733;
+@likeActiveColor: #FF2733;
+
+/* Links */
+@contentLinkColor: '';
+@contentLinkHoverColor: '';
+@contentLinkTransition: color @defaultDuration @defaultEasing;
+
+@headerLinkColor: @headerColor;
+@headerLinkHoverColor: @linkHoverColor;
+
+@metaLinkColor: @lightTextColor;
+@metaLinkHoverColor: @textColor;
+
+/* Description */
+@descriptionDistance: 0.5em;
+@descriptionColor: rgba(0, 0, 0, 0.68);
+
+/* Content Image */
+@contentImageWidth: '';
+@contentImageVerticalAlign: middle;
+
+/* Avatar Image */
+@avatarSize: 2em;
+@avatarBorderRadius: @circularRadius;
+
+/* Paragraph */
+@paragraphDistance: 0.5em;
+
+/* Dimmer */
+@dimmerZIndex: 10;
+@dimmerColor: '';
+
+/* Additional Content */
+@extraDivider: 1px solid rgba(0, 0, 0, 0.05);
+@extraBackground: none;
+@extraPosition: static;
+@extraWidth: auto;
+@extraTop: 0;
+@extraLeft: 0;
+@extraMargin: 0 0;
+@extraPadding: 0.75em 1em;
+@extraBoxShadow: none;
+@extraColor: @lightTextColor;
+@extraTransition: color @defaultDuration @defaultEasing;
+
+/* Extra Links */
+@extraLinkColor: @unselectedTextColor;
+@extraLinkHoverColor: @linkHoverColor;
+
+/* Buttons */
+@buttonMargin: 0 -@borderWidth;
+@buttonWidth: e(%("calc(100%% + %d)", @borderWidth * 2));
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Link */
+@linkHoverBackground: @white;
+@linkHoverBorder: @border;
+@linkHoverZIndex: 5;
+@linkHoverRaiseDistance: 3px;
+@linkHoverTransform: translateY(-@linkHoverRaiseDistance);
+
+@shadowHoverBoxShadow: 0 @shadowDistance @linkHoverRaiseDistance 0 @solidSelectedBorderColor;
+@linkHoverBoxShadow:
+ @shadowHoverBoxShadow,
+ @borderShadow
+;
+
+/* Horizontal */
+@horizontalMinWidth: 270px;
+@horizontalWidth: 400px;
+@horizontalImageWidth: 150px;
+
+/* Raised */
+@raisedShadow:
+ @borderShadow,
+ @floatingShadow
+;
+@raisedShadowHover:
+ @borderShadow,
+ @floatingShadowHover
+;
+
+/* Card Count */
+@wideCardSpacing: 1em;
+@cardSpacing: 0.75em;
+@smallCardSpacing: 0.5em;
+
+@oneCardSpacing: 0;
+@twoCardSpacing: @wideCardSpacing;
+@threeCardSpacing: @wideCardSpacing;
+@fourCardSpacing: @cardSpacing;
+@fiveCardSpacing: @cardSpacing;
+@sixCardSpacing: @cardSpacing;
+@sevenCardSpacing: @smallCardSpacing;
+@eightCardSpacing: @smallCardSpacing;
+@nineCardSpacing: @smallCardSpacing;
+@tenCardSpacing: @smallCardSpacing;
+
+@oneCard: @oneColumn;
+@oneCardOffset: 0;
+@twoCard: e(%("calc(%d - %d)", @twoColumn, @twoCardSpacing * 2));
+@twoCardOffset: -@twoCardSpacing;
+@threeCard: e(%("calc(%d - %d)", @threeColumn, @threeCardSpacing * 2));
+@threeCardOffset: -@threeCardSpacing;
+@fourCard: e(%("calc(%d - %d)", @fourColumn, @fourCardSpacing * 2));
+@fourCardOffset: -@fourCardSpacing;
+@fiveCard: e(%("calc(%d - %d)", @fiveColumn, @fiveCardSpacing * 2));
+@fiveCardOffset: -@fiveCardSpacing;
+@sixCard: e(%("calc(%d - %d)", @sixColumn, @sixCardSpacing * 2));
+@sixCardOffset: -@sixCardSpacing;
+@sevenCard: e(%("calc(%d - %d)", @sevenColumn, @sevenCardSpacing * 2));
+@sevenCardOffset: -@sevenCardSpacing;
+@eightCard: e(%("calc(%d - %d)", @eightColumn, @sevenCardSpacing * 2));
+@eightCardOffset: -@sevenCardSpacing;
+@nineCard: e(%("calc(%d - %d)", @nineColumn, @nineCardSpacing * 2));
+@nineCardOffset: -@nineCardSpacing;
+@tenCard: e(%("calc(%d - %d)", @tenColumn, @tenCardSpacing * 2));
+@tenCardOffset: -@tenCardSpacing;
+
+/* Stackable */
+@stackableRowSpacing: 1em;
+@stackableCardSpacing: 1em;
+@stackableMargin: e(%("calc(%d - %d)", @oneColumn, @stackableCardSpacing * 2));
+
+/* Sizes */
+@medium: 1em;
+
+/* Colored */
+@coloredShadowDistance: 2px;
+
+/* Inverted */
+@invertedBackground: @black;
+@invertedContentDivider: @borderWidth solid rgba(255, 255, 255, 0.15);
+@invertedHeaderColor: @invertedTextColor;
+@invertedDescriptionColor: @invertedMutedTextColor;
+@invertedMetaColor: @invertedLightTextColor;
+@invertedMetaLinkColor: @invertedLightTextColor;
+@invertedMetaLinkHoverColor: @invertedHoveredTextColor;
+@invertedExtraColor: @invertedLightTextColor;
+@invertedExtraLinkColor: @invertedUnselectedTextColor;
+@invertedExtraDivider: 1px solid rgba(255, 255, 255, 0.15);
+@invertedLinkHoverBackground: @black;
+@invertedBoxShadow:
+ 0 @shadowDistance 3px 0 @solidWhiteBorderColor,
+ 0 0 0 @borderWidth @solidWhiteBorderColor
+;
diff --git a/assets/semantic/src/themes/default/views/comment.overrides b/assets/semantic/src/themes/default/views/comment.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/comment.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/views/comment.variables b/assets/semantic/src/themes/default/views/comment.variables
new file mode 100644
index 0000000..a8aa7c3
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/comment.variables
@@ -0,0 +1,98 @@
+/*******************************
+ Comments
+*******************************/
+
+
+/*-------------------
+ View
+--------------------*/
+
+@maxWidth: 650px;
+@margin: 1.5em 0;
+
+/*-------------------
+ Elements
+--------------------*/
+
+/* Comment */
+@commentBackground: none;
+@commentMargin: 0.5em 0 0;
+@commentPadding: 0.5em 0 0;
+@commentDivider: none;
+@commentBorder: none;
+@commentLineHeight: 1.2;
+@firstCommentMargin: 0;
+@firstCommentPadding: 0;
+
+/* Nested Comment */
+@nestedCommentsMargin: 0 0 0.5em 0.5em;
+@nestedCommentsPadding: 1em 0 1em 1em;
+
+@nestedCommentDivider: none;
+@nestedCommentBorder: none;
+@nestedCommentBackground: none;
+
+/* Avatar */
+@avatarDisplay: block;
+@avatarFloat: left;
+@avatarWidth: 2.5em;
+@avatarHeight: auto;
+@avatarSpacing: 1em;
+@avatarMargin: (@commentLineHeight - 1em) 0 0;
+@avatarBorderRadius: 0.25rem;
+
+/* Content */
+@contentMargin: @avatarWidth + @avatarSpacing;
+
+/* Author */
+@authorFontSize: 1em;
+@authorColor: @textColor;
+@authorHoverColor: @linkHoverColor;
+@authorFontWeight: @bold;
+
+/* Metadata */
+@metadataDisplay: inline-block;
+@metadataFontSize: 0.875em;
+@metadataSpacing: 0.5em;
+@metadataContentSpacing: 0.5em;
+@metadataColor: @lightTextColor;
+
+/* Text */
+@textFontSize: 1em;
+@textMargin: 0.25em 0 0.5em;
+@textWordWrap: break-word;
+@textLineHeight: 1.3;
+
+/* Actions */
+@actionFontSize: 0.875em;
+@actionContentDistance: 0.75em;
+@actionLinkColor: @unselectedTextColor;
+@actionLinkHoverColor: @hoveredTextColor;
+
+/* Reply */
+@replyDistance: 1em;
+@replyHeight: 12em;
+@replyFontSize: 1em;
+
+@commentReplyDistance: @replyDistance;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Threaded */
+@threadedCommentMargin: -1.5em 0 -1em (@avatarWidth / 2);
+@threadedCommentPadding: 3em 0 2em 2.25em;
+@threadedCommentBoxShadow: -1px 0 0 @borderColor;
+
+
+/* Minimal */
+@minimalActionPosition: absolute;
+@minimalActionTop: 0;
+@minimalActionRight: 0;
+@minimalActionLeft: auto;
+
+@minimalTransitionDelay: 0.1s;
+@minimalEasing: @defaultEasing;
+@minimalDuration: 0.2s;
+@minimalTransition: opacity @minimalDuration @minimalEasing;
diff --git a/assets/semantic/src/themes/default/views/feed.overrides b/assets/semantic/src/themes/default/views/feed.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/feed.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/views/feed.variables b/assets/semantic/src/themes/default/views/feed.variables
new file mode 100644
index 0000000..08fae65
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/feed.variables
@@ -0,0 +1,141 @@
+/*******************************
+ Feed
+*******************************/
+
+/*-------------------
+ Feed
+--------------------*/
+
+@margin: 1em 0;
+
+/*-------------------
+ Elements
+--------------------*/
+
+/* Event */
+@eventWidth: 100%;
+@eventPadding: @3px 0;
+@eventMargin: 0;
+@eventBackground: none;
+@eventDivider: none;
+
+/* Event Label */
+@labelWidth: 2.5em;
+@labelHeight: auto;
+@labelAlignSelf: stretch;
+@labelTextAlign: left;
+
+/* Icon Label */
+@iconLabelOpacity: 1;
+@iconLabelWidth: 100%;
+@iconLabelSize: 1.5em;
+@iconLabelPadding: 0.25em;
+@iconLabelBackground: none;
+@iconLabelBorderRadius: none;
+@iconLabelBorder: none;
+@iconLabelColor: rgba(0, 0, 0, 0.6);
+
+/* Image Label */
+@imageLabelWidth: 100%;
+@imageLabelHeight: auto;
+@imageLabelBorderRadius: @circularRadius;
+
+/* Content w/ Label */
+@labeledContentMargin: 0.5em 0 @relative5px @relativeLarge;
+@lastLabeledContentPadding: 0;
+
+/* Content */
+@contentAlignSelf: stretch;
+@contentTextAlign: left;
+@contentWordWrap: break-word;
+
+/* Date */
+@dateMargin: -0.5rem 0 0;
+@datePadding: 0;
+@dateColor: @lightTextColor;
+@dateFontSize: @relativeMedium;
+@dateFontWeight: @normal;
+@dateFontStyle: @normal;
+
+/* Summary */
+@summaryMargin: 0;
+@summaryFontSize: @relativeMedium;
+@summaryFontWeight: @bold;
+@summaryColor: @textColor;
+
+/* Summary Image */
+@summaryImageWidth: auto;
+@summaryImageHeight: 10em;
+@summaryImageMargin: -0.25em 0.25em 0 0;
+@summaryImageVerticalAlign: middle;
+@summaryImageBorderRadius: 0.25em;
+
+/* Summary Date */
+@summaryDateDisplay: inline-block;
+@summaryDateFloat: none;
+@summaryDateMargin: 0 0 0 0.5em;
+@summaryDatePadding: 0;
+@summaryDateFontSize: @relativeTiny;
+@summaryDateFontWeight: @dateFontWeight;
+@summaryDateFontStyle: @dateFontStyle;
+@summaryDateColor: @dateColor;
+
+/* User */
+@userFontWeight: @bold;
+@userDistance: 0;
+@userImageWidth: @summaryImageWidth;
+@userImageHeight: @summaryImageHeight;
+@userImageMargin: @summaryImageMargin;
+@userImageVerticalAlign: @summaryImageVerticalAlign;
+
+/* Extra Summary Data */
+@extraMargin: 0.5em 0 0;
+@extraBackground: none;
+@extraPadding: 0;
+@extraColor: @textColor;
+
+/* Extra Images */
+@extraImageMargin: 0 0.25em 0 0;
+@extraImageWidth: 6em;
+
+/* Extra Text */
+@extraTextPadding: 0;
+@extraTextPointer: none;
+@extraTextFontSize: @relativeMedium;
+@extraTextLineHeight: @lineHeight;
+@extraTextMaxWidth: 500px;
+
+/* Metadata Group */
+@metadataDisplay: inline-block;
+@metadataFontSize: @relativeTiny;
+@metadataMargin: 0.5em 0 0;
+@metadataBackground: none;
+@metadataBorder: none;
+@metadataBorderRadius: 0;
+@metadataBoxShadow: none;
+@metadataPadding: 0;
+@metadataColor: rgba(0, 0, 0, 0.6);
+
+@metadataElementSpacing: 0.75em;
+
+/* Like */
+@likeColor: '';
+@likeHoverColor: #FF2733;
+@likeActiveColor: #EF404A;
+@likeTransition: 0.2s color ease;
+
+/* Metadata Divider */
+@metadataDivider: '';
+@metadataDividerColor: rgba(0, 0, 0, 0.2);
+@metadataDividerOffset: -1em;
+
+@metadataActionCursor: pointer;
+@metadataActionOpacity: 1;
+@metadataActionColor: rgba(0, 0, 0, 0.5);
+@metadataActionTransition: color @defaultDuration @defaultEasing;
+
+@metadataActionHoverColor: @selectedTextColor;
+
+/*-------------------
+ Variations
+--------------------*/
diff --git a/assets/semantic/src/themes/default/views/item.overrides b/assets/semantic/src/themes/default/views/item.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/item.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/views/item.variables b/assets/semantic/src/themes/default/views/item.variables
new file mode 100644
index 0000000..0add81d
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/item.variables
@@ -0,0 +1,186 @@
+/*******************************
+ Item
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+/* Group */
+@groupMargin: 1.5em 0;
+
+/* Item */
+@display: flex;
+@background: transparent;
+@borderRadius: 0;
+@minHeight: 0;
+@padding: 0;
+@width: 100%;
+@boxShadow: none;
+@border: none;
+@zIndex: '';
+@transition: box-shadow @defaultDuration @defaultEasing;
+
+/* Responsive */
+@itemSpacing: 1em;
+@imageWidth: 175px;
+@contentImageDistance: 1.5em;
+
+@tabletItemSpacing: 1em;
+@tabletImageWidth: 150px;
+@tabletContentImageDistance: 1em;
+
+@mobileItemSpacing: 2em;
+@mobileImageWidth: auto;
+@mobileImageMaxHeight: 250px;
+@mobileContentImageDistance: 1.5em;
+
+
+/*-------------------
+ Content
+--------------------*/
+
+/* Image */
+@imageDisplay: block;
+@imageFloat: none;
+@imageMaxHeight: '';
+@imageVerticalAlign: start;
+@imageMargin: 0;
+@imagePadding: 0;
+@imageBorder: none;
+@imageBorderRadius: 0.125rem;
+@imageBoxShadow: none;
+@imageBorder: none;
+
+/* Content */
+@contentDisplay: block;
+@contentVerticalAlign: start;
+
+@contentWidth: auto;
+@contentOffset: 0;
+@contentBackground: none;
+@contentMargin: 0;
+@contentPadding: 0;
+@contentFontSize: 1em;
+@contentBorder: none;
+@contentBorderRadius: 0;
+@contentBoxShadow: none;
+@contentColor: @textColor;
+
+/* Header */
+@headerMargin: -@lineHeightOffset 0 0;
+@headerFontWeight: @bold;
+@headerFontSize: @relativeBig;
+@headerColor: @darkTextColor;
+
+/* Metadata */
+@metaMargin: 0.5em 0 0.5em;
+@metaFontSize: 1em;
+@metaLineHeight: 1em;
+@metaSpacing: 0.3em;
+@metaColor: rgba(0, 0, 0, 0.6);
+
+/* Icons */
+@actionOpacity: 0.75;
+@actionHoverOpacity: 1;
+@actionTransition: color @defaultDuration @defaultEasing;
+
+/* Actions */
+@favoriteColor: #FFB70A;
+@favoriteActiveColor: #FFE623;
+@likeColor: #FF2733;
+@likeActiveColor: #FF2733;
+
+/* Links */
+@headerLinkColor: @headerColor;
+@headerLinkHoverColor: @linkHoverColor;
+@metaLinkColor: @lightTextColor;
+@metaLinkHoverColor: @textColor;
+@contentLinkColor: '';
+@contentLinkHoverColor: '';
+@contentLinkTransition: color @defaultDuration @defaultEasing;
+
+
+/* Description */
+@descriptionDistance: 0.6em;
+@descriptionMaxWidth: auto;
+@descriptionFontSize: 1em;
+@descriptionLineHeight: @lineHeight;
+@descriptionColor: @textColor;
+
+/* Content Image */
+@contentImageWidth: '';
+@contentImageVerticalAlign: center;
+
+/* Avatar Image */
+@avatarSize: @contentImageWidth;
+@avatarBorderRadius: @circularRadius;
+
+/* Paragraph */
+@paragraphDistance: 0.5em;
+
+/* Additional Content */
+@extraDivider: none;
+@extraHorizontalSpacing: 0.5rem;
+@extraRowSpacing: 0.5rem;
+
+@extraBackground: none;
+@extraDisplay: block;
+@extraPosition: relative;
+@extraMargin: (1rem - @extraRowSpacing) 0 0;
+@extraTop: 0;
+@extraLeft: 0;
+@extraWidth: 100%;
+@extraPadding: 0 0 0;
+@extraBoxShadow: none;
+@extraColor: @lightTextColor;
+@extraTransition: color @defaultDuration @defaultEasing;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Relaxed */
+@relaxedItemSpacing: 1.5em;
+@veryRelaxedItemSpacing: 2em;
+
+/* Divided */
+@dividedBorder: 1px solid @borderColor;
+@dividedMargin: 0;
+@dividedPadding: 1em 0;
+
+@dividedFirstLastMargin: 0;
+@dividedFirstLastPadding: 0;
+
+
+/* Unstackable */
+@unstackableMobileImageWidth: 125px;
+
+/* Inverted */
+@invertedBackground: @background;
+@invertedContentBackground: @contentBackground;
+@invertedExtraBackground: @extraBackground;
+@invertedHeaderColor: @invertedTextColor;
+@invertedHeaderLinkColor: @invertedHeaderColor;
+@invertedHeaderLinkHoverColor: @invertedHoveredTextColor;
+@invertedMetaLinkColor: @invertedLightTextColor;
+@invertedMetaLinkHoverColor: @invertedTextColor;
+@invertedContentColor: @invertedTextColor;
+@invertedContentLinkColor: lighten(saturate(@linkColor, 30), 25, relative);
+@invertedContentLinkHoverColor: @linkColor;
+@invertedExtraColor: @invertedLightTextColor;
+@invertedDescriptionColor: @invertedTextColor;
+@invertedMetaColor: rgba(255, 255, 255, 0.8);
+@invertedLikeColor: lighten(@likeColor,10);
+@invertedLikeActiveColor: lighten(@likeActiveColor,10);
+@invertedFavoriteColor: lighten(@favoriteColor,10);
+@invertedFavoriteActiveColor: lighten(@favoriteActiveColor,10);
+@invertedDividedBorder: 1px solid @whiteBorderColor;
+
+@miniItemSize: @relativeMini;
+@tinyItemSize: @relativeTiny;
+@smallItemSize: @relativeSmall;
+@largeItemSize: @relativeLarge;
+@bigItemSize: @relativeBig;
+@hugeItemSize: @relativeHuge;
+@massiveItemSize: @relativeMassive;
diff --git a/assets/semantic/src/themes/default/views/statistic.overrides b/assets/semantic/src/themes/default/views/statistic.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/statistic.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/default/views/statistic.variables b/assets/semantic/src/themes/default/views/statistic.variables
new file mode 100644
index 0000000..b314309
--- /dev/null
+++ b/assets/semantic/src/themes/default/views/statistic.variables
@@ -0,0 +1,111 @@
+/*******************************
+ Statistic
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+@verticalMargin: 1em;
+@margin: @verticalMargin 0;
+@textAlign: center;
+@maxWidth: none;
+
+/* Group */
+@horizontalSpacing: 1.5em;
+@rowSpacing: 1em;
+@groupMargin: @verticalMargin -@horizontalSpacing -@rowSpacing;
+
+/* Group Element */
+@elementMargin: 0 @horizontalSpacing @rowSpacing;
+@elementMaxWidth: @maxWidth;
+
+/*-------------------
+ Content
+--------------------*/
+
+/* Value */
+@valueFont: @pageFont;
+@valueFontWeight: @normal;
+@valueLineHeight: 1em;
+@valueColor: @black;
+@valueTextTransform: uppercase;
+
+/* Label */
+@labelSize: @relativeMedium;
+@topLabelDistance: 0;
+@bottomLabelDistance: 0;
+@labelFont: @headerFont;
+@labelFontWeight: @bold;
+@labelColor: @textColor;
+@labelLineHeight: @relativeLarge;
+@labelTextTransform: uppercase;
+
+/* Text */
+@textValueLineHeight: 1em;
+@textValueMinHeight: 2em;
+@textValueFontWeight: @bold;
+
+/* Label Image */
+@imageHeight: 3rem;
+@imageVerticalAlign: baseline;
+
+/*-------------------
+ Types
+--------------------*/
+
+@horizontalGroupElementMargin: 1em 0;
+@horizontalLabelDistance: 0.75em;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Floated */
+@leftFloatedMargin: 0 2em 1em 0;
+@rightFloatedMargin: 0 0 1em 2em;
+
+/* Inverted */
+@invertedValueColor: @white;
+@invertedLabelColor: @invertedTextColor;
+
+/* Item Width */
+@itemGroupMargin: 0 0 -@rowSpacing;
+@itemMargin: 0 0 @rowSpacing;
+
+/* Stackable */
+@stackableRowSpacing: 2rem;
+@stackableGutter: 2rem;
+
+/* Size */
+@miniTextValueSize: 1rem;
+@miniValueSize: 1.5rem;
+@miniHorizontalValueSize: 1.5rem;
+
+@tinyTextValueSize: 1rem;
+@tinyValueSize: 2rem;
+@tinyHorizontalValueSize: 2rem;
+
+@smallTextValueSize: 1rem;
+@smallValueSize: 3rem;
+@smallHorizontalValueSize: 2rem;
+
+@textValueSize: 2rem;
+@valueSize: 4rem;
+@horizontalValueSize: 3rem;
+
+@largeTextValueSize: 2.5rem;
+@largeValueSize: 5rem;
+@largeHorizontalValueSize: 4rem;
+
+@bigTextValueSize: 2.5rem;
+@bigValueSize: 5.5rem;
+@bigHorizontalValueSize: 4.5rem;
+
+@hugeTextValueSize: 2.5rem;
+@hugeValueSize: 6rem;
+@hugeHorizontalValueSize: 5rem;
+
+@massiveTextValueSize: 3rem;
+@massiveValueSize: 7rem;
+@massiveHorizontalValueSize: 6rem;
diff --git a/assets/semantic/src/themes/duo/elements/loader.overrides b/assets/semantic/src/themes/duo/elements/loader.overrides
new file mode 100644
index 0000000..4a32dde
--- /dev/null
+++ b/assets/semantic/src/themes/duo/elements/loader.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Theme Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/duo/elements/loader.variables b/assets/semantic/src/themes/duo/elements/loader.variables
new file mode 100644
index 0000000..cbc5f03
--- /dev/null
+++ b/assets/semantic/src/themes/duo/elements/loader.variables
@@ -0,0 +1,6 @@
+/*******************************
+ Loader
+*******************************/
+
+@shapeBorderColor: @primaryColor @primaryColor @secondaryColor @secondaryColor;
+@invertedShapeBorderColor: @lightPrimaryColor @lightPrimaryColor @lightSecondaryColor @lightSecondaryColor;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/fixed-width/collections/grid.overrides b/assets/semantic/src/themes/fixed-width/collections/grid.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/fixed-width/collections/grid.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/fixed-width/collections/grid.variables b/assets/semantic/src/themes/fixed-width/collections/grid.variables
new file mode 100644
index 0000000..1452104
--- /dev/null
+++ b/assets/semantic/src/themes/fixed-width/collections/grid.variables
@@ -0,0 +1,23 @@
+/* Fixed Page Grid */
+
+@mobileWidth: auto;
+@mobileMargin: 0em;
+@mobileGutter: 0em;
+
+@tabletWidth: auto;
+@tabletMargin: 0em;
+@tabletGutter: 8%;
+
+@computerWidth: 960px;
+@computerMargin: auto;
+@computerGutter: 0;
+
+@largeMonitorWidth: 1180px;
+@largeMonitorMargin: auto;
+@largeMonitorGutter: 0;
+
+@widescreenMonitorWidth: 1300px;
+@widescreenMargin: auto;
+@widescreenMonitorGutter: 0;
+
+@tableWidth: '';
\ No newline at end of file
diff --git a/assets/semantic/src/themes/fixed-width/modules/modal.overrides b/assets/semantic/src/themes/fixed-width/modules/modal.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/fixed-width/modules/modal.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/fixed-width/modules/modal.variables b/assets/semantic/src/themes/fixed-width/modules/modal.variables
new file mode 100644
index 0000000..b65f7e3
--- /dev/null
+++ b/assets/semantic/src/themes/fixed-width/modules/modal.variables
@@ -0,0 +1,37 @@
+
+/* Responsive Widths */
+@modalComputerWidth: 700px;
+@modalLargeMonitorWidth: 800px;
+@modalWidescreenMonitorWidth: 850px;
+
+@modalComputerMargin: 0em 0em 0em -(@modalComputerWidth / 2);
+@modalLargeMonitorMargin: 0em 0em 0em -(@modalLargeMonitorWidth / 2);
+@modalWidescreenMonitorMargin: 0em 0em 0em -(@modalWidescreenMonitorWidth / 2);
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Sizes */
+@modalSmallRatio: 0.6;
+@modalLargeRatio: 1.2;
+
+/* Derived Responsive Sizes */
+@modalSmallHeaderSize: 1.3em;
+@modalSmallComputerWidth: (@modalComputerWidth * @modalSmallRatio);
+@modalSmallLargeMonitorWidth: (@modalLargeMonitorWidth * @modalSmallRatio);
+@modalSmallWidescreenMonitorWidth: (@modalWidescreenMonitorWidth * @modalSmallRatio);
+
+@modalSmallComputerMargin: 0em 0em 0em -(@modalSmallComputerWidth / 2);
+@modalSmallLargeMonitorMargin: 0em 0em 0em -(@modalSmallLargeMonitorWidth / 2);
+@modalSmallWidescreenMonitorMargin: 0em 0em 0em -(@modalSmallWidescreenMonitorWidth / 2);
+
+@modalLargeHeaderSize: 1.3em;
+@modalLargeComputerWidth: (@modalComputerWidth * @modalLargeRatio);
+@modalLargeLargeMonitorWidth: (@modalLargeMonitorWidth * @modalLargeRatio);
+@modalLargeWidescreenMonitorWidth: (@modalWidescreenMonitorWidth * @modalLargeRatio);
+
+@modalLargeComputerMargin: 0em 0em 0em -(@modalLargeComputerWidth / 2);
+@modalLargeLargeMonitorMargin: 0em 0em 0em -(@modalLargeLargeMonitorWidth / 2);
+@modalLargeWidescreenMonitorMargin: 0em 0em 0em -(@modalLargeWidescreenMonitorWidth / 2);
\ No newline at end of file
diff --git a/assets/semantic/src/themes/flat/collections/form.overrides b/assets/semantic/src/themes/flat/collections/form.overrides
new file mode 100644
index 0000000..b1a9562
--- /dev/null
+++ b/assets/semantic/src/themes/flat/collections/form.overrides
@@ -0,0 +1,28 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.form input[type="text"],
+.ui.form input[type="email"],
+.ui.form input[type="date"],
+.ui.form input[type="password"],
+.ui.form input[type="number"],
+.ui.form input[type="url"],
+.ui.form input[type="tel"] {
+ border-bottom: 1px solid #DDDDDD;
+}
+
+.ui.form .selection.dropdown {
+ border: none;
+ box-shadow: none !important;
+ border-bottom: 1px solid #DDDDDD;
+ border-radius: 0em !important;
+}
+.ui.form .selection.dropdown > .menu {
+ border-top-width: 1px !important;
+ border-radius: @defaultBorderRadius !important;
+}
+
+.ui.form .ui.icon.input > .icon {
+ width: 1em;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/flat/collections/form.variables b/assets/semantic/src/themes/flat/collections/form.variables
new file mode 100644
index 0000000..12d3fa9
--- /dev/null
+++ b/assets/semantic/src/themes/flat/collections/form.variables
@@ -0,0 +1,74 @@
+/*******************************
+ Form
+*******************************/
+
+/*-------------------
+ Elements
+--------------------*/
+
+
+/* Text */
+@paragraphMargin: 1em 0em;
+
+/* Field */
+@fieldMargin: 0em 0em 1em;
+
+/* Form Label */
+@labelFontSize: @relative11px;
+@labelTextTransform: uppercase;
+
+@groupedLabelTextTransform: none;
+
+/* Input */
+@inputHorizontalPadding: 0.5em;
+@inputBackground: transparent;
+@inputBorder: none;
+@inputBorderRadius: 0em;
+@inputBoxShadow: none;
+@invertedInputColor: @invertedTextColor;
+
+@textAreaPadding: 1em;
+@textAreaBackground: transparent;
+@textAreaFocusBackground: #EEEEEE;
+@textAreaBorder: 1px solid #DDDDDD;
+
+/* Divider */
+@dividerMargin: 1em 0em;
+
+/* Validation Prompt */
+@validationMargin: 0em 0em 0em 1em;
+@validationArrowOffset: -0.3em;
+
+/*-------------------
+ States
+--------------------*/
+
+/* Disabled */
+
+/* Focus */
+@inputFocusPointerSize: 0px;
+@inputErrorPointerSize: 0px;
+
+/* Dropdown Error */
+@dropdownErrorHoverBackground: #FFF2F2;
+@dropdownErrorActiveBackground: #FDCFCF;
+
+/* Focused Error */
+@inputErrorFocusBackground: @negativeBackgroundColor;
+@inputErrorFocusColor: @negativeColorHover;
+@inputErrorFocusBorder: @negativeBorderColor;
+@inputErrorFocusBoxShadow: @inputErrorPointerSize 0em 0em 0em @negativeColorHover inset;
+
+/* Placeholder */
+@inputPlaceholderColor: lighten(@inputColor, 55);
+@inputPlaceholderFocusColor: lighten(@inputColor, 35);
+@inputErrorPlaceholderColor: lighten(@formErrorColor, 10);
+@inputErrorPlaceholderFocusColor: lighten(@formErrorColor, 5);
+
+/* Loading */
+@formLoaderDimmerColor: rgba(255, 255, 255, 0.6);
+@formLoaderPath: "@{imagePath}/loader-large.gif";
+@formLoaderPosition: 50% 50%;
+
+/* (x) Wide Field */
+@gutterWidth: 1.5em;
diff --git a/assets/semantic/src/themes/flat/globals/site.overrides b/assets/semantic/src/themes/flat/globals/site.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/flat/globals/site.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/flat/globals/site.variables b/assets/semantic/src/themes/flat/globals/site.variables
new file mode 100644
index 0000000..e034038
--- /dev/null
+++ b/assets/semantic/src/themes/flat/globals/site.variables
@@ -0,0 +1,106 @@
+/*******************************
+ Site Settings
+*******************************/
+
+/*-------------------
+ Paths
+--------------------*/
+
+@imagePath : "../../themes/default/assets/images";
+@fontPath : "../../themes/default/assets/fonts";
+
+/*-------------------
+ Fonts
+--------------------*/
+
+@headerFont : "Open Sans", "Helvetica Neue", Arial, Helvetica, sans-serif;
+@pageFont : "Open Sans", "Helvetica Neue", Arial, Helvetica, sans-serif;
+
+/*-------------------
+ Site Colors
+--------------------*/
+
+/*--- Colors ---*/
+@blue : #0074D9;
+@green : #2ECC40;
+@orange : #FF851B;
+@pink : #D9499A;
+@purple : #A24096;
+@red : #FF4136;
+@teal : #39CCCC;
+@yellow : #FFCB08;
+
+@black : #191919;
+@grey : #CCCCCC;
+@white : #FFFFFF;
+
+/*--- Light Colors ---*/
+@lightBlue : #54C8FF;
+@lightGreen : #2ECC40;
+@lightOrange : #FF851B;
+@lightPink : #FF8EDF;
+@lightPurple : #CDC6FF;
+@lightRed : #FF695E;
+@lightTeal : #6DFFFF;
+@lightYellow : #FFE21F;
+
+@primaryColor : @blue;
+@secondaryColor : @black;
+
+
+/*-------------------
+ Page
+--------------------*/
+
+@bodyBackground : #FCFCFC;
+@fontSize : 14px;
+@textColor : rgba(0, 0, 0, 0.8);
+
+@headerMargin : 1em 0em 1rem;
+@paragraphMargin : 0em 0em 1em;
+
+@linkColor : #009FDA;
+@linkUnderline : none;
+@linkHoverColor : lighten( @linkColor, 5);
+@linkHoverUnderline : @linkUnderline;
+
+@highlightBackground : #FFFFCC;
+@highlightColor : @textColor;
+
+
+
+/*-------------------
+ Background Colors
+--------------------*/
+
+@subtleTransparentBlack : rgba(0, 0, 0, 0.03);
+@transparentBlack : rgba(0, 0, 0, 0.05);
+@strongTransparentBlack : rgba(0, 0, 0, 0.10);
+
+@subtleTransparentWhite : rgba(255, 255, 255, 0.01);
+@transparentWhite : rgba(255, 255, 255, 0.05);
+@strongTransparentWhite : rgba(255, 255, 255, 0.01);
+
+/* Used for differentiating neutrals */
+@subtleGradient: linear-gradient(transparent, rgba(0, 0, 0, 0.05));
+
+/* Used for differentiating layers */
+@subtleShadow: 0px 1px 2px 0 rgba(0, 0, 0, 0.05);
+
+
+/*-------------------
+ Grid
+--------------------*/
+
+@columnCount: 16;
+
+/*-------------------
+ Breakpoints
+--------------------*/
+
+@mobileBreakpoint : 320px;
+@tabletBreakpoint : 768px;
+@computerBreakpoint : 992px;
+@largeMonitorBreakpoint : 1400px;
+@widescreenMonitorBreakpoint : 1900px;
+
diff --git a/assets/semantic/src/themes/github/assets/fonts/octicons-local.ttf b/assets/semantic/src/themes/github/assets/fonts/octicons-local.ttf
new file mode 100644
index 0000000..d5f4e2e
Binary files /dev/null and b/assets/semantic/src/themes/github/assets/fonts/octicons-local.ttf differ
diff --git a/assets/semantic/src/themes/github/assets/fonts/octicons.svg b/assets/semantic/src/themes/github/assets/fonts/octicons.svg
new file mode 100644
index 0000000..fe8963a
--- /dev/null
+++ b/assets/semantic/src/themes/github/assets/fonts/octicons.svg
@@ -0,0 +1,200 @@
+
+
+
+
+(c) 2012-2015 GitHub
+
+When using the GitHub logos, be sure to follow the GitHub logo guidelines (https://github.com/logos)
+
+Font License: SIL OFL 1.1 (http://scripts.sil.org/OFL)
+Applies to all font files
+
+Code License: MIT (http://choosealicense.com/licenses/mit/)
+Applies to all other files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/semantic/src/themes/github/assets/fonts/octicons.ttf b/assets/semantic/src/themes/github/assets/fonts/octicons.ttf
new file mode 100644
index 0000000..9e09105
Binary files /dev/null and b/assets/semantic/src/themes/github/assets/fonts/octicons.ttf differ
diff --git a/assets/semantic/src/themes/github/assets/fonts/octicons.woff b/assets/semantic/src/themes/github/assets/fonts/octicons.woff
new file mode 100644
index 0000000..cc3c19f
Binary files /dev/null and b/assets/semantic/src/themes/github/assets/fonts/octicons.woff differ
diff --git a/assets/semantic/src/themes/github/collections/breadcrumb.variables b/assets/semantic/src/themes/github/collections/breadcrumb.variables
new file mode 100644
index 0000000..6c557a9
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/breadcrumb.variables
@@ -0,0 +1,11 @@
+/*******************************
+ Site Overrides
+*******************************/
+
+@dividerOpacity: 1;
+@dividerSpacing: 0;
+@dividerSize: @big;
+@dividerColor: inherit;
+
+@huge: 1.5384em;
+
diff --git a/assets/semantic/src/themes/github/collections/form.overrides b/assets/semantic/src/themes/github/collections/form.overrides
new file mode 100644
index 0000000..b6eeec8
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/form.overrides
@@ -0,0 +1,16 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.selection.dropdown {
+ background-color: #FAFAFA;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075) inset;
+ border-color: #CCCCCC;
+}
+
+.ui.selection.dropdown:focus {
+ box-shadow:
+ 0px 1px 2px rgba(0, 0, 0, 0.075) inset,
+ 0px 0px 5px rgba(81, 167, 232, 0.5)
+ ;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/collections/form.variables b/assets/semantic/src/themes/github/collections/form.variables
new file mode 100644
index 0000000..2d760f4
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/form.variables
@@ -0,0 +1,40 @@
+/*******************************
+ Form
+*******************************/
+
+/*-------------------
+ Elements
+--------------------*/
+
+@inputBackground: #FAFAFA;
+@inputBorder: 1px solid #CCCCCC;
+@inputBoxShadow: 0 1px 2px rgba(0, 0, 0, 0.075) inset;
+@inputBorderRadius: 3px;
+
+@labelFontWeight: bold;
+@labelDistance: 6px;
+
+/*-------------------
+ States
+--------------------*/
+
+@inputFocusBackground: #FFFFFF;
+@inputFocusBoxShadow:
+ 0px 1px 2px rgba(0, 0, 0, 0.075) inset,
+ 0px 0px 5px rgba(81, 167, 232, 0.5)
+;
+@inputFocusBorderColor: #51A7E8;
+@inputFocusBorderRadius: @inputBorderRadius;
+
+/*-------------------
+ Types
+--------------------*/
+
+
+/*-------------------
+ Variations
+--------------------*/
+
+/*-------------------
+ Groups
+--------------------*/
diff --git a/assets/semantic/src/themes/github/collections/grid.variables b/assets/semantic/src/themes/github/collections/grid.variables
new file mode 100644
index 0000000..b452c1a
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/grid.variables
@@ -0,0 +1,2 @@
+
+@gutterWidth: 1.538rem;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/collections/menu.overrides b/assets/semantic/src/themes/github/collections/menu.overrides
new file mode 100644
index 0000000..9cd45c4
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/menu.overrides
@@ -0,0 +1,7 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.menu .item > .label {
+ box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/collections/menu.variables b/assets/semantic/src/themes/github/collections/menu.variables
new file mode 100644
index 0000000..4ca6ad3
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/menu.variables
@@ -0,0 +1,61 @@
+/*-------------------
+ Collection
+--------------------*/
+
+@itemVerticalPadding: 1em;
+@itemHorizontalPadding: 1.25em;
+
+@background: #FFFFFF linear-gradient(rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.05));
+@fontWeight: normal;
+
+@activeBorderSize: 0em;
+
+@hoverBackground: rgba(0, 0, 0, 0.02);
+@downBackground: rgba(0, 0, 0, 0.06);
+
+@activeBackground: rgba(0, 0, 0, 0.04);
+@activeHoverBackground: rgba(0, 0, 0, 0.04);
+
+
+@headerBackground: rgba(0, 0, 0, 0.08);
+
+@subMenuMargin: 0.5em -0.6em 0;
+@subMenuHorizontalPadding: 0.7em;
+
+@arrowHoverColor: #EEEEEE;
+@arrowActiveColor: #EEEEEE;
+@arrowVerticalHoverColor: #F4F4F4;
+@arrowVerticalActiveColor: #F4F4F4;
+
+@dividerBackground: #E8E8E8;
+@verticalDividerBackground: #E8E8E8;
+
+/*-------------------
+ Elements
+--------------------*/
+
+@buttonOffset: -0.15em;
+@buttonVerticalPadding: 0.75em;
+
+/*-------------------
+ Types
+--------------------*/
+
+@paginationMinWidth: 3.5em;
+
+@tieredActiveItemBackground: #F5F5F5;
+@tieredActiveMenuBackground: #F5F5F5;
+
+/*-------------------
+ Variations
+--------------------*/
+
+@verticalBackground: #FFFFFF;
+@verticalItemBackground: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
+
+@invertedBackground: @black linear-gradient(rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.0));
+@invertedBoxShadow :
+ 0px 1px 2px 0px rgba(0, 0, 0, 0.15),
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.15)
+;
+@secondaryVerticalPadding: 0.75em;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/collections/message.overrides b/assets/semantic/src/themes/github/collections/message.overrides
new file mode 100644
index 0000000..cc601b3
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/message.overrides
@@ -0,0 +1,11 @@
+.ui.info.message {
+ background: linear-gradient(#D8EBF8, #D0E3EF);
+}
+.ui.error.message {
+ background: linear-gradient(#F8D8D8, #EFD0D0);
+}
+.ui.warning.message {
+ background: linear-gradient(#FFE3C8, #F5DAC0);
+}
+.ui.success.message {
+}
diff --git a/assets/semantic/src/themes/github/collections/message.variables b/assets/semantic/src/themes/github/collections/message.variables
new file mode 100644
index 0000000..5022890
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/message.variables
@@ -0,0 +1,29 @@
+@background: linear-gradient(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.05)) #FEFEFE;
+@boxShadow:
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.3) inset,
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset
+;
+@verticalPadding: 15px;
+@horizontalPadding: 15px;
+
+@headerFontSize: 1.15em;
+
+@infoTextColor: #264C72;
+@warningTextColor: #613A00;
+@errorTextColor: #991111;
+
+@floatingBoxShadow:
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset,
+ 0px 2px 3px 0px rgba(0, 0, 0, 0.1),
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset
+;
+
+@infoBorderColor: #97C1DA;
+@errorBorderColor: #DA9797;
+@warningBorderColor: #DCA874;
+
+@small: 12px;
+@medium: 13px;
+@large: 14px;
+@huge: 16px;
+@massive: 18px;
diff --git a/assets/semantic/src/themes/github/collections/table.variables b/assets/semantic/src/themes/github/collections/table.variables
new file mode 100644
index 0000000..c7d436a
--- /dev/null
+++ b/assets/semantic/src/themes/github/collections/table.variables
@@ -0,0 +1,8 @@
+/*******************************
+ User Variable Overrides
+*******************************/
+
+@background: #F8F8F8;
+
+@cellVerticalPadding: @relative6px;
+@cellHorizontalPadding: @relative8px;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/button.overrides b/assets/semantic/src/themes/github/elements/button.overrides
new file mode 100644
index 0000000..e5befff
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/button.overrides
@@ -0,0 +1,4 @@
+/*******************************
+ Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/github/elements/button.variables b/assets/semantic/src/themes/github/elements/button.variables
new file mode 100644
index 0000000..d2935e4
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/button.variables
@@ -0,0 +1,77 @@
+/*-------------------
+ Button Variables
+--------------------*/
+
+/* Button Variables */
+@pageFont: Helvetica Neue, Helvetica, Arial, sans-serif;
+@textTransform: none;
+@fontWeight: bold;
+@textColor: #333333;
+
+@textShadow: 0px 1px 0px rgba(255, 255, 255, 0.9);
+@invertedTextShadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
+
+@borderRadius: @relativeBorderRadius;
+
+@verticalPadding: 0.75em;
+@horizontalPadding: 1.15em;
+
+@backgroundColor: #FAFAFA;
+@backgroundImage: linear-gradient(rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.1));
+@boxShadow:
+ 0 -1px 0 0 rgba(0, 0, 0, 0.05) inset,
+ 0 0 0 1px rgba(0, 0, 0, 0.13) inset,
+ 0 1px 3px rgba(0, 0, 0, 0.05)
+;
+
+@coloredBackgroundImage: linear-gradient(rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.2));
+@coloredBoxShadow:
+ 0 -1px 0 0 rgba(0, 0, 0, 0.05) inset,
+ 0 0 0 1px rgba(0, 0, 0, 0.1) inset,
+ 0 1px 3px rgba(0, 0, 0, 0.05)
+;
+
+@hoverBackgroundColor: #E0E0E0;
+@hoverBackgroundImage: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.08));
+@hoverBoxShadow: @boxShadow;
+
+@downBackgroundColor: '';
+@downBackgroundImage: '';
+@downBoxShadow:
+ 0 -1px 0 0 rgba(0, 0, 0, 0.05) inset,
+ 0 0 0 1px rgba(0, 0, 0, 0.13) inset,
+ 0 3px 5px rgba(0, 0, 0, 0.15) inset !important
+;
+@activeBackgroundColor: #DFDFDF;
+@activeBackgroundImage: none;
+@activeBoxShadow:
+ 0 -1px 0 0 rgba(0, 0, 0, 0.05) inset,
+ 0 0 0 1px rgba(0, 0, 0, 0.13) inset,
+ 0 3px 5px rgba(0, 0, 0, 0.1) inset !important
+;
+
+@labeledIconBackgroundColor: transparent;
+@labeledIconBorder: transparent;
+@labeledIconPadding: (@horizontalPadding + 2.25em);
+
+@basicFontWeight: bold;
+@basicTextColor: @linkColor;
+@basicHoverTextColor: @linkHoverColor;
+
+@basicHoverBackground: #E0E0E0;
+
+@blue: #3072B3;
+@green: #60B044;
+@black: #5D5D5D;
+
+@primaryColor: @blue;
+@secondaryColor: @black;
+
+@mini: 0.6rem;
+@tiny: 0.7rem;
+@small: 0.85rem;
+@medium: 0.92rem;
+@large: 1rem;
+@big: 1.125rem;
+@huge: 1.25rem;
+@massive: 1.3rem;
diff --git a/assets/semantic/src/themes/github/elements/header.variables b/assets/semantic/src/themes/github/elements/header.variables
new file mode 100644
index 0000000..00c7d17
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/header.variables
@@ -0,0 +1,9 @@
+/*******************************
+ Header
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@iconMargin: @4px;
diff --git a/assets/semantic/src/themes/github/elements/icon.overrides b/assets/semantic/src/themes/github/elements/icon.overrides
new file mode 100644
index 0000000..ee22bca
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/icon.overrides
@@ -0,0 +1,208 @@
+/* Octicons */
+
+.icon.alert:before { content: '\f02d'} /* */
+.icon.alignment.align:before { content: '\f08a'} /* */
+.icon.alignment.aligned.to:before { content: '\f08e'} /* */
+.icon.alignment.unalign:before { content: '\f08b'} /* */
+.icon.arrow.down:before { content: '\f03f'} /* */
+.icon.arrow.left:before { content: '\f040'} /* */
+.icon.arrow.right:before { content: '\f03e'} /* */
+.icon.arrow.small.down:before { content: '\f0a0'} /* */
+.icon.arrow.small.left:before { content: '\f0a1'} /* */
+.icon.arrow.small.right:before { content: '\f071'} /* */
+.icon.arrow.small.up:before { content: '\f09f'} /* */
+.icon.arrow.up:before { content: '\f03d'} /* */
+.icon.beer:before { content: '\f069'} /* */
+.icon.book:before { content: '\f007'} /* */
+.icon.bookmark:before { content: '\f07b'} /* */
+.icon.briefcase:before { content: '\f0d3'} /* */
+.icon.broadcast:before { content: '\f048'} /* */
+.icon.browser:before { content: '\f0c5'} /* */
+.icon.bug:before { content: '\f091'} /* */
+.icon.calendar:before { content: '\f068'} /* */
+.icon.check:before { content: '\f03a'} /* */
+.icon.checklist:before { content: '\f076'} /* */
+.icon.chevron.down:before { content: '\f0a3'} /* */
+.icon.chevron.left:before { content: '\f0a4'} /* */
+.icon.chevron.right:before { content: '\f078'} /* */
+.icon.chevron.up:before { content: '\f0a2'} /* */
+.icon.circle.slash:before { content: '\f084'} /* */
+.icon.circuit.board:before { content: '\f0d6'} /* */
+.icon.clippy:before { content: '\f035'} /* */
+.icon.clock:before { content: '\f046'} /* */
+.icon.cloud.download:before { content: '\f00b'} /* */
+.icon.cloud.upload:before { content: '\f00c'} /* */
+.icon.code:before { content: '\f05f'} /* */
+.icon.color.mode:before { content: '\f065'} /* */
+.icon.comment.add:before,
+.icon.comment:before { content: '\f02b'} /* */
+.icon.comment.discussion:before { content: '\f04f'} /* */
+.icon.credit.card:before { content: '\f045'} /* */
+.icon.dash:before { content: '\f0ca'} /* */
+.icon.dashboard:before { content: '\f07d'} /* */
+.icon.database:before { content: '\f096'} /* */
+.icon.device.camera:before { content: '\f056'} /* */
+.icon.device.camera.video:before { content: '\f057'} /* */
+.icon.device.desktop:before { content: '\f27c'} /* */
+.icon.device.mobile:before { content: '\f038'} /* */
+.icon.diff:before { content: '\f04d'} /* */
+.icon.diff.added:before { content: '\f06b'} /* */
+.icon.diff.ignored:before { content: '\f099'} /* */
+.icon.diff.modified:before { content: '\f06d'} /* */
+.icon.diff.removed:before { content: '\f06c'} /* */
+.icon.diff.renamed:before { content: '\f06e'} /* */
+.icon.ellipsis:before { content: '\f09a'} /* */
+.icon.eye.unwatch:before,
+.icon.eye.watch:before,
+.icon.eye:before { content: '\f04e'} /* */
+.icon.file.binary:before { content: '\f094'} /* */
+.icon.file.code:before { content: '\f010'} /* */
+.icon.file.directory:before { content: '\f016'} /* */
+.icon.file.media:before { content: '\f012'} /* */
+.icon.file.pdf:before { content: '\f014'} /* */
+.icon.file.submodule:before { content: '\f017'} /* */
+.icon.file.symlink.directory:before { content: '\f0b1'} /* */
+.icon.file.symlink.file:before { content: '\f0b0'} /* */
+.icon.file.text:before { content: '\f011'} /* */
+.icon.file.zip:before { content: '\f013'} /* */
+.icon.flame:before { content: '\f0d2'} /* */
+.icon.fold:before { content: '\f0cc'} /* */
+.icon.gear:before { content: '\f02f'} /* */
+.icon.gift:before { content: '\f042'} /* */
+.icon.gist:before { content: '\f00e'} /* */
+.icon.gist.secret:before { content: '\f08c'} /* */
+.icon.git.branch.create:before,
+.icon.git.branch.delete:before,
+.icon.git.branch:before { content: '\f020'} /* */
+.icon.git.commit:before { content: '\f01f'} /* */
+.icon.git.compare:before { content: '\f0ac'} /* */
+.icon.git.merge:before { content: '\f023'} /* */
+.icon.git.pull.request.abandoned:before,
+.icon.git.pull.request:before { content: '\f009'} /* */
+.icon.globe:before { content: '\f0b6'} /* */
+.icon.graph:before { content: '\f043'} /* */
+.icon.heart:before { content: '\2665'} /* ♥ */
+.icon.history:before { content: '\f07e'} /* */
+.icon.home:before { content: '\f08d'} /* */
+.icon.horizontal.rule:before { content: '\f070'} /* */
+.icon.hourglass:before { content: '\f09e'} /* */
+.icon.hubot:before { content: '\f09d'} /* */
+.icon.inbox:before { content: '\f0cf'} /* */
+.icon.info:before { content: '\f059'} /* */
+.icon.issue.closed:before { content: '\f028'} /* */
+.icon.issue.opened:before { content: '\f026'} /* */
+.icon.issue.reopened:before { content: '\f027'} /* */
+.icon.jersey:before { content: '\f019'} /* */
+.icon.jump.down:before { content: '\f072'} /* */
+.icon.jump.left:before { content: '\f0a5'} /* */
+.icon.jump.right:before { content: '\f0a6'} /* */
+.icon.jump.up:before { content: '\f073'} /* */
+.icon.key:before { content: '\f049'} /* */
+.icon.keyboard:before { content: '\f00d'} /* */
+.icon.law:before { content: '\f0d8'} /* */
+.icon.light.bulb:before { content: '\f000'} /* */
+.icon.linkify:before { content: '\f05c'} /* */
+.icon.linkify.external:before { content: '\f07f'} /* */
+.icon.list.ordered:before { content: '\f062'} /* */
+.icon.list.unordered:before { content: '\f061'} /* */
+.icon.location:before { content: '\f060'} /* */
+.icon.gist.private:before,
+.icon.mirror.private:before,
+.icon.git.fork.private:before,
+.icon.lock:before { content: '\f06a'} /* */
+.icon.logo.github:before { content: '\f092'} /* */
+.icon.mail:before { content: '\f03b'} /* */
+.icon.mail.read:before { content: '\f03c'} /* */
+.icon.mail.reply:before { content: '\f051'} /* */
+.icon.mark.github:before { content: '\f00a'} /* */
+.icon.markdown:before { content: '\f0c9'} /* */
+.icon.megaphone:before { content: '\f077'} /* */
+.icon.mention:before { content: '\f0be'} /* */
+.icon.microscope:before { content: '\f089'} /* */
+.icon.milestone:before { content: '\f075'} /* */
+.icon.mirror.public:before,
+.icon.mirror:before { content: '\f024'} /* */
+.icon.mortar.board:before { content: '\f0d7'} /* */
+.icon.move.down:before { content: '\f0a8'} /* */
+.icon.move.left:before { content: '\f074'} /* */
+.icon.move.right:before { content: '\f0a9'} /* */
+.icon.move.up:before { content: '\f0a7'} /* */
+.icon.mute:before { content: '\f080'} /* */
+.icon.no.newline:before { content: '\f09c'} /* */
+.icon.octoface:before { content: '\f008'} /* */
+.icon.organization:before { content: '\f037'} /* */
+.icon.package:before { content: '\f0c4'} /* */
+.icon.paintcan:before { content: '\f0d1'} /* */
+.icon.pencil:before { content: '\f058'} /* */
+.icon.person.add:before,
+.icon.person.follow:before,
+.icon.person:before { content: '\f018'} /* */
+.icon.pin:before { content: '\f041'} /* */
+.icon.playback.fast.forward:before { content: '\f0bd'} /* */
+.icon.playback.pause:before { content: '\f0bb'} /* */
+.icon.playback.play:before { content: '\f0bf'} /* */
+.icon.playback.rewind:before { content: '\f0bc'} /* */
+.icon.plug:before { content: '\f0d4'} /* */
+.icon.repo.create:before,
+.icon.gist.new:before,
+.icon.file.directory.create:before,
+.icon.file.add:before,
+.icon.plus:before { content: '\f05d'} /* */
+.icon.podium:before { content: '\f0af'} /* */
+.icon.primitive.dot:before { content: '\f052'} /* */
+.icon.primitive.square:before { content: '\f053'} /* */
+.icon.pulse:before { content: '\f085'} /* */
+.icon.puzzle:before { content: '\f0c0'} /* */
+.icon.question:before { content: '\f02c'} /* */
+.icon.quote:before { content: '\f063'} /* */
+.icon.radio.tower:before { content: '\f030'} /* */
+.icon.repo.delete:before,
+.icon.repo:before { content: '\f001'} /* */
+.icon.repo.clone:before { content: '\f04c'} /* */
+.icon.repo.force.push:before { content: '\f04a'} /* */
+.icon.gist.fork:before,
+.icon.repo.forked:before { content: '\f002'} /* */
+.icon.repo.pull:before { content: '\f006'} /* */
+.icon.repo.push:before { content: '\f005'} /* */
+.icon.rocket:before { content: '\f033'} /* */
+.icon.rss:before { content: '\f034'} /* */
+.icon.ruby:before { content: '\f047'} /* */
+.icon.screen.full:before { content: '\f066'} /* */
+.icon.screen.normal:before { content: '\f067'} /* */
+.icon.search.save:before,
+.icon.search:before { content: '\f02e'} /* */
+.icon.server:before { content: '\f097'} /* */
+.icon.settings:before { content: '\f07c'} /* */
+.icon.log.in:before,
+.icon.sign.in:before { content: '\f036'} /* */
+.icon.log.out:before,
+.icon.sign.out:before { content: '\f032'} /* */
+.icon.split:before { content: '\f0c6'} /* */
+.icon.squirrel:before { content: '\f0b2'} /* */
+.icon.star.add:before,
+.icon.star.delete:before,
+.icon.star:before { content: '\f02a'} /* */
+.icon.steps:before { content: '\f0c7'} /* */
+.icon.stop:before { content: '\f08f'} /* */
+.icon.repo.sync:before,
+.icon.sync:before { content: '\f087'} /* */
+.icon.tag.remove:before,
+.icon.tag.add:before,
+.icon.tag:before { content: '\f015'} /* */
+.icon.telescope:before { content: '\f088'} /* */
+.icon.terminal:before { content: '\f0c8'} /* */
+.icon.three.bars:before { content: '\f05e'} /* */
+.icon.thumbsdown:before { content: '\f0db'} /* */
+.icon.thumbsup:before { content: '\f0da'} /* */
+.icon.tools:before { content: '\f031'} /* */
+.icon.trashcan:before { content: '\f0d0'} /* */
+.icon.triangle.down:before { content: '\f05b'} /* */
+.icon.triangle.left:before { content: '\f044'} /* */
+.icon.triangle.right:before { content: '\f05a'} /* */
+.icon.triangle.up:before { content: '\f0aa'} /* */
+.icon.unfold:before { content: '\f039'} /* */
+.icon.unmute:before { content: '\f0ba'} /* */
+.icon.versions:before { content: '\f064'} /* */
+.icon.remove.close:before,
+.icon.x:before { content: '\f081'} /* */
+.icon.zap:before { content: '\26A1'} /* ⚡ */
diff --git a/assets/semantic/src/themes/github/elements/icon.variables b/assets/semantic/src/themes/github/elements/icon.variables
new file mode 100644
index 0000000..3d65cb1
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/icon.variables
@@ -0,0 +1,13 @@
+@fontPath: '../../themes/github/assets/fonts';
+@fontName: 'octicons';
+@fallbackSRC: '';
+
+@width: 1em;
+@height: 1em;
+
+@small: 13px;
+@medium: 16px;
+@large: 18px;
+@big : 20px;
+@huge: 28px;
+@massive: 32px;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/image.variables b/assets/semantic/src/themes/github/elements/image.variables
new file mode 100644
index 0000000..f5d54ca
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/image.variables
@@ -0,0 +1,5 @@
+/*******************************
+ User Variable Overrides
+*******************************/
+
+@miniWidth: 20px;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/input.overrides b/assets/semantic/src/themes/github/elements/input.overrides
new file mode 100644
index 0000000..a6d3ec4
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/input.overrides
@@ -0,0 +1,32 @@
+/*******************************
+ Input
+*******************************/
+
+/* Labeled Input has padding */
+.ui.labeled.input {
+ background-color: @white;
+ border: @borderWidth solid @borderColor;
+ border-radius: @borderRadius !important;
+}
+.ui.labeled.input input {
+ box-shadow: none !important;
+ border: none !important;
+}
+.ui.labeled.input .label {
+ font-weight: normal;
+ align-self: center;
+ font-size: 12px;
+ margin: @2px;
+ border-radius: @borderRadius !important;
+ padding: @relative5px @relative8px !important;
+}
+
+/* GitHub Uses Focus Group with class name added */
+.ui.labeled.input.focused {
+ border-color: @focusBorderColor;
+ box-shadow: @focusBoxShadow;
+}
+.ui.labeled.input.focused .label {
+ background-color: #E1EAF5;
+ color: #4078C0;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/input.variables b/assets/semantic/src/themes/github/elements/input.variables
new file mode 100644
index 0000000..4899044
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/input.variables
@@ -0,0 +1,16 @@
+/*******************************
+ Input
+*******************************/
+
+@boxShadow: 0 1px 2px rgba(0, 0, 0, 0.075) inset;
+
+@verticalPadding: @relative7px;
+@horizontalPadding: @relative8px;
+
+@borderColor: #CCCCCC;
+
+@focusBorderColor: #51A7E8;
+@focusBoxShadow:
+ 0 1px 2px rgba(0, 0, 0, 0.075) inset,
+ 0 0 5px rgba(81, 167, 232, 0.5)
+;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/label.overrides b/assets/semantic/src/themes/github/elements/label.overrides
new file mode 100644
index 0000000..b194c35
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/label.overrides
@@ -0,0 +1,9 @@
+/*******************************
+ Site Overrides
+*******************************/
+
+/* Notification Label on GitHub */
+.ui.floating.blue.label {
+ border: 2px solid #f3f3f3 !important;
+ background-image: linear-gradient(#7aa1d3, #4078c0) !important;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/label.variables b/assets/semantic/src/themes/github/elements/label.variables
new file mode 100644
index 0000000..9d7fb49
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/label.variables
@@ -0,0 +1,4 @@
+/*******************************
+ User Variable Overrides
+*******************************/
+
diff --git a/assets/semantic/src/themes/github/elements/segment.overrides b/assets/semantic/src/themes/github/elements/segment.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/segment.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/github/elements/segment.variables b/assets/semantic/src/themes/github/elements/segment.variables
new file mode 100644
index 0000000..72a8ce6
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/segment.variables
@@ -0,0 +1,40 @@
+/*******************************
+ Standard
+*******************************/
+
+/*-------------------
+ Segment
+--------------------*/
+
+@segmentBorderWidth: 1px;
+@border: 1px solid #D8DEE2;
+@boxShadow: 0px 1px 3px rgba(0, 0, 0, 0.075);
+
+@verticalPadding: 20px;
+@horizontalPadding: 20px;
+
+@borderRadius: 4px;
+
+/*******************************
+ Variations
+*******************************/
+
+
+/* Raised */
+@raisedBoxShadow: 0px 1px 3px rgba(0, 0, 0, 0.075);
+
+/* Colors */
+@coloredBorderSize: 0.5em;
+
+/* Ordinality */
+@secondaryBackground: #F9F9F9;
+@secondaryColor: @textColor;
+
+@tertiaryBackground: #F0F0F0;
+@tertiaryColor: @textColor;
+
+@secondaryInvertedBackground: #555555;
+@secondaryInvertedColor: @textColor;
+
+@tertiaryInvertedBackground: #333333;
+@tertiaryInvertedColor: @textColor;
diff --git a/assets/semantic/src/themes/github/elements/step.overrides b/assets/semantic/src/themes/github/elements/step.overrides
new file mode 100644
index 0000000..14c147f
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/step.overrides
@@ -0,0 +1,26 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.steps .step:after {
+ display: none;
+}
+.ui.steps .completed.step:before {
+ opacity: 0.5;
+}
+
+.ui.steps .step.active:after {
+ display: block;
+ border: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-left: 1px solid rgba(0, 0, 0, 0.2);
+}
+.ui.vertical.steps .step.active:after {
+ display: block;
+ border: none;
+ top: 50%;
+ right: 0%;
+ border-left: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ border-right: 1px solid rgba(0, 0, 0, 0.2);
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/elements/step.variables b/assets/semantic/src/themes/github/elements/step.variables
new file mode 100644
index 0000000..8b35995
--- /dev/null
+++ b/assets/semantic/src/themes/github/elements/step.variables
@@ -0,0 +1,26 @@
+/*-------------------
+ Step Variables
+--------------------*/
+
+/* Step */
+@background: transparent linear-gradient(transparent, rgba(0, 0, 0, 0.07));
+@verticalPadding: 1em;
+
+@arrowDisplay: none;
+@lastArrowDisplay: none;
+@activeArrowDisplay: block;
+@activeLastArrowDisplay: block;
+
+/* Group */
+@stepsBackground: #FFFFFF;
+@stepsBoxShadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.15);
+
+/* States */
+@activeBackground: #FFFFFF;
+@activeIconColor: @darkTextColor;
+
+/* Arrow */
+@arrowTopOffset: 100%;
+@arrowRightOffset: 50%;
+@arrowBorderColor: rgba(0, 0, 0, 0.2);
+@arrowBorderWidth: 0px 0px @borderWidth @borderWidth;
diff --git a/assets/semantic/src/themes/github/globals/site.variables b/assets/semantic/src/themes/github/globals/site.variables
new file mode 100644
index 0000000..98f1811
--- /dev/null
+++ b/assets/semantic/src/themes/github/globals/site.variables
@@ -0,0 +1,47 @@
+/*******************************
+ User Global Variables
+*******************************/
+
+@pageMinWidth : 1049px;
+@pageOverflowX : visible;
+
+@emSize: 13px;
+@fontSize : 13px;
+@fontName : 'Arial';
+@importGoogleFonts : false;
+
+@h1: 2.25em;
+
+@defaultBorderRadius: 0.2307em;
+
+@disabledOpacity: 0.3;
+
+/* Colors */
+@blue: #80A6CD;
+@green: #78CB5B;
+@orange: #D26911;
+@black: #333333;
+@primaryColor: @green;
+@secondaryColor: @black;
+
+/* Links */
+@linkColor: #4078C0;
+@linkHoverColor: @linkColor;
+@linkHoverUnderline: underline;
+
+/* Borders */
+@borderColor: rgba(0, 0, 0, 0.13);
+@solidBorderColor: #DDDDDD;
+@internalBorderColor: rgba(0, 0, 0, 0.06);
+@selectedBorderColor: #51A7E8;
+
+/* Breakpoints */
+@largeMonitorBreakpoint: 1049px;
+@computerBreakpoint: @largeMonitorBreakpoint;
+@tabletBreakpoint: @largeMonitorBreakpoint;
+
+@infoBackgroundColor: #E6F1F6;
+
+@infoTextColor: #4E575B;
+@warningTextColor: #613A00;
+@errorTextColor: #991111;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/modules/dropdown.overrides b/assets/semantic/src/themes/github/modules/dropdown.overrides
new file mode 100644
index 0000000..35caaa9
--- /dev/null
+++ b/assets/semantic/src/themes/github/modules/dropdown.overrides
@@ -0,0 +1,53 @@
+/*******************************
+ User Overrides
+*******************************/
+
+/* Smaller Icon */
+.ui.dropdown > .dropdown.icon {
+ font-size: 12px;
+}
+
+
+/* Dropdown Carets */
+@font-face {
+ font-family: 'Dropdown';
+ src:
+ url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'),
+ url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff')
+ ;
+ font-weight: normal;
+ font-style: normal;
+}
+
+.ui.dropdown > .dropdown.icon {
+ font-family: 'Dropdown';
+ line-height: 1;
+ height: 1em;
+ width: 1.23em;
+ backface-visibility: hidden;
+ font-weight: normal;
+ font-style: normal;
+ text-align: center;
+}
+
+.ui.dropdown > .dropdown.icon {
+ width: auto;
+}
+.ui.dropdown > .dropdown.icon:before {
+ content: '\f0d7';
+}
+
+/* Sub Menu */
+.ui.dropdown .menu .item .dropdown.icon:before {
+ content: '\f0da'/*rtl:'\f0d9'*/;
+}
+
+.ui.dropdown .item .left.dropdown.icon:before,
+.ui.dropdown .left.menu .item .dropdown.icon:before {
+ content: "\f0d9"/*rtl:"\f0da"*/;
+}
+
+/* Vertical Menu Dropdown */
+.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
+ content: "\f0da"/*rtl:"\f0d9"*/;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/github/modules/dropdown.variables b/assets/semantic/src/themes/github/modules/dropdown.variables
new file mode 100644
index 0000000..38a7460
--- /dev/null
+++ b/assets/semantic/src/themes/github/modules/dropdown.variables
@@ -0,0 +1,35 @@
+/*******************************
+ User Variable Overrides
+*******************************/
+
+@transition:
+ width @defaultDuration @defaultEasing
+;
+
+@menuPadding: 0px;
+
+@itemVerticalPadding: @relative8px;
+@itemHorizontalPadding: @relative14px;
+
+@dropdownIconMargin: 0em 0em 0em 2px;
+
+@raisedBoxShadow: 0px 3px 12px rgba(0, 0, 0, 0.15);
+
+@menuPadding: @relative5px 0px;
+
+@menuHeaderMargin: 0em;
+@menuHeaderPadding: @relative6px @itemHorizontalPadding;
+@menuHeaderFontSize: @relative12px;
+@menuHeaderTextTransform: none;
+@menuHeaderFontWeight: normal;
+@menuHeaderColor: #767676;
+
+@menuDividerMargin: @relative8px 0em;
+
+@disabledOpacity: 0.6;
+
+/* States */
+@hoveredItemBackground: #4078C0;
+@hoveredItemColor: @white;
+
+@pointingArrowSize: @relative9px;
diff --git a/assets/semantic/src/themes/github/modules/popup.variables b/assets/semantic/src/themes/github/modules/popup.variables
new file mode 100644
index 0000000..3ea8f5d
--- /dev/null
+++ b/assets/semantic/src/themes/github/modules/popup.variables
@@ -0,0 +1,12 @@
+/*******************************
+ Popup
+*******************************/
+
+
+@small: @relative10px;
+@medium: @relative11px;
+@large: @relative13px;
+
+@verticalPadding: @relative7px;
+@horizontalPadding: @relative11px;
+
diff --git a/assets/semantic/src/themes/gmail/collections/message.overrides b/assets/semantic/src/themes/gmail/collections/message.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/gmail/collections/message.variables b/assets/semantic/src/themes/gmail/collections/message.variables
new file mode 100644
index 0000000..202d04d
--- /dev/null
+++ b/assets/semantic/src/themes/gmail/collections/message.variables
@@ -0,0 +1,15 @@
+@background: #F3F3F3;
+
+@boxShadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+@borderRadius: 4px;
+@verticalPadding: 7px;
+@horizontalPadding: 15px;
+
+@headerFontSize: 1em;
+
+@floatingBoxShadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
+
+@iconSize: 1.5em;
+@iconDistance: 1em;
+
+@warningBackgroundColor: #F9EDBE;
diff --git a/assets/semantic/src/themes/instagram/views/card.overrides b/assets/semantic/src/themes/instagram/views/card.overrides
new file mode 100644
index 0000000..4114320
--- /dev/null
+++ b/assets/semantic/src/themes/instagram/views/card.overrides
@@ -0,0 +1,12 @@
+/*******************************
+ Overrides
+*******************************/
+
+
+@import url(https://fonts.googleapis.com/css?family=Montserrat:700,400);
+
+.ui.cards > .card,
+.ui.card {
+ font-family: 'Montserrat';
+ font-size-adjust: 0.5;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/instagram/views/card.variables b/assets/semantic/src/themes/instagram/views/card.variables
new file mode 100644
index 0000000..433a48f
--- /dev/null
+++ b/assets/semantic/src/themes/instagram/views/card.variables
@@ -0,0 +1,23 @@
+/*******************************
+ Card
+*******************************/
+
+/*-------------------
+ View
+--------------------*/
+
+@borderBoxShadow: none;
+@shadowBoxShadow: none;
+@boxShadow: none;
+
+
+@internalBorderColor: #EDEDEE;
+@border: 1px solid #EDEDEE;
+
+@contentPadding: 14px 20px;
+
+@metaColor: #A5A7AA;
+
+@linkHoverRaiseDistance: 0px;
+@linkHoverBoxShadow: none;
+@linkHoverBorder: 1px solid #D0D0D8;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/joypixels/elements/emoji.overrides b/assets/semantic/src/themes/joypixels/elements/emoji.overrides
new file mode 100644
index 0000000..55ef3de
--- /dev/null
+++ b/assets/semantic/src/themes/joypixels/elements/emoji.overrides
@@ -0,0 +1,3094 @@
+/*
+* JoyPixels 5.0.0 by @joypixels - https://www.joypixels.com - @joypixels
+* License - https://www.joypixels.com/licenses/free
+*/
+
+/*******************************
+ Emojis
+*******************************/
+
+@emoji-map: {
+ 2049: interrobang;
+ 2122: tm;
+ 2139: information_source;
+ 2194: left_right_arrow;
+ 2195: arrow_up_down;
+ 2196: arrow_upper_left;
+ 2197: arrow_upper_right;
+ 2198: arrow_lower_right;
+ 2199: arrow_lower_left;
+ 2328: keyboard;
+ 2600: sunny;
+ 2601: cloud;
+ 2602: umbrella2;
+ 2603: snowman2;
+ 2604: comet;
+ 2611: ballot_box_with_check;
+ 2614: umbrella;
+ 2615: coffee;
+ 2618: shamrock;
+ 2620: skull_crossbones;
+ 2622: radioactive;
+ 2623: biohazard;
+ 2626: orthodox_cross;
+ 2638: wheel_of_dharma;
+ 2639: frowning2;
+ 2640: female_sign;
+ 2642: male_sign;
+ 2648: aries;
+ 2649: taurus;
+ 2650: sagittarius;
+ 2651: capricorn;
+ 2652: aquarius;
+ 2653: pisces;
+ 2660: spades;
+ 2663: clubs;
+ 2665: hearts;
+ 2666: diamonds;
+ 2668: hotsprings;
+ 2692: hammer_pick;
+ 2693: anchor;
+ 2694: crossed_swords;
+ 2695: medical_symbol;
+ 2696: scales;
+ 2697: alembic;
+ 2699: gear;
+ 2702: scissors;
+ 2705: white_check_mark;
+ 2708: airplane;
+ 2709: envelope;
+ 2712: black_nib;
+ 2714: heavy_check_mark;
+ 2716: heavy_multiplication_x;
+ 2721: star_of_david;
+ 2728: sparkles;
+ 2733: eight_spoked_asterisk;
+ 2734: eight_pointed_black_star;
+ 2744: snowflake;
+ 2747: sparkle;
+ 2753: question;
+ 2754: grey_question;
+ 2755: grey_exclamation;
+ 2757: exclamation;
+ 2763: heart_exclamation;
+ 2764: heart;
+ 2795: heavy_plus_sign;
+ 2796: heavy_minus_sign;
+ 2797: heavy_division_sign;
+ 2934: arrow_heading_up;
+ 2935: arrow_heading_down;
+ 3030: wavy_dash;
+ 3297: congratulations;
+ 3299: secret;
+ 1f9e1: orange_heart;
+ 1f49b: yellow_heart;
+ 1f49a: green_heart;
+ 1f499: blue_heart;
+ 1f49c: purple_heart;
+ 1f5a4: black_heart;
+ 1f90e: brown_heart;
+ 1f90d: white_heart;
+ 1f494: broken_heart;
+ 1f495: two_hearts;
+ 1f49e: revolving_hearts;
+ 1f493: heartbeat;
+ 1f497: heartpulse;
+ 1f496: sparkling_heart;
+ 1f498: cupid;
+ 1f49d: gift_heart;
+ 1f49f: heart_decoration;
+ 262e: peace;
+ 271d: cross;
+ 262a: star_and_crescent;
+ 1f549: om_symbol;
+ 1f52f: six_pointed_star;
+ 1f54e: menorah;
+ 262f: yin_yang;
+ 1f6d0: place_of_worship;
+ 26ce: ophiuchus;
+ 264a: gemini;
+ 264b: cancer;
+ 264c: leo;
+ 264d: virgo;
+ 264e: libra;
+ 264f: scorpius;
+ 1f194: id;
+ 269b: atom;
+ 1f251: accept;
+ 1f4f4: mobile_phone_off;
+ 1f4f3: vibration_mode;
+ 1f236: u6709;
+ 1f21a: u7121;
+ 1f238: u7533;
+ 1f23a: u55b6;
+ 1f237: u6708;
+ 1f19a: vs;
+ 1f4ae: white_flower;
+ 1f250: ideograph_advantage;
+ 1f234: u5408;
+ 1f235: u6e80;
+ 1f239: u5272;
+ 1f232: u7981;
+ 1f170: a;
+ 1f171: b;
+ 1f18e: ab;
+ 1f191: cl;
+ 1f17e: o2;
+ 1f198: sos;
+ 274c: x;
+ 2b55: o;
+ 1f6d1: octagonal_sign;
+ 26d4: no_entry;
+ 1f4db: name_badge;
+ 1f6ab: no_entry_sign;
+ 1f4af: 100;
+ 1f4a2: anger;
+ 1f6b7: no_pedestrians;
+ 1f6af: do_not_litter;
+ 1f6b3: no_bicycles;
+ 1f6b1: non-potable_water;
+ 1f51e: underage;
+ 1f4f5: no_mobile_phones;
+ 1f6ad: no_smoking;
+ 203c: bangbang;
+ 1f505: low_brightness;
+ 1f506: high_brightness;
+ 303d: part_alternation_mark;
+ 26a0: warning;
+ 1f6b8: children_crossing;
+ 1f531: trident;
+ 269c: fleur-de-lis;
+ 1f530: beginner;
+ 267b: recycle;
+ 1f22f: u6307;
+ 1f4b9: chart;
+ 274e: negative_squared_cross_mark;
+ 1f310: globe_with_meridians;
+ 1f4a0: diamond_shape_with_a_dot_inside;
+ 24c2: m;
+ 1f300: cyclone;
+ 1f4a4: zzz;
+ 1f3e7: atm;
+ 1f6be: wc;
+ 267f: wheelchair;
+ 1f17f: parking;
+ 1f233: u7a7a;
+ 1f202: sa;
+ 1f6c2: passport_control;
+ 1f6c3: customs;
+ 1f6c4: baggage_claim;
+ 1f6c5: left_luggage;
+ 1f6b9: mens;
+ 1f6ba: womens;
+ 1f6bc: baby_symbol;
+ 1f6bb: restroom;
+ 1f6ae: put_litter_in_its_place;
+ 1f3a6: cinema;
+ 1f4f6: signal_strength;
+ 1f201: koko;
+ 1f523: symbols;
+ 1f524: abc;
+ 1f521: abcd;
+ 1f520: capital_abcd;
+ 1f196: ng;
+ 1f197: ok;
+ 1f199: up;
+ 1f192: cool;
+ 1f195: new;
+ 1f193: free;
+ 0030-20e3: zero;
+ 0031-20e3: one;
+ 0032-20e3: two;
+ 0033-20e3: three;
+ 0034-20e3: four;
+ 0035-20e3: five;
+ 0036-20e3: six;
+ 0037-20e3: seven;
+ 0038-20e3: eight;
+ 0039-20e3: nine;
+ 1f51f: keycap_ten;
+ 1f522: 1234;
+ 0023-20e3: hash;
+ 002a-20e3: asterisk;
+ 23cf: eject;
+ 25b6: arrow_forward;
+ 23f8: pause_button;
+ 23ef: play_pause;
+ 23f9: stop_button;
+ 23fa: record_button;
+ 23ed: track_next;
+ 23ee: track_previous;
+ 23e9: fast_forward;
+ 23ea: rewind;
+ 23eb: arrow_double_up;
+ 23ec: arrow_double_down;
+ 25c0: arrow_backward;
+ 1f53c: arrow_up_small;
+ 1f53d: arrow_down_small;
+ 27a1: arrow_right;
+ 2b05: arrow_left;
+ 2b06: arrow_up;
+ 2b07: arrow_down;
+ 21aa: arrow_right_hook;
+ 21a9: leftwards_arrow_with_hook;
+ 1f500: twisted_rightwards_arrows;
+ 1f501: repeat;
+ 1f502: repeat_one;
+ 1f504: arrows_counterclockwise;
+ 1f503: arrows_clockwise;
+ 1f3b5: musical_note;
+ 1f3b6: notes;
+ 267e: infinity;
+ 1f4b2: heavy_dollar_sign;
+ 1f4b1: currency_exchange;
+ 00a9: copyright;
+ 00ae: registered;
+ 27b0: curly_loop;
+ 27bf: loop;
+ 1f51a: end;
+ 1f519: back;
+ 1f51b: on;
+ 1f51d: top;
+ 1f51c: soon;
+ 1f518: radio_button;
+ 26aa: white_circle;
+ 26ab: black_circle;
+ 1f534: red_circle;
+ 1f535: blue_circle;
+ 1f7e4: brown_circle;
+ 1f7e3: purple_circle;
+ 1f7e2: green_circle;
+ 1f7e1: yellow_circle;
+ 1f7e0: orange_circle;
+ 1f53a: small_red_triangle;
+ 1f53b: small_red_triangle_down;
+ 1f538: small_orange_diamond;
+ 1f539: small_blue_diamond;
+ 1f536: large_orange_diamond;
+ 1f537: large_blue_diamond;
+ 1f533: white_square_button;
+ 1f532: black_square_button;
+ 25aa: black_small_square;
+ 25ab: white_small_square;
+ 25fe: black_medium_small_square;
+ 25fd: white_medium_small_square;
+ 25fc: black_medium_square;
+ 25fb: white_medium_square;
+ 2b1b: black_large_square;
+ 2b1c: white_large_square;
+ 1f7e7: orange_square;
+ 1f7e6: blue_square;
+ 1f7e5: red_square;
+ 1f7eb: brown_square;
+ 1f7ea: purple_square;
+ 1f7e9: green_square;
+ 1f7e8: yellow_square;
+ 1f508: speaker;
+ 1f507: mute;
+ 1f509: sound;
+ 1f50a: loud_sound;
+ 1f514: bell;
+ 1f515: no_bell;
+ 1f4e3: mega;
+ 1f4e2: loudspeaker;
+ 1f5e8: speech_left;
+ 1f441-1f5e8: eye_in_speech_bubble;
+ 1f4ac: speech_balloon;
+ 1f4ad: thought_balloon;
+ 1f5ef: anger_right;
+ 1f0cf: black_joker;
+ 1f3b4: flower_playing_cards;
+ 1f004: mahjong;
+ 1f550: clock1;
+ 1f551: clock2;
+ 1f552: clock3;
+ 1f553: clock4;
+ 1f554: clock5;
+ 1f555: clock6;
+ 1f556: clock7;
+ 1f557: clock8;
+ 1f558: clock9;
+ 1f559: clock10;
+ 1f55a: clock11;
+ 1f55b: clock12;
+ 1f55c: clock130;
+ 1f55d: clock230;
+ 1f55e: clock330;
+ 1f55f: clock430;
+ 1f560: clock530;
+ 1f561: clock630;
+ 1f562: clock730;
+ 1f563: clock830;
+ 1f564: clock930;
+ 1f565: clock1030;
+ 1f566: clock1130;
+ 1f567: clock1230;
+ 0030: digit_zero;
+ 0031: digit_one;
+ 0032: digit_two;
+ 0033: digit_three;
+ 0034: digit_four;
+ 0035: digit_five;
+ 0036: digit_six;
+ 0037: digit_seven;
+ 0038: digit_eight;
+ 0039: digit_nine;
+ 0023: pound_symbol;
+ 002a: asterisk_symbol;
+ 26bd: soccer;
+ 1f3c0: basketball;
+ 1f3c8: football;
+ 26be: baseball;
+ 1f94e: softball;
+ 1f3be: tennis;
+ 1f3d0: volleyball;
+ 1f3c9: rugby_football;
+ 1f94f: flying_disc;
+ 1f3b1: 8ball;
+ 1f3d3: ping_pong;
+ 1f3f8: badminton;
+ 1f3d2: hockey;
+ 1f3d1: field_hockey;
+ 1f94d: lacrosse;
+ 1f3cf: cricket_game;
+ 1f945: goal;
+ 26f3: golf;
+ 1f3f9: bow_and_arrow;
+ 1f3a3: fishing_pole_and_fish;
+ 1f94a: boxing_glove;
+ 1f94b: martial_arts_uniform;
+ 1f3bd: running_shirt_with_sash;
+ 1f6f9: skateboard;
+ 1f6f7: sled;
+ 1fa82: parachute;
+ 26f8: ice_skate;
+ 1f94c: curling_stone;
+ 1f3bf: ski;
+ 26f7: skier;
+ 1f3c2: snowboarder;
+ 1f3c2-1f3fb: snowboarder_tone1;
+ 1f3c2-1f3fc: snowboarder_tone2;
+ 1f3c2-1f3fd: snowboarder_tone3;
+ 1f3c2-1f3fe: snowboarder_tone4;
+ 1f3c2-1f3ff: snowboarder_tone5;
+ 1f3cb: person_lifting_weights;
+ 1f3cb-1f3fb: person_lifting_weights_tone1;
+ 1f3cb-1f3fc: person_lifting_weights_tone2;
+ 1f3cb-1f3fd: person_lifting_weights_tone3;
+ 1f3cb-1f3fe: person_lifting_weights_tone4;
+ 1f3cb-1f3ff: person_lifting_weights_tone5;
+ 1f3cb-2640: woman_lifting_weights;
+ 1f3cb-1f3fb-2640: woman_lifting_weights_tone1;
+ 1f3cb-1f3fc-2640: woman_lifting_weights_tone2;
+ 1f3cb-1f3fd-2640: woman_lifting_weights_tone3;
+ 1f3cb-1f3fe-2640: woman_lifting_weights_tone4;
+ 1f3cb-1f3ff-2640: woman_lifting_weights_tone5;
+ 1f3cb-2642: man_lifting_weights;
+ 1f3cb-1f3fb-2642: man_lifting_weights_tone1;
+ 1f3cb-1f3fc-2642: man_lifting_weights_tone2;
+ 1f3cb-1f3fd-2642: man_lifting_weights_tone3;
+ 1f3cb-1f3fe-2642: man_lifting_weights_tone4;
+ 1f3cb-1f3ff-2642: man_lifting_weights_tone5;
+ 1f93c: people_wrestling;
+ 1f93c-2640: women_wrestling;
+ 1f93c-2642: men_wrestling;
+ 1f938: person_doing_cartwheel;
+ 1f938-1f3fb: person_doing_cartwheel_tone1;
+ 1f938-1f3fc: person_doing_cartwheel_tone2;
+ 1f938-1f3fd: person_doing_cartwheel_tone3;
+ 1f938-1f3fe: person_doing_cartwheel_tone4;
+ 1f938-1f3ff: person_doing_cartwheel_tone5;
+ 1f938-2640: woman_cartwheeling;
+ 1f938-1f3fb-2640: woman_cartwheeling_tone1;
+ 1f938-1f3fc-2640: woman_cartwheeling_tone2;
+ 1f938-1f3fd-2640: woman_cartwheeling_tone3;
+ 1f938-1f3fe-2640: woman_cartwheeling_tone4;
+ 1f938-1f3ff-2640: woman_cartwheeling_tone5;
+ 1f938-2642: man_cartwheeling;
+ 1f938-1f3fb-2642: man_cartwheeling_tone1;
+ 1f938-1f3fc-2642: man_cartwheeling_tone2;
+ 1f938-1f3fd-2642: man_cartwheeling_tone3;
+ 1f938-1f3fe-2642: man_cartwheeling_tone4;
+ 1f938-1f3ff-2642: man_cartwheeling_tone5;
+ 26f9: person_bouncing_ball;
+ 26f9-1f3fb: person_bouncing_ball_tone1;
+ 26f9-1f3fc: person_bouncing_ball_tone2;
+ 26f9-1f3fd: person_bouncing_ball_tone3;
+ 26f9-1f3fe: person_bouncing_ball_tone4;
+ 26f9-1f3ff: person_bouncing_ball_tone5;
+ 26f9-2640: woman_bouncing_ball;
+ 26f9-1f3fb-2640: woman_bouncing_ball_tone1;
+ 26f9-1f3fc-2640: woman_bouncing_ball_tone2;
+ 26f9-1f3fd-2640: woman_bouncing_ball_tone3;
+ 26f9-1f3fe-2640: woman_bouncing_ball_tone4;
+ 26f9-1f3ff-2640: woman_bouncing_ball_tone5;
+ 26f9-2642: man_bouncing_ball;
+ 26f9-1f3fb-2642: man_bouncing_ball_tone1;
+ 26f9-1f3fc-2642: man_bouncing_ball_tone2;
+ 26f9-1f3fd-2642: man_bouncing_ball_tone3;
+ 26f9-1f3fe-2642: man_bouncing_ball_tone4;
+ 26f9-1f3ff-2642: man_bouncing_ball_tone5;
+ 1f93a: person_fencing;
+ 1f93e: person_playing_handball;
+ 1f93e-1f3fb: person_playing_handball_tone1;
+ 1f93e-1f3fc: person_playing_handball_tone2;
+ 1f93e-1f3fd: person_playing_handball_tone3;
+ 1f93e-1f3fe: person_playing_handball_tone4;
+ 1f93e-1f3ff: person_playing_handball_tone5;
+ 1f93e-2640: woman_playing_handball;
+ 1f93e-1f3fb-2640: woman_playing_handball_tone1;
+ 1f93e-1f3fc-2640: woman_playing_handball_tone2;
+ 1f93e-1f3fd-2640: woman_playing_handball_tone3;
+ 1f93e-1f3fe-2640: woman_playing_handball_tone4;
+ 1f93e-1f3ff-2640: woman_playing_handball_tone5;
+ 1f93e-2642: man_playing_handball;
+ 1f93e-1f3fb-2642: man_playing_handball_tone1;
+ 1f93e-1f3fc-2642: man_playing_handball_tone2;
+ 1f93e-1f3fd-2642: man_playing_handball_tone3;
+ 1f93e-1f3fe-2642: man_playing_handball_tone4;
+ 1f93e-1f3ff-2642: man_playing_handball_tone5;
+ 1f3cc: person_golfing;
+ 1f3cc-1f3fb: person_golfing_tone1;
+ 1f3cc-1f3fc: person_golfing_tone2;
+ 1f3cc-1f3fd: person_golfing_tone3;
+ 1f3cc-1f3fe: person_golfing_tone4;
+ 1f3cc-1f3ff: person_golfing_tone5;
+ 1f3cc-2640: woman_golfing;
+ 1f3cc-1f3fb-2640: woman_golfing_tone1;
+ 1f3cc-1f3fc-2640: woman_golfing_tone2;
+ 1f3cc-1f3fd-2640: woman_golfing_tone3;
+ 1f3cc-1f3fe-2640: woman_golfing_tone4;
+ 1f3cc-1f3ff-2640: woman_golfing_tone5;
+ 1f3cc-2642: man_golfing;
+ 1f3cc-1f3fb-2642: man_golfing_tone1;
+ 1f3cc-1f3fc-2642: man_golfing_tone2;
+ 1f3cc-1f3fd-2642: man_golfing_tone3;
+ 1f3cc-1f3fe-2642: man_golfing_tone4;
+ 1f3cc-1f3ff-2642: man_golfing_tone5;
+ 1f3c7: horse_racing;
+ 1f3c7-1f3fb: horse_racing_tone1;
+ 1f3c7-1f3fc: horse_racing_tone2;
+ 1f3c7-1f3fd: horse_racing_tone3;
+ 1f3c7-1f3fe: horse_racing_tone4;
+ 1f3c7-1f3ff: horse_racing_tone5;
+ 1f9d8: person_in_lotus_position;
+ 1f9d8-1f3fb: person_in_lotus_position_tone1;
+ 1f9d8-1f3fc: person_in_lotus_position_tone2;
+ 1f9d8-1f3fd: person_in_lotus_position_tone3;
+ 1f9d8-1f3fe: person_in_lotus_position_tone4;
+ 1f9d8-1f3ff: person_in_lotus_position_tone5;
+ 1f9d8-2640: woman_in_lotus_position;
+ 1f9d8-1f3fb-2640: woman_in_lotus_position_tone1;
+ 1f9d8-1f3fc-2640: woman_in_lotus_position_tone2;
+ 1f9d8-1f3fd-2640: woman_in_lotus_position_tone3;
+ 1f9d8-1f3fe-2640: woman_in_lotus_position_tone4;
+ 1f9d8-1f3ff-2640: woman_in_lotus_position_tone5;
+ 1f9d8-2642: man_in_lotus_position;
+ 1f9d8-1f3fb-2642: man_in_lotus_position_tone1;
+ 1f9d8-1f3fc-2642: man_in_lotus_position_tone2;
+ 1f9d8-1f3fd-2642: man_in_lotus_position_tone3;
+ 1f9d8-1f3fe-2642: man_in_lotus_position_tone4;
+ 1f9d8-1f3ff-2642: man_in_lotus_position_tone5;
+ 1f3c4: person_surfing;
+ 1f3c4-1f3fb: person_surfing_tone1;
+ 1f3c4-1f3fc: person_surfing_tone2;
+ 1f3c4-1f3fd: person_surfing_tone3;
+ 1f3c4-1f3fe: person_surfing_tone4;
+ 1f3c4-1f3ff: person_surfing_tone5;
+ 1f3c4-2640: woman_surfing;
+ 1f3c4-1f3fb-2640: woman_surfing_tone1;
+ 1f3c4-1f3fc-2640: woman_surfing_tone2;
+ 1f3c4-1f3fd-2640: woman_surfing_tone3;
+ 1f3c4-1f3fe-2640: woman_surfing_tone4;
+ 1f3c4-1f3ff-2640: woman_surfing_tone5;
+ 1f3c4-2642: man_surfing;
+ 1f3c4-1f3fb-2642: man_surfing_tone1;
+ 1f3c4-1f3fc-2642: man_surfing_tone2;
+ 1f3c4-1f3fd-2642: man_surfing_tone3;
+ 1f3c4-1f3fe-2642: man_surfing_tone4;
+ 1f3c4-1f3ff-2642: man_surfing_tone5;
+ 1f3ca: person_swimming;
+ 1f3ca-1f3fb: person_swimming_tone1;
+ 1f3ca-1f3fc: person_swimming_tone2;
+ 1f3ca-1f3fd: person_swimming_tone3;
+ 1f3ca-1f3fe: person_swimming_tone4;
+ 1f3ca-1f3ff: person_swimming_tone5;
+ 1f3ca-2640: woman_swimming;
+ 1f3ca-1f3fb-2640: woman_swimming_tone1;
+ 1f3ca-1f3fc-2640: woman_swimming_tone2;
+ 1f3ca-1f3fd-2640: woman_swimming_tone3;
+ 1f3ca-1f3fe-2640: woman_swimming_tone4;
+ 1f3ca-1f3ff-2640: woman_swimming_tone5;
+ 1f3ca-2642: man_swimming;
+ 1f3ca-1f3fb-2642: man_swimming_tone1;
+ 1f3ca-1f3fc-2642: man_swimming_tone2;
+ 1f3ca-1f3fd-2642: man_swimming_tone3;
+ 1f3ca-1f3fe-2642: man_swimming_tone4;
+ 1f3ca-1f3ff-2642: man_swimming_tone5;
+ 1f93d: person_playing_water_polo;
+ 1f93d-1f3fb: person_playing_water_polo_tone1;
+ 1f93d-1f3fc: person_playing_water_polo_tone2;
+ 1f93d-1f3fd: person_playing_water_polo_tone3;
+ 1f93d-1f3fe: person_playing_water_polo_tone4;
+ 1f93d-1f3ff: person_playing_water_polo_tone5;
+ 1f93d-2640: woman_playing_water_polo;
+ 1f93d-1f3fb-2640: woman_playing_water_polo_tone1;
+ 1f93d-1f3fc-2640: woman_playing_water_polo_tone2;
+ 1f93d-1f3fd-2640: woman_playing_water_polo_tone3;
+ 1f93d-1f3fe-2640: woman_playing_water_polo_tone4;
+ 1f93d-1f3ff-2640: woman_playing_water_polo_tone5;
+ 1f93d-2642: man_playing_water_polo;
+ 1f93d-1f3fb-2642: man_playing_water_polo_tone1;
+ 1f93d-1f3fc-2642: man_playing_water_polo_tone2;
+ 1f93d-1f3fd-2642: man_playing_water_polo_tone3;
+ 1f93d-1f3fe-2642: man_playing_water_polo_tone4;
+ 1f93d-1f3ff-2642: man_playing_water_polo_tone5;
+ 1f6a3: person_rowing_boat;
+ 1f6a3-1f3fb: person_rowing_boat_tone1;
+ 1f6a3-1f3fc: person_rowing_boat_tone2;
+ 1f6a3-1f3fd: person_rowing_boat_tone3;
+ 1f6a3-1f3fe: person_rowing_boat_tone4;
+ 1f6a3-1f3ff: person_rowing_boat_tone5;
+ 1f6a3-2640: woman_rowing_boat;
+ 1f6a3-1f3fb-2640: woman_rowing_boat_tone1;
+ 1f6a3-1f3fc-2640: woman_rowing_boat_tone2;
+ 1f6a3-1f3fd-2640: woman_rowing_boat_tone3;
+ 1f6a3-1f3fe-2640: woman_rowing_boat_tone4;
+ 1f6a3-1f3ff-2640: woman_rowing_boat_tone5;
+ 1f6a3-2642: man_rowing_boat;
+ 1f6a3-1f3fb-2642: man_rowing_boat_tone1;
+ 1f6a3-1f3fc-2642: man_rowing_boat_tone2;
+ 1f6a3-1f3fd-2642: man_rowing_boat_tone3;
+ 1f6a3-1f3fe-2642: man_rowing_boat_tone4;
+ 1f6a3-1f3ff-2642: man_rowing_boat_tone5;
+ 1f9d7: person_climbing;
+ 1f9d7-1f3fb: person_climbing_tone1;
+ 1f9d7-1f3fc: person_climbing_tone2;
+ 1f9d7-1f3fd: person_climbing_tone3;
+ 1f9d7-1f3fe: person_climbing_tone4;
+ 1f9d7-1f3ff: person_climbing_tone5;
+ 1f9d7-2640: woman_climbing;
+ 1f9d7-1f3fb-2640: woman_climbing_tone1;
+ 1f9d7-1f3fc-2640: woman_climbing_tone2;
+ 1f9d7-1f3fd-2640: woman_climbing_tone3;
+ 1f9d7-1f3fe-2640: woman_climbing_tone4;
+ 1f9d7-1f3ff-2640: woman_climbing_tone5;
+ 1f9d7-2642: man_climbing;
+ 1f9d7-1f3fb-2642: man_climbing_tone1;
+ 1f9d7-1f3fc-2642: man_climbing_tone2;
+ 1f9d7-1f3fd-2642: man_climbing_tone3;
+ 1f9d7-1f3fe-2642: man_climbing_tone4;
+ 1f9d7-1f3ff-2642: man_climbing_tone5;
+ 1f6b5: person_mountain_biking;
+ 1f6b5-1f3fb: person_mountain_biking_tone1;
+ 1f6b5-1f3fc: person_mountain_biking_tone2;
+ 1f6b5-1f3fd: person_mountain_biking_tone3;
+ 1f6b5-1f3fe: person_mountain_biking_tone4;
+ 1f6b5-1f3ff: person_mountain_biking_tone5;
+ 1f6b5-2640: woman_mountain_biking;
+ 1f6b5-1f3fb-2640: woman_mountain_biking_tone1;
+ 1f6b5-1f3fc-2640: woman_mountain_biking_tone2;
+ 1f6b5-1f3fd-2640: woman_mountain_biking_tone3;
+ 1f6b5-1f3fe-2640: woman_mountain_biking_tone4;
+ 1f6b5-1f3ff-2640: woman_mountain_biking_tone5;
+ 1f6b5-2642: man_mountain_biking;
+ 1f6b5-1f3fb-2642: man_mountain_biking_tone1;
+ 1f6b5-1f3fc-2642: man_mountain_biking_tone2;
+ 1f6b5-1f3fd-2642: man_mountain_biking_tone3;
+ 1f6b5-1f3fe-2642: man_mountain_biking_tone4;
+ 1f6b5-1f3ff-2642: man_mountain_biking_tone5;
+ 1f6b4: person_biking;
+ 1f6b4-1f3fb: person_biking_tone1;
+ 1f6b4-1f3fc: person_biking_tone2;
+ 1f6b4-1f3fd: person_biking_tone3;
+ 1f6b4-1f3fe: person_biking_tone4;
+ 1f6b4-1f3ff: person_biking_tone5;
+ 1f6b4-2640: woman_biking;
+ 1f6b4-1f3fb-2640: woman_biking_tone1;
+ 1f6b4-1f3fc-2640: woman_biking_tone2;
+ 1f6b4-1f3fd-2640: woman_biking_tone3;
+ 1f6b4-1f3fe-2640: woman_biking_tone4;
+ 1f6b4-1f3ff-2640: woman_biking_tone5;
+ 1f6b4-2642: man_biking;
+ 1f6b4-1f3fb-2642: man_biking_tone1;
+ 1f6b4-1f3fc-2642: man_biking_tone2;
+ 1f6b4-1f3fd-2642: man_biking_tone3;
+ 1f6b4-1f3fe-2642: man_biking_tone4;
+ 1f6b4-1f3ff-2642: man_biking_tone5;
+ 1f3c6: trophy;
+ 1f947: first_place;
+ 1f948: second_place;
+ 1f949: third_place;
+ 1f3c5: medal;
+ 1f396: military_medal;
+ 1f3f5: rosette;
+ 1f397: reminder_ribbon;
+ 1f3ab: ticket;
+ 1f39f: tickets;
+ 1f3aa: circus_tent;
+ 1f939: person_juggling;
+ 1f939-1f3fb: person_juggling_tone1;
+ 1f939-1f3fc: person_juggling_tone2;
+ 1f939-1f3fd: person_juggling_tone3;
+ 1f939-1f3fe: person_juggling_tone4;
+ 1f939-1f3ff: person_juggling_tone5;
+ 1f939-2640: woman_juggling;
+ 1f939-1f3fb-2640: woman_juggling_tone1;
+ 1f939-1f3fc-2640: woman_juggling_tone2;
+ 1f939-1f3fd-2640: woman_juggling_tone3;
+ 1f939-1f3fe-2640: woman_juggling_tone4;
+ 1f939-1f3ff-2640: woman_juggling_tone5;
+ 1f939-2642: man_juggling;
+ 1f939-1f3fb-2642: man_juggling_tone1;
+ 1f939-1f3fc-2642: man_juggling_tone2;
+ 1f939-1f3fd-2642: man_juggling_tone3;
+ 1f939-1f3fe-2642: man_juggling_tone4;
+ 1f939-1f3ff-2642: man_juggling_tone5;
+ 1f3ad: performing_arts;
+ 1f3a8: art;
+ 1f3ac: clapper;
+ 1f3a4: microphone;
+ 1f3a7: headphones;
+ 1f3bc: musical_score;
+ 1f3b9: musical_keyboard;
+ 1f941: drum;
+ 1f3b7: saxophone;
+ 1f3ba: trumpet;
+ 1fa95: banjo;
+ 1f3b8: guitar;
+ 1f3bb: violin;
+ 1f3b2: game_die;
+ 265f: chess_pawn;
+ 1f3af: dart;
+ 1fa81: kite;
+ 1fa80: yo_yo;
+ 1f3b3: bowling;
+ 1f3ae: video_game;
+ 1f3b0: slot_machine;
+ 1f9e9: jigsaw;
+ 231a: watch;
+ 1f4f1: iphone;
+ 1f4f2: calling;
+ 1f4bb: computer;
+ 1f5a5: desktop;
+ 1f5a8: printer;
+ 1f5b1: mouse_three_button;
+ 1f5b2: trackball;
+ 1f579: joystick;
+ 1f5dc: compression;
+ 1f4bd: minidisc;
+ 1f4be: floppy_disk;
+ 1f4bf: cd;
+ 1f4c0: dvd;
+ 1f4fc: vhs;
+ 1f4f7: camera;
+ 1f4f8: camera_with_flash;
+ 1f4f9: video_camera;
+ 1f3a5: movie_camera;
+ 1f4fd: projector;
+ 1f39e: film_frames;
+ 1f4de: telephone_receiver;
+ 260e: telephone;
+ 1f4df: pager;
+ 1f4e0: fax;
+ 1f4fa: tv;
+ 1f4fb: radio;
+ 1f399: microphone2;
+ 1f39a: level_slider;
+ 1f39b: control_knobs;
+ 1f9ed: compass;
+ 23f1: stopwatch;
+ 23f2: timer;
+ 23f0: alarm_clock;
+ 1f570: clock;
+ 231b: hourglass;
+ 23f3: hourglass_flowing_sand;
+ 1f4e1: satellite;
+ 1f50b: battery;
+ 1f50c: electric_plug;
+ 1f4a1: bulb;
+ 1f526: flashlight;
+ 1f56f: candle;
+ 1f9ef: fire_extinguisher;
+ 1f6e2: oil;
+ 1f4b8: money_with_wings;
+ 1f4b5: dollar;
+ 1f4b4: yen;
+ 1f4b6: euro;
+ 1f4b7: pound;
+ 1f4b0: moneybag;
+ 1f4b3: credit_card;
+ 1f48e: gem;
+ 1f9f0: toolbox;
+ 1f527: wrench;
+ 1f528: hammer;
+ 1f6e0: tools;
+ 26cf: pick;
+ 1f529: nut_and_bolt;
+ 1f9f1: bricks;
+ 26d3: chains;
+ 1f9f2: magnet;
+ 1f52b: gun;
+ 1f4a3: bomb;
+ 1f9e8: firecracker;
+ 1fa93: axe;
+ 1fa92: razor;
+ 1f52a: knife;
+ 1f5e1: dagger;
+ 1f6e1: shield;
+ 1f6ac: smoking;
+ 26b0: coffin;
+ 26b1: urn;
+ 1f3fa: amphora;
+ 1fa94: diya_lamp;
+ 1f52e: crystal_ball;
+ 1f4ff: prayer_beads;
+ 1f9ff: nazar_amulet;
+ 1f488: barber;
+ 1f52d: telescope;
+ 1f52c: microscope;
+ 1f573: hole;
+ 1f9af: probing_cane;
+ 1fa7a: stethoscope;
+ 1fa79: adhesive_bandage;
+ 1f48a: pill;
+ 1f489: syringe;
+ 1fa78: drop_of_blood;
+ 1f9ec: dna;
+ 1f9a0: microbe;
+ 1f9eb: petri_dish;
+ 1f9ea: test_tube;
+ 1f321: thermometer;
+ 1fa91: chair;
+ 1f9f9: broom;
+ 1f9fa: basket;
+ 1f9fb: roll_of_paper;
+ 1f6bd: toilet;
+ 1f6b0: potable_water;
+ 1f6bf: shower;
+ 1f6c1: bathtub;
+ 1f6c0: bath;
+ 1f6c0-1f3fb: bath_tone1;
+ 1f6c0-1f3fc: bath_tone2;
+ 1f6c0-1f3fd: bath_tone3;
+ 1f6c0-1f3fe: bath_tone4;
+ 1f6c0-1f3ff: bath_tone5;
+ 1f9fc: soap;
+ 1f9fd: sponge;
+ 1f9f4: squeeze_bottle;
+ 1f6ce: bellhop;
+ 1f511: key;
+ 1f5dd: key2;
+ 1f6aa: door;
+ 1f6cb: couch;
+ 1f6cf: bed;
+ 1f6cc: sleeping_accommodation;
+ 1f6cc-1f3fb: person_in_bed_tone1;
+ 1f6cc-1f3fc: person_in_bed_tone2;
+ 1f6cc-1f3fd: person_in_bed_tone3;
+ 1f6cc-1f3fe: person_in_bed_tone4;
+ 1f6cc-1f3ff: person_in_bed_tone5;
+ 1f9f8: teddy_bear;
+ 1f5bc: frame_photo;
+ 1f6cd: shopping_bags;
+ 1f6d2: shopping_cart;
+ 1f381: gift;
+ 1f388: balloon;
+ 1f38f: flags;
+ 1f380: ribbon;
+ 1f38a: confetti_ball;
+ 1f389: tada;
+ 1f38e: dolls;
+ 1f3ee: izakaya_lantern;
+ 1f390: wind_chime;
+ 1f9e7: red_envelope;
+ 1f4e9: envelope_with_arrow;
+ 1f4e8: incoming_envelope;
+ 1f4e7: e-mail;
+ 1f48c: love_letter;
+ 1f4e5: inbox_tray;
+ 1f4e4: outbox_tray;
+ 1f4e6: package;
+ 1f3f7: label;
+ 1f4ea: mailbox_closed;
+ 1f4eb: mailbox;
+ 1f4ec: mailbox_with_mail;
+ 1f4ed: mailbox_with_no_mail;
+ 1f4ee: postbox;
+ 1f4ef: postal_horn;
+ 1f4dc: scroll;
+ 1f4c3: page_with_curl;
+ 1f4c4: page_facing_up;
+ 1f4d1: bookmark_tabs;
+ 1f9fe: receipt;
+ 1f4ca: bar_chart;
+ 1f4c8: chart_with_upwards_trend;
+ 1f4c9: chart_with_downwards_trend;
+ 1f5d2: notepad_spiral;
+ 1f5d3: calendar_spiral;
+ 1f4c6: calendar;
+ 1f4c5: date;
+ 1f5d1: wastebasket;
+ 1f4c7: card_index;
+ 1f5c3: card_box;
+ 1f5f3: ballot_box;
+ 1f5c4: file_cabinet;
+ 1f4cb: clipboard;
+ 1f4c1: file_folder;
+ 1f4c2: open_file_folder;
+ 1f5c2: dividers;
+ 1f5de: newspaper2;
+ 1f4f0: newspaper;
+ 1f4d3: notebook;
+ 1f4d4: notebook_with_decorative_cover;
+ 1f4d2: ledger;
+ 1f4d5: closed_book;
+ 1f4d7: green_book;
+ 1f4d8: blue_book;
+ 1f4d9: orange_book;
+ 1f4da: books;
+ 1f4d6: book;
+ 1f516: bookmark;
+ 1f9f7: safety_pin;
+ 1f517: link;
+ 1f4ce: paperclip;
+ 1f587: paperclips;
+ 1f4d0: triangular_ruler;
+ 1f4cf: straight_ruler;
+ 1f9ee: abacus;
+ 1f4cc: pushpin;
+ 1f4cd: round_pushpin;
+ 1f58a: pen_ballpoint;
+ 1f58b: pen_fountain;
+ 1f58c: paintbrush;
+ 1f58d: crayon;
+ 1f4dd: pencil;
+ 270f: pencil2;
+ 1f50d: mag;
+ 1f50e: mag_right;
+ 1f50f: lock_with_ink_pen;
+ 1f510: closed_lock_with_key;
+ 1f512: lock;
+ 1f513: unlock;
+ 1f436: dog;
+ 1f431: cat;
+ 1f42d: mouse;
+ 1f439: hamster;
+ 1f430: rabbit;
+ 1f98a: fox;
+ 1f43b: bear;
+ 1f43c: panda_face;
+ 1f428: koala;
+ 1f42f: tiger;
+ 1f981: lion_face;
+ 1f42e: cow;
+ 1f437: pig;
+ 1f43d: pig_nose;
+ 1f438: frog;
+ 1f435: monkey_face;
+ 1f648: see_no_evil;
+ 1f649: hear_no_evil;
+ 1f64a: speak_no_evil;
+ 1f412: monkey;
+ 1f414: chicken;
+ 1f427: penguin;
+ 1f426: bird;
+ 1f424: baby_chick;
+ 1f423: hatching_chick;
+ 1f425: hatched_chick;
+ 1f986: duck;
+ 1f985: eagle;
+ 1f989: owl;
+ 1f987: bat;
+ 1f43a: wolf;
+ 1f417: boar;
+ 1f434: horse;
+ 1f984: unicorn;
+ 1f41d: bee;
+ 1f41b: bug;
+ 1f98b: butterfly;
+ 1f40c: snail;
+ 1f41a: shell;
+ 1f41e: beetle;
+ 1f41c: ant;
+ 1f99f: mosquito;
+ 1f997: cricket;
+ 1f577: spider;
+ 1f578: spider_web;
+ 1f982: scorpion;
+ 1f422: turtle;
+ 1f40d: snake;
+ 1f98e: lizard;
+ 1f996: t_rex;
+ 1f995: sauropod;
+ 1f419: octopus;
+ 1f991: squid;
+ 1f990: shrimp;
+ 1f99e: lobster;
+ 1f9aa: oyster;
+ 1f980: crab;
+ 1f421: blowfish;
+ 1f420: tropical_fish;
+ 1f41f: fish;
+ 1f42c: dolphin;
+ 1f433: whale;
+ 1f40b: whale2;
+ 1f988: shark;
+ 1f40a: crocodile;
+ 1f405: tiger2;
+ 1f406: leopard;
+ 1f993: zebra;
+ 1f98d: gorilla;
+ 1f9a7: orangutan;
+ 1f418: elephant;
+ 1f99b: hippopotamus;
+ 1f98f: rhino;
+ 1f42a: dromedary_camel;
+ 1f42b: camel;
+ 1f992: giraffe;
+ 1f998: kangaroo;
+ 1f403: water_buffalo;
+ 1f402: ox;
+ 1f404: cow2;
+ 1f40e: racehorse;
+ 1f416: pig2;
+ 1f40f: ram;
+ 1f999: llama;
+ 1f411: sheep;
+ 1f410: goat;
+ 1f98c: deer;
+ 1f415: dog2;
+ 1f9ae: guide_dog;
+ 1f415-1f9ba: service_dog;
+ 1f429: poodle;
+ 1f408: cat2;
+ 1f413: rooster;
+ 1f983: turkey;
+ 1f99a: peacock;
+ 1f99c: parrot;
+ 1f9a2: swan;
+ 1f9a9: flamingo;
+ 1f54a: dove;
+ 1f407: rabbit2;
+ 1f9a5: sloth;
+ 1f9a6: otter;
+ 1f9a8: skunk;
+ 1f99d: raccoon;
+ 1f9a1: badger;
+ 1f401: mouse2;
+ 1f400: rat;
+ 1f43f: chipmunk;
+ 1f994: hedgehog;
+ 1f43e: feet;
+ 1f409: dragon;
+ 1f432: dragon_face;
+ 1f335: cactus;
+ 1f384: christmas_tree;
+ 1f332: evergreen_tree;
+ 1f333: deciduous_tree;
+ 1f334: palm_tree;
+ 1f331: seedling;
+ 1f33f: herb;
+ 1f340: four_leaf_clover;
+ 1f38d: bamboo;
+ 1f38b: tanabata_tree;
+ 1f343: leaves;
+ 1f342: fallen_leaf;
+ 1f341: maple_leaf;
+ 1f344: mushroom;
+ 1f33e: ear_of_rice;
+ 1f490: bouquet;
+ 1f337: tulip;
+ 1f339: rose;
+ 1f940: wilted_rose;
+ 1f33a: hibiscus;
+ 1f338: cherry_blossom;
+ 1f33c: blossom;
+ 1f33b: sunflower;
+ 1f31e: sun_with_face;
+ 1f31d: full_moon_with_face;
+ 1f31b: first_quarter_moon_with_face;
+ 1f31c: last_quarter_moon_with_face;
+ 1f31a: new_moon_with_face;
+ 1f315: full_moon;
+ 1f316: waning_gibbous_moon;
+ 1f317: last_quarter_moon;
+ 1f318: waning_crescent_moon;
+ 1f311: new_moon;
+ 1f312: waxing_crescent_moon;
+ 1f313: first_quarter_moon;
+ 1f314: waxing_gibbous_moon;
+ 1f319: crescent_moon;
+ 1f30e: earth_americas;
+ 1f30d: earth_africa;
+ 1f30f: earth_asia;
+ 1fa90: ringed_planet;
+ 1f4ab: dizzy;
+ 2b50: star;
+ 1f31f: star2;
+ 26a1: zap;
+ 1f4a5: boom;
+ 1f525: fire;
+ 1f32a: cloud_tornado;
+ 1f308: rainbow;
+ 1f324: white_sun_small_cloud;
+ 26c5: partly_sunny;
+ 1f325: white_sun_cloud;
+ 1f326: white_sun_rain_cloud;
+ 1f327: cloud_rain;
+ 26c8: thunder_cloud_rain;
+ 1f329: cloud_lightning;
+ 1f328: cloud_snow;
+ 26c4: snowman;
+ 1f32c: wind_blowing_face;
+ 1f4a8: dash;
+ 1f4a7: droplet;
+ 1f4a6: sweat_drops;
+ 1f30a: ocean;
+ 1f32b: fog;
+ 1f34f: green_apple;
+ 1f34e: apple;
+ 1f350: pear;
+ 1f34a: tangerine;
+ 1f34b: lemon;
+ 1f34c: banana;
+ 1f349: watermelon;
+ 1f347: grapes;
+ 1f353: strawberry;
+ 1f348: melon;
+ 1f352: cherries;
+ 1f351: peach;
+ 1f96d: mango;
+ 1f34d: pineapple;
+ 1f965: coconut;
+ 1f95d: kiwi;
+ 1f345: tomato;
+ 1f346: eggplant;
+ 1f951: avocado;
+ 1f966: broccoli;
+ 1f96c: leafy_green;
+ 1f952: cucumber;
+ 1f336: hot_pepper;
+ 1f33d: corn;
+ 1f955: carrot;
+ 1f9c5: onion;
+ 1f9c4: garlic;
+ 1f954: potato;
+ 1f360: sweet_potato;
+ 1f950: croissant;
+ 1f96f: bagel;
+ 1f35e: bread;
+ 1f956: french_bread;
+ 1f968: pretzel;
+ 1f9c0: cheese;
+ 1f95a: egg;
+ 1f373: cooking;
+ 1f95e: pancakes;
+ 1f9c7: waffle;
+ 1f953: bacon;
+ 1f969: cut_of_meat;
+ 1f357: poultry_leg;
+ 1f356: meat_on_bone;
+ 1f32d: hotdog;
+ 1f354: hamburger;
+ 1f35f: fries;
+ 1f355: pizza;
+ 1f96a: sandwich;
+ 1f9c6: falafel;
+ 1f959: stuffed_flatbread;
+ 1f32e: taco;
+ 1f32f: burrito;
+ 1f957: salad;
+ 1f958: shallow_pan_of_food;
+ 1f96b: canned_food;
+ 1f35d: spaghetti;
+ 1f35c: ramen;
+ 1f372: stew;
+ 1f35b: curry;
+ 1f363: sushi;
+ 1f371: bento;
+ 1f95f: dumpling;
+ 1f364: fried_shrimp;
+ 1f359: rice_ball;
+ 1f35a: rice;
+ 1f358: rice_cracker;
+ 1f365: fish_cake;
+ 1f960: fortune_cookie;
+ 1f96e: moon_cake;
+ 1f362: oden;
+ 1f361: dango;
+ 1f367: shaved_ice;
+ 1f368: ice_cream;
+ 1f366: icecream;
+ 1f967: pie;
+ 1f9c1: cupcake;
+ 1f370: cake;
+ 1f382: birthday;
+ 1f36e: custard;
+ 1f36d: lollipop;
+ 1f36c: candy;
+ 1f36b: chocolate_bar;
+ 1f37f: popcorn;
+ 1f369: doughnut;
+ 1f36a: cookie;
+ 1f330: chestnut;
+ 1f95c: peanuts;
+ 1f36f: honey_pot;
+ 1f9c8: butter;
+ 1f95b: milk;
+ 1f37c: baby_bottle;
+ 1f375: tea;
+ 1f9c9: mate;
+ 1f964: cup_with_straw;
+ 1f9c3: beverage_box;
+ 1f9ca: ice_cube;
+ 1f376: sake;
+ 1f37a: beer;
+ 1f37b: beers;
+ 1f942: champagne_glass;
+ 1f377: wine_glass;
+ 1f943: tumbler_glass;
+ 1f378: cocktail;
+ 1f379: tropical_drink;
+ 1f37e: champagne;
+ 1f944: spoon;
+ 1f374: fork_and_knife;
+ 1f37d: fork_knife_plate;
+ 1f963: bowl_with_spoon;
+ 1f961: takeout_box;
+ 1f962: chopsticks;
+ 1f9c2: salt;
+ 1f60a: blush;
+ 1f607: innocent;
+ 1f642: slight_smile;
+ 1f643: upside_down;
+ 1f609: wink;
+ 1f600: grinning;
+ 1f603: smiley;
+ 1f604: smile;
+ 1f601: grin;
+ 1f606: laughing;
+ 1f605: sweat_smile;
+ 1f602: joy;
+ 1f923: rofl;
+ 263a: relaxed;
+ 1f60c: relieved;
+ 1f60d: heart_eyes;
+ 1f970: smiling_face_with_3_hearts;
+ 1f618: kissing_heart;
+ 1f617: kissing;
+ 1f619: kissing_smiling_eyes;
+ 1f61a: kissing_closed_eyes;
+ 1f60b: yum;
+ 1f61b: stuck_out_tongue;
+ 1f61d: stuck_out_tongue_closed_eyes;
+ 1f61c: stuck_out_tongue_winking_eye;
+ 1f92a: zany_face;
+ 1f928: face_with_raised_eyebrow;
+ 1f9d0: face_with_monocle;
+ 1f913: nerd;
+ 1f60e: sunglasses;
+ 1f929: star_struck;
+ 1f973: partying_face;
+ 1f60f: smirk;
+ 1f612: unamused;
+ 1f61e: disappointed;
+ 1f614: pensive;
+ 1f61f: worried;
+ 1f615: confused;
+ 1f641: slight_frown;
+ 1f623: persevere;
+ 1f616: confounded;
+ 1f62b: tired_face;
+ 1f629: weary;
+ 1f971: yawning_face;
+ 1f97a: pleading_face;
+ 1f622: cry;
+ 1f62d: sob;
+ 1f624: triumph;
+ 1f620: angry;
+ 1f621: rage;
+ 1f92c: face_with_symbols_over_mouth;
+ 1f92f: exploding_head;
+ 1f633: flushed;
+ 1f975: hot_face;
+ 1f976: cold_face;
+ 1f631: scream;
+ 1f628: fearful;
+ 1f630: cold_sweat;
+ 1f625: disappointed_relieved;
+ 1f613: sweat;
+ 1f917: hugging;
+ 1f914: thinking;
+ 1f92d: face_with_hand_over_mouth;
+ 1f92b: shushing_face;
+ 1f925: lying_face;
+ 1f636: no_mouth;
+ 1f610: neutral_face;
+ 1f611: expressionless;
+ 1f62c: grimacing;
+ 1f644: rolling_eyes;
+ 1f62f: hushed;
+ 1f626: frowning;
+ 1f627: anguished;
+ 1f62e: open_mouth;
+ 1f632: astonished;
+ 1f634: sleeping;
+ 1f924: drooling_face;
+ 1f62a: sleepy;
+ 1f635: dizzy_face;
+ 1f910: zipper_mouth;
+ 1f974: woozy_face;
+ 1f922: nauseated_face;
+ 1f92e: face_vomiting;
+ 1f927: sneezing_face;
+ 1f637: mask;
+ 1f912: thermometer_face;
+ 1f915: head_bandage;
+ 1f911: money_mouth;
+ 1f920: cowboy;
+ 1f608: smiling_imp;
+ 1f47f: imp;
+ 1f479: japanese_ogre;
+ 1f47a: japanese_goblin;
+ 1f921: clown;
+ 1f4a9: poop;
+ 1f47b: ghost;
+ 1f480: skull;
+ 1f47d: alien;
+ 1f47e: space_invader;
+ 1f916: robot;
+ 1f383: jack_o_lantern;
+ 1f63a: smiley_cat;
+ 1f638: smile_cat;
+ 1f639: joy_cat;
+ 1f63b: heart_eyes_cat;
+ 1f63c: smirk_cat;
+ 1f63d: kissing_cat;
+ 1f640: scream_cat;
+ 1f63f: crying_cat_face;
+ 1f63e: pouting_cat;
+ 1f91d: handshake;
+ 1f932: palms_up_together;
+ 1f932-1f3fb: palms_up_together_tone1;
+ 1f932-1f3fc: palms_up_together_tone2;
+ 1f932-1f3fd: palms_up_together_tone3;
+ 1f932-1f3fe: palms_up_together_tone4;
+ 1f932-1f3ff: palms_up_together_tone5;
+ 1f450: open_hands;
+ 1f450-1f3fb: open_hands_tone1;
+ 1f450-1f3fc: open_hands_tone2;
+ 1f450-1f3fd: open_hands_tone3;
+ 1f450-1f3fe: open_hands_tone4;
+ 1f450-1f3ff: open_hands_tone5;
+ 1f64c: raised_hands;
+ 1f64c-1f3fb: raised_hands_tone1;
+ 1f64c-1f3fc: raised_hands_tone2;
+ 1f64c-1f3fd: raised_hands_tone3;
+ 1f64c-1f3fe: raised_hands_tone4;
+ 1f64c-1f3ff: raised_hands_tone5;
+ 1f44f: clap;
+ 1f44f-1f3fb: clap_tone1;
+ 1f44f-1f3fc: clap_tone2;
+ 1f44f-1f3fd: clap_tone3;
+ 1f44f-1f3fe: clap_tone4;
+ 1f44f-1f3ff: clap_tone5;
+ 1f44d: thumbsup;
+ 1f44d-1f3fb: thumbsup_tone1;
+ 1f44d-1f3fc: thumbsup_tone2;
+ 1f44d-1f3fd: thumbsup_tone3;
+ 1f44d-1f3fe: thumbsup_tone4;
+ 1f44d-1f3ff: thumbsup_tone5;
+ 1f44e: thumbsdown;
+ 1f44e-1f3fb: thumbsdown_tone1;
+ 1f44e-1f3fc: thumbsdown_tone2;
+ 1f44e-1f3fd: thumbsdown_tone3;
+ 1f44e-1f3fe: thumbsdown_tone4;
+ 1f44e-1f3ff: thumbsdown_tone5;
+ 1f44a: punch;
+ 1f44a-1f3fb: punch_tone1;
+ 1f44a-1f3fc: punch_tone2;
+ 1f44a-1f3fd: punch_tone3;
+ 1f44a-1f3fe: punch_tone4;
+ 1f44a-1f3ff: punch_tone5;
+ 270a: fist;
+ 270a-1f3fb: fist_tone1;
+ 270a-1f3fc: fist_tone2;
+ 270a-1f3fd: fist_tone3;
+ 270a-1f3fe: fist_tone4;
+ 270a-1f3ff: fist_tone5;
+ 1f91b: left_facing_fist;
+ 1f91b-1f3fb: left_facing_fist_tone1;
+ 1f91b-1f3fc: left_facing_fist_tone2;
+ 1f91b-1f3fd: left_facing_fist_tone3;
+ 1f91b-1f3fe: left_facing_fist_tone4;
+ 1f91b-1f3ff: left_facing_fist_tone5;
+ 1f91c: right_facing_fist;
+ 1f91c-1f3fb: right_facing_fist_tone1;
+ 1f91c-1f3fc: right_facing_fist_tone2;
+ 1f91c-1f3fd: right_facing_fist_tone3;
+ 1f91c-1f3fe: right_facing_fist_tone4;
+ 1f91c-1f3ff: right_facing_fist_tone5;
+ 1f91e: fingers_crossed;
+ 1f91e-1f3fb: fingers_crossed_tone1;
+ 1f91e-1f3fc: fingers_crossed_tone2;
+ 1f91e-1f3fd: fingers_crossed_tone3;
+ 1f91e-1f3fe: fingers_crossed_tone4;
+ 1f91e-1f3ff: fingers_crossed_tone5;
+ 270c: v;
+ 270c-1f3fb: v_tone1;
+ 270c-1f3fc: v_tone2;
+ 270c-1f3fd: v_tone3;
+ 270c-1f3fe: v_tone4;
+ 270c-1f3ff: v_tone5;
+ 1f91f: love_you_gesture;
+ 1f91f-1f3fb: love_you_gesture_tone1;
+ 1f91f-1f3fc: love_you_gesture_tone2;
+ 1f91f-1f3fd: love_you_gesture_tone3;
+ 1f91f-1f3fe: love_you_gesture_tone4;
+ 1f91f-1f3ff: love_you_gesture_tone5;
+ 1f918: metal;
+ 1f918-1f3fb: metal_tone1;
+ 1f918-1f3fc: metal_tone2;
+ 1f918-1f3fd: metal_tone3;
+ 1f918-1f3fe: metal_tone4;
+ 1f918-1f3ff: metal_tone5;
+ 1f44c: ok_hand;
+ 1f44c-1f3fb: ok_hand_tone1;
+ 1f44c-1f3fc: ok_hand_tone2;
+ 1f44c-1f3fd: ok_hand_tone3;
+ 1f44c-1f3fe: ok_hand_tone4;
+ 1f44c-1f3ff: ok_hand_tone5;
+ 1f90f: pinching_hand;
+ 1f90f-1f3fb: pinching_hand_tone1;
+ 1f90f-1f3fc: pinching_hand_tone2;
+ 1f90f-1f3fd: pinching_hand_tone3;
+ 1f90f-1f3fe: pinching_hand_tone4;
+ 1f90f-1f3ff: pinching_hand_tone5;
+ 1f448: point_left;
+ 1f448-1f3fb: point_left_tone1;
+ 1f448-1f3fc: point_left_tone2;
+ 1f448-1f3fd: point_left_tone3;
+ 1f448-1f3fe: point_left_tone4;
+ 1f448-1f3ff: point_left_tone5;
+ 1f449: point_right;
+ 1f449-1f3fb: point_right_tone1;
+ 1f449-1f3fc: point_right_tone2;
+ 1f449-1f3fd: point_right_tone3;
+ 1f449-1f3fe: point_right_tone4;
+ 1f449-1f3ff: point_right_tone5;
+ 1f446: point_up_2;
+ 1f446-1f3fb: point_up_2_tone1;
+ 1f446-1f3fc: point_up_2_tone2;
+ 1f446-1f3fd: point_up_2_tone3;
+ 1f446-1f3fe: point_up_2_tone4;
+ 1f446-1f3ff: point_up_2_tone5;
+ 1f447: point_down;
+ 1f447-1f3fb: point_down_tone1;
+ 1f447-1f3fc: point_down_tone2;
+ 1f447-1f3fd: point_down_tone3;
+ 1f447-1f3fe: point_down_tone4;
+ 1f447-1f3ff: point_down_tone5;
+ 261d: point_up;
+ 261d-1f3fb: point_up_tone1;
+ 261d-1f3fc: point_up_tone2;
+ 261d-1f3fd: point_up_tone3;
+ 261d-1f3fe: point_up_tone4;
+ 261d-1f3ff: point_up_tone5;
+ 270b: raised_hand;
+ 270b-1f3fb: raised_hand_tone1;
+ 270b-1f3fc: raised_hand_tone2;
+ 270b-1f3fd: raised_hand_tone3;
+ 270b-1f3fe: raised_hand_tone4;
+ 270b-1f3ff: raised_hand_tone5;
+ 1f91a: raised_back_of_hand;
+ 1f91a-1f3fb: raised_back_of_hand_tone1;
+ 1f91a-1f3fc: raised_back_of_hand_tone2;
+ 1f91a-1f3fd: raised_back_of_hand_tone3;
+ 1f91a-1f3fe: raised_back_of_hand_tone4;
+ 1f91a-1f3ff: raised_back_of_hand_tone5;
+ 1f590: hand_splayed;
+ 1f590-1f3fb: hand_splayed_tone1;
+ 1f590-1f3fc: hand_splayed_tone2;
+ 1f590-1f3fd: hand_splayed_tone3;
+ 1f590-1f3fe: hand_splayed_tone4;
+ 1f590-1f3ff: hand_splayed_tone5;
+ 1f596: vulcan;
+ 1f596-1f3fb: vulcan_tone1;
+ 1f596-1f3fc: vulcan_tone2;
+ 1f596-1f3fd: vulcan_tone3;
+ 1f596-1f3fe: vulcan_tone4;
+ 1f596-1f3ff: vulcan_tone5;
+ 1f44b: wave;
+ 1f44b-1f3fb: wave_tone1;
+ 1f44b-1f3fc: wave_tone2;
+ 1f44b-1f3fd: wave_tone3;
+ 1f44b-1f3fe: wave_tone4;
+ 1f44b-1f3ff: wave_tone5;
+ 1f919: call_me;
+ 1f919-1f3fb: call_me_tone1;
+ 1f919-1f3fc: call_me_tone2;
+ 1f919-1f3fd: call_me_tone3;
+ 1f919-1f3fe: call_me_tone4;
+ 1f919-1f3ff: call_me_tone5;
+ 1f4aa: muscle;
+ 1f4aa-1f3fb: muscle_tone1;
+ 1f4aa-1f3fc: muscle_tone2;
+ 1f4aa-1f3fd: muscle_tone3;
+ 1f4aa-1f3fe: muscle_tone4;
+ 1f4aa-1f3ff: muscle_tone5;
+ 1f9be: mechanical_arm;
+ 1f595: middle_finger;
+ 1f595-1f3fb: middle_finger_tone1;
+ 1f595-1f3fc: middle_finger_tone2;
+ 1f595-1f3fd: middle_finger_tone3;
+ 1f595-1f3fe: middle_finger_tone4;
+ 1f595-1f3ff: middle_finger_tone5;
+ 270d: writing_hand;
+ 270d-1f3fb: writing_hand_tone1;
+ 270d-1f3fc: writing_hand_tone2;
+ 270d-1f3fd: writing_hand_tone3;
+ 270d-1f3fe: writing_hand_tone4;
+ 270d-1f3ff: writing_hand_tone5;
+ 1f64f: pray;
+ 1f64f-1f3fb: pray_tone1;
+ 1f64f-1f3fc: pray_tone2;
+ 1f64f-1f3fd: pray_tone3;
+ 1f64f-1f3fe: pray_tone4;
+ 1f64f-1f3ff: pray_tone5;
+ 1f9b6: foot;
+ 1f9b6-1f3fb: foot_tone1;
+ 1f9b6-1f3fc: foot_tone2;
+ 1f9b6-1f3fd: foot_tone3;
+ 1f9b6-1f3fe: foot_tone4;
+ 1f9b6-1f3ff: foot_tone5;
+ 1f9b5: leg;
+ 1f9b5-1f3fb: leg_tone1;
+ 1f9b5-1f3fc: leg_tone2;
+ 1f9b5-1f3fd: leg_tone3;
+ 1f9b5-1f3fe: leg_tone4;
+ 1f9b5-1f3ff: leg_tone5;
+ 1f9bf: mechanical_leg;
+ 1f484: lipstick;
+ 1f48b: kiss;
+ 1f444: lips;
+ 1f445: tongue;
+ 1f9b7: tooth;
+ 1f9b4: bone;
+ 1f442: ear;
+ 1f442-1f3fb: ear_tone1;
+ 1f442-1f3fc: ear_tone2;
+ 1f442-1f3fd: ear_tone3;
+ 1f442-1f3fe: ear_tone4;
+ 1f442-1f3ff: ear_tone5;
+ 1f9bb: ear_with_hearing_aid;
+ 1f9bb-1f3fb: ear_with_hearing_aid_tone1;
+ 1f9bb-1f3fc: ear_with_hearing_aid_tone2;
+ 1f9bb-1f3fd: ear_with_hearing_aid_tone3;
+ 1f9bb-1f3fe: ear_with_hearing_aid_tone4;
+ 1f9bb-1f3ff: ear_with_hearing_aid_tone5;
+ 1f443: nose;
+ 1f443-1f3fb: nose_tone1;
+ 1f443-1f3fc: nose_tone2;
+ 1f443-1f3fd: nose_tone3;
+ 1f443-1f3fe: nose_tone4;
+ 1f443-1f3ff: nose_tone5;
+ 1f463: footprints;
+ 1f441: eye;
+ 1f440: eyes;
+ 1f9e0: brain;
+ 1f5e3: speaking_head;
+ 1f464: bust_in_silhouette;
+ 1f465: busts_in_silhouette;
+ 1f476: baby;
+ 1f476-1f3fb: baby_tone1;
+ 1f476-1f3fc: baby_tone2;
+ 1f476-1f3fd: baby_tone3;
+ 1f476-1f3fe: baby_tone4;
+ 1f476-1f3ff: baby_tone5;
+ 1f467: girl;
+ 1f467-1f3fb: girl_tone1;
+ 1f467-1f3fc: girl_tone2;
+ 1f467-1f3fd: girl_tone3;
+ 1f467-1f3fe: girl_tone4;
+ 1f467-1f3ff: girl_tone5;
+ 1f9d2: child;
+ 1f9d2-1f3fb: child_tone1;
+ 1f9d2-1f3fc: child_tone2;
+ 1f9d2-1f3fd: child_tone3;
+ 1f9d2-1f3fe: child_tone4;
+ 1f9d2-1f3ff: child_tone5;
+ 1f466: boy;
+ 1f466-1f3fb: boy_tone1;
+ 1f466-1f3fc: boy_tone2;
+ 1f466-1f3fd: boy_tone3;
+ 1f466-1f3fe: boy_tone4;
+ 1f466-1f3ff: boy_tone5;
+ 1f469: woman;
+ 1f469-1f3fb: woman_tone1;
+ 1f469-1f3fc: woman_tone2;
+ 1f469-1f3fd: woman_tone3;
+ 1f469-1f3fe: woman_tone4;
+ 1f469-1f3ff: woman_tone5;
+ 1f9d1: adult;
+ 1f9d1-1f3fb: adult_tone1;
+ 1f9d1-1f3fc: adult_tone2;
+ 1f9d1-1f3fd: adult_tone3;
+ 1f9d1-1f3fe: adult_tone4;
+ 1f9d1-1f3ff: adult_tone5;
+ 1f468: man;
+ 1f468-1f3fb: man_tone1;
+ 1f468-1f3fc: man_tone2;
+ 1f468-1f3fd: man_tone3;
+ 1f468-1f3fe: man_tone4;
+ 1f468-1f3ff: man_tone5;
+ 1f469-1f9b1: woman_curly_haired;
+ 1f469-1f3fb-1f9b1: woman_curly_haired_tone1;
+ 1f469-1f3fc-1f9b1: woman_curly_haired_tone2;
+ 1f469-1f3fd-1f9b1: woman_curly_haired_tone3;
+ 1f469-1f3fe-1f9b1: woman_curly_haired_tone4;
+ 1f469-1f3ff-1f9b1: woman_curly_haired_tone5;
+ 1f468-1f9b1: man_curly_haired;
+ 1f468-1f3fb-1f9b1: man_curly_haired_tone1;
+ 1f468-1f3fc-1f9b1: man_curly_haired_tone2;
+ 1f468-1f3fd-1f9b1: man_curly_haired_tone3;
+ 1f468-1f3fe-1f9b1: man_curly_haired_tone4;
+ 1f468-1f3ff-1f9b1: man_curly_haired_tone5;
+ 1f469-1f9b0: woman_red_haired;
+ 1f469-1f3fb-1f9b0: woman_red_haired_tone1;
+ 1f469-1f3fc-1f9b0: woman_red_haired_tone2;
+ 1f469-1f3fd-1f9b0: woman_red_haired_tone3;
+ 1f469-1f3fe-1f9b0: woman_red_haired_tone4;
+ 1f469-1f3ff-1f9b0: woman_red_haired_tone5;
+ 1f468-1f9b0: man_red_haired;
+ 1f468-1f3fb-1f9b0: man_red_haired_tone1;
+ 1f468-1f3fc-1f9b0: man_red_haired_tone2;
+ 1f468-1f3fd-1f9b0: man_red_haired_tone3;
+ 1f468-1f3fe-1f9b0: man_red_haired_tone4;
+ 1f468-1f3ff-1f9b0: man_red_haired_tone5;
+ 1f471-2640: blond-haired_woman;
+ 1f471-1f3fb-2640: blond-haired_woman_tone1;
+ 1f471-1f3fc-2640: blond-haired_woman_tone2;
+ 1f471-1f3fd-2640: blond-haired_woman_tone3;
+ 1f471-1f3fe-2640: blond-haired_woman_tone4;
+ 1f471-1f3ff-2640: blond-haired_woman_tone5;
+ 1f471: blond_haired_person;
+ 1f471-1f3fb: blond_haired_person_tone1;
+ 1f471-1f3fc: blond_haired_person_tone2;
+ 1f471-1f3fd: blond_haired_person_tone3;
+ 1f471-1f3fe: blond_haired_person_tone4;
+ 1f471-1f3ff: blond_haired_person_tone5;
+ 1f471-2642: blond-haired_man;
+ 1f471-1f3fb-2642: blond-haired_man_tone1;
+ 1f471-1f3fc-2642: blond-haired_man_tone2;
+ 1f471-1f3fd-2642: blond-haired_man_tone3;
+ 1f471-1f3fe-2642: blond-haired_man_tone4;
+ 1f471-1f3ff-2642: blond-haired_man_tone5;
+ 1f469-1f9b3: woman_white_haired;
+ 1f469-1f3fb-1f9b3: woman_white_haired_tone1;
+ 1f469-1f3fc-1f9b3: woman_white_haired_tone2;
+ 1f469-1f3fd-1f9b3: woman_white_haired_tone3;
+ 1f469-1f3fe-1f9b3: woman_white_haired_tone4;
+ 1f469-1f3ff-1f9b3: woman_white_haired_tone5;
+ 1f468-1f9b3: man_white_haired;
+ 1f468-1f3fb-1f9b3: man_white_haired_tone1;
+ 1f468-1f3fc-1f9b3: man_white_haired_tone2;
+ 1f468-1f3fd-1f9b3: man_white_haired_tone3;
+ 1f468-1f3fe-1f9b3: man_white_haired_tone4;
+ 1f468-1f3ff-1f9b3: man_white_haired_tone5;
+ 1f469-1f9b2: woman_bald;
+ 1f469-1f3fb-1f9b2: woman_bald_tone1;
+ 1f469-1f3fc-1f9b2: woman_bald_tone2;
+ 1f469-1f3fd-1f9b2: woman_bald_tone3;
+ 1f469-1f3fe-1f9b2: woman_bald_tone4;
+ 1f469-1f3ff-1f9b2: woman_bald_tone5;
+ 1f468-1f9b2: man_bald;
+ 1f468-1f3fb-1f9b2: man_bald_tone1;
+ 1f468-1f3fc-1f9b2: man_bald_tone2;
+ 1f468-1f3fd-1f9b2: man_bald_tone3;
+ 1f468-1f3fe-1f9b2: man_bald_tone4;
+ 1f468-1f3ff-1f9b2: man_bald_tone5;
+ 1f9d4: bearded_person;
+ 1f9d4-1f3fb: bearded_person_tone1;
+ 1f9d4-1f3fc: bearded_person_tone2;
+ 1f9d4-1f3fd: bearded_person_tone3;
+ 1f9d4-1f3fe: bearded_person_tone4;
+ 1f9d4-1f3ff: bearded_person_tone5;
+ 1f475: older_woman;
+ 1f475-1f3fb: older_woman_tone1;
+ 1f475-1f3fc: older_woman_tone2;
+ 1f475-1f3fd: older_woman_tone3;
+ 1f475-1f3fe: older_woman_tone4;
+ 1f475-1f3ff: older_woman_tone5;
+ 1f9d3: older_adult;
+ 1f9d3-1f3fb: older_adult_tone1;
+ 1f9d3-1f3fc: older_adult_tone2;
+ 1f9d3-1f3fd: older_adult_tone3;
+ 1f9d3-1f3fe: older_adult_tone4;
+ 1f9d3-1f3ff: older_adult_tone5;
+ 1f474: older_man;
+ 1f474-1f3fb: older_man_tone1;
+ 1f474-1f3fc: older_man_tone2;
+ 1f474-1f3fd: older_man_tone3;
+ 1f474-1f3fe: older_man_tone4;
+ 1f474-1f3ff: older_man_tone5;
+ 1f472: man_with_chinese_cap;
+ 1f472-1f3fb: man_with_chinese_cap_tone1;
+ 1f472-1f3fc: man_with_chinese_cap_tone2;
+ 1f472-1f3fd: man_with_chinese_cap_tone3;
+ 1f472-1f3fe: man_with_chinese_cap_tone4;
+ 1f472-1f3ff: man_with_chinese_cap_tone5;
+ 1f473: person_wearing_turban;
+ 1f473-1f3fb: person_wearing_turban_tone1;
+ 1f473-1f3fc: person_wearing_turban_tone2;
+ 1f473-1f3fd: person_wearing_turban_tone3;
+ 1f473-1f3fe: person_wearing_turban_tone4;
+ 1f473-1f3ff: person_wearing_turban_tone5;
+ 1f473-2640: woman_wearing_turban;
+ 1f473-1f3fb-2640: woman_wearing_turban_tone1;
+ 1f473-1f3fc-2640: woman_wearing_turban_tone2;
+ 1f473-1f3fd-2640: woman_wearing_turban_tone3;
+ 1f473-1f3fe-2640: woman_wearing_turban_tone4;
+ 1f473-1f3ff-2640: woman_wearing_turban_tone5;
+ 1f473-2642: man_wearing_turban;
+ 1f473-1f3fb-2642: man_wearing_turban_tone1;
+ 1f473-1f3fc-2642: man_wearing_turban_tone2;
+ 1f473-1f3fd-2642: man_wearing_turban_tone3;
+ 1f473-1f3fe-2642: man_wearing_turban_tone4;
+ 1f473-1f3ff-2642: man_wearing_turban_tone5;
+ 1f9d5: woman_with_headscarf;
+ 1f9d5-1f3fb: woman_with_headscarf_tone1;
+ 1f9d5-1f3fc: woman_with_headscarf_tone2;
+ 1f9d5-1f3fd: woman_with_headscarf_tone3;
+ 1f9d5-1f3fe: woman_with_headscarf_tone4;
+ 1f9d5-1f3ff: woman_with_headscarf_tone5;
+ 1f46e: police_officer;
+ 1f46e-1f3fb: police_officer_tone1;
+ 1f46e-1f3fc: police_officer_tone2;
+ 1f46e-1f3fd: police_officer_tone3;
+ 1f46e-1f3fe: police_officer_tone4;
+ 1f46e-1f3ff: police_officer_tone5;
+ 1f46e-2640: woman_police_officer;
+ 1f46e-1f3fb-2640: woman_police_officer_tone1;
+ 1f46e-1f3fc-2640: woman_police_officer_tone2;
+ 1f46e-1f3fd-2640: woman_police_officer_tone3;
+ 1f46e-1f3fe-2640: woman_police_officer_tone4;
+ 1f46e-1f3ff-2640: woman_police_officer_tone5;
+ 1f46e-2642: man_police_officer;
+ 1f46e-1f3fb-2642: man_police_officer_tone1;
+ 1f46e-1f3fc-2642: man_police_officer_tone2;
+ 1f46e-1f3fd-2642: man_police_officer_tone3;
+ 1f46e-1f3fe-2642: man_police_officer_tone4;
+ 1f46e-1f3ff-2642: man_police_officer_tone5;
+ 1f477: construction_worker;
+ 1f477-1f3fb: construction_worker_tone1;
+ 1f477-1f3fc: construction_worker_tone2;
+ 1f477-1f3fd: construction_worker_tone3;
+ 1f477-1f3fe: construction_worker_tone4;
+ 1f477-1f3ff: construction_worker_tone5;
+ 1f477-2640: woman_construction_worker;
+ 1f477-1f3fb-2640: woman_construction_worker_tone1;
+ 1f477-1f3fc-2640: woman_construction_worker_tone2;
+ 1f477-1f3fd-2640: woman_construction_worker_tone3;
+ 1f477-1f3fe-2640: woman_construction_worker_tone4;
+ 1f477-1f3ff-2640: woman_construction_worker_tone5;
+ 1f477-2642: man_construction_worker;
+ 1f477-1f3fb-2642: man_construction_worker_tone1;
+ 1f477-1f3fc-2642: man_construction_worker_tone2;
+ 1f477-1f3fd-2642: man_construction_worker_tone3;
+ 1f477-1f3fe-2642: man_construction_worker_tone4;
+ 1f477-1f3ff-2642: man_construction_worker_tone5;
+ 1f482: guard;
+ 1f482-1f3fb: guard_tone1;
+ 1f482-1f3fc: guard_tone2;
+ 1f482-1f3fd: guard_tone3;
+ 1f482-1f3fe: guard_tone4;
+ 1f482-1f3ff: guard_tone5;
+ 1f482-2640: woman_guard;
+ 1f482-1f3fb-2640: woman_guard_tone1;
+ 1f482-1f3fc-2640: woman_guard_tone2;
+ 1f482-1f3fd-2640: woman_guard_tone3;
+ 1f482-1f3fe-2640: woman_guard_tone4;
+ 1f482-1f3ff-2640: woman_guard_tone5;
+ 1f482-2642: man_guard;
+ 1f482-1f3fb-2642: man_guard_tone1;
+ 1f482-1f3fc-2642: man_guard_tone2;
+ 1f482-1f3fd-2642: man_guard_tone3;
+ 1f482-1f3fe-2642: man_guard_tone4;
+ 1f482-1f3ff-2642: man_guard_tone5;
+ 1f575: detective;
+ 1f575-1f3fb: detective_tone1;
+ 1f575-1f3fc: detective_tone2;
+ 1f575-1f3fd: detective_tone3;
+ 1f575-1f3fe: detective_tone4;
+ 1f575-1f3ff: detective_tone5;
+ 1f575-2640: woman_detective;
+ 1f575-1f3fb-2640: woman_detective_tone1;
+ 1f575-1f3fc-2640: woman_detective_tone2;
+ 1f575-1f3fd-2640: woman_detective_tone3;
+ 1f575-1f3fe-2640: woman_detective_tone4;
+ 1f575-1f3ff-2640: woman_detective_tone5;
+ 1f575-2642: man_detective;
+ 1f575-1f3fb-2642: man_detective_tone1;
+ 1f575-1f3fc-2642: man_detective_tone2;
+ 1f575-1f3fd-2642: man_detective_tone3;
+ 1f575-1f3fe-2642: man_detective_tone4;
+ 1f575-1f3ff-2642: man_detective_tone5;
+ 1f469-2695: woman_health_worker;
+ 1f469-1f3fb-2695: woman_health_worker_tone1;
+ 1f469-1f3fc-2695: woman_health_worker_tone2;
+ 1f469-1f3fd-2695: woman_health_worker_tone3;
+ 1f469-1f3fe-2695: woman_health_worker_tone4;
+ 1f469-1f3ff-2695: woman_health_worker_tone5;
+ 1f468-2695: man_health_worker;
+ 1f468-1f3fb-2695: man_health_worker_tone1;
+ 1f468-1f3fc-2695: man_health_worker_tone2;
+ 1f468-1f3fd-2695: man_health_worker_tone3;
+ 1f468-1f3fe-2695: man_health_worker_tone4;
+ 1f468-1f3ff-2695: man_health_worker_tone5;
+ 1f469-1f33e: woman_farmer;
+ 1f469-1f3fb-1f33e: woman_farmer_tone1;
+ 1f469-1f3fc-1f33e: woman_farmer_tone2;
+ 1f469-1f3fd-1f33e: woman_farmer_tone3;
+ 1f469-1f3fe-1f33e: woman_farmer_tone4;
+ 1f469-1f3ff-1f33e: woman_farmer_tone5;
+ 1f468-1f33e: man_farmer;
+ 1f468-1f3fb-1f33e: man_farmer_tone1;
+ 1f468-1f3fc-1f33e: man_farmer_tone2;
+ 1f468-1f3fd-1f33e: man_farmer_tone3;
+ 1f468-1f3fe-1f33e: man_farmer_tone4;
+ 1f468-1f3ff-1f33e: man_farmer_tone5;
+ 1f469-1f373: woman_cook;
+ 1f469-1f3fb-1f373: woman_cook_tone1;
+ 1f469-1f3fc-1f373: woman_cook_tone2;
+ 1f469-1f3fd-1f373: woman_cook_tone3;
+ 1f469-1f3fe-1f373: woman_cook_tone4;
+ 1f469-1f3ff-1f373: woman_cook_tone5;
+ 1f468-1f373: man_cook;
+ 1f468-1f3fb-1f373: man_cook_tone1;
+ 1f468-1f3fc-1f373: man_cook_tone2;
+ 1f468-1f3fd-1f373: man_cook_tone3;
+ 1f468-1f3fe-1f373: man_cook_tone4;
+ 1f468-1f3ff-1f373: man_cook_tone5;
+ 1f469-1f393: woman_student;
+ 1f469-1f3fb-1f393: woman_student_tone1;
+ 1f469-1f3fc-1f393: woman_student_tone2;
+ 1f469-1f3fd-1f393: woman_student_tone3;
+ 1f469-1f3fe-1f393: woman_student_tone4;
+ 1f469-1f3ff-1f393: woman_student_tone5;
+ 1f468-1f393: man_student;
+ 1f468-1f3fb-1f393: man_student_tone1;
+ 1f468-1f3fc-1f393: man_student_tone2;
+ 1f468-1f3fd-1f393: man_student_tone3;
+ 1f468-1f3fe-1f393: man_student_tone4;
+ 1f468-1f3ff-1f393: man_student_tone5;
+ 1f469-1f3a4: woman_singer;
+ 1f469-1f3fb-1f3a4: woman_singer_tone1;
+ 1f469-1f3fc-1f3a4: woman_singer_tone2;
+ 1f469-1f3fd-1f3a4: woman_singer_tone3;
+ 1f469-1f3fe-1f3a4: woman_singer_tone4;
+ 1f469-1f3ff-1f3a4: woman_singer_tone5;
+ 1f468-1f3a4: man_singer;
+ 1f468-1f3fb-1f3a4: man_singer_tone1;
+ 1f468-1f3fc-1f3a4: man_singer_tone2;
+ 1f468-1f3fd-1f3a4: man_singer_tone3;
+ 1f468-1f3fe-1f3a4: man_singer_tone4;
+ 1f468-1f3ff-1f3a4: man_singer_tone5;
+ 1f469-1f3eb: woman_teacher;
+ 1f469-1f3fb-1f3eb: woman_teacher_tone1;
+ 1f469-1f3fc-1f3eb: woman_teacher_tone2;
+ 1f469-1f3fd-1f3eb: woman_teacher_tone3;
+ 1f469-1f3fe-1f3eb: woman_teacher_tone4;
+ 1f469-1f3ff-1f3eb: woman_teacher_tone5;
+ 1f468-1f3eb: man_teacher;
+ 1f468-1f3fb-1f3eb: man_teacher_tone1;
+ 1f468-1f3fc-1f3eb: man_teacher_tone2;
+ 1f468-1f3fd-1f3eb: man_teacher_tone3;
+ 1f468-1f3fe-1f3eb: man_teacher_tone4;
+ 1f468-1f3ff-1f3eb: man_teacher_tone5;
+ 1f469-1f3ed: woman_factory_worker;
+ 1f469-1f3fb-1f3ed: woman_factory_worker_tone1;
+ 1f469-1f3fc-1f3ed: woman_factory_worker_tone2;
+ 1f469-1f3fd-1f3ed: woman_factory_worker_tone3;
+ 1f469-1f3fe-1f3ed: woman_factory_worker_tone4;
+ 1f469-1f3ff-1f3ed: woman_factory_worker_tone5;
+ 1f468-1f3ed: man_factory_worker;
+ 1f468-1f3fb-1f3ed: man_factory_worker_tone1;
+ 1f468-1f3fc-1f3ed: man_factory_worker_tone2;
+ 1f468-1f3fd-1f3ed: man_factory_worker_tone3;
+ 1f468-1f3fe-1f3ed: man_factory_worker_tone4;
+ 1f468-1f3ff-1f3ed: man_factory_worker_tone5;
+ 1f469-1f4bb: woman_technologist;
+ 1f469-1f3fb-1f4bb: woman_technologist_tone1;
+ 1f469-1f3fc-1f4bb: woman_technologist_tone2;
+ 1f469-1f3fd-1f4bb: woman_technologist_tone3;
+ 1f469-1f3fe-1f4bb: woman_technologist_tone4;
+ 1f469-1f3ff-1f4bb: woman_technologist_tone5;
+ 1f468-1f4bb: man_technologist;
+ 1f468-1f3fb-1f4bb: man_technologist_tone1;
+ 1f468-1f3fc-1f4bb: man_technologist_tone2;
+ 1f468-1f3fd-1f4bb: man_technologist_tone3;
+ 1f468-1f3fe-1f4bb: man_technologist_tone4;
+ 1f468-1f3ff-1f4bb: man_technologist_tone5;
+ 1f469-1f4bc: woman_office_worker;
+ 1f469-1f3fb-1f4bc: woman_office_worker_tone1;
+ 1f469-1f3fc-1f4bc: woman_office_worker_tone2;
+ 1f469-1f3fd-1f4bc: woman_office_worker_tone3;
+ 1f469-1f3fe-1f4bc: woman_office_worker_tone4;
+ 1f469-1f3ff-1f4bc: woman_office_worker_tone5;
+ 1f468-1f4bc: man_office_worker;
+ 1f468-1f3fb-1f4bc: man_office_worker_tone1;
+ 1f468-1f3fc-1f4bc: man_office_worker_tone2;
+ 1f468-1f3fd-1f4bc: man_office_worker_tone3;
+ 1f468-1f3fe-1f4bc: man_office_worker_tone4;
+ 1f468-1f3ff-1f4bc: man_office_worker_tone5;
+ 1f469-1f527: woman_mechanic;
+ 1f469-1f3fb-1f527: woman_mechanic_tone1;
+ 1f469-1f3fc-1f527: woman_mechanic_tone2;
+ 1f469-1f3fd-1f527: woman_mechanic_tone3;
+ 1f469-1f3fe-1f527: woman_mechanic_tone4;
+ 1f469-1f3ff-1f527: woman_mechanic_tone5;
+ 1f468-1f527: man_mechanic;
+ 1f468-1f3fb-1f527: man_mechanic_tone1;
+ 1f468-1f3fc-1f527: man_mechanic_tone2;
+ 1f468-1f3fd-1f527: man_mechanic_tone3;
+ 1f468-1f3fe-1f527: man_mechanic_tone4;
+ 1f468-1f3ff-1f527: man_mechanic_tone5;
+ 1f469-1f52c: woman_scientist;
+ 1f469-1f3fb-1f52c: woman_scientist_tone1;
+ 1f469-1f3fc-1f52c: woman_scientist_tone2;
+ 1f469-1f3fd-1f52c: woman_scientist_tone3;
+ 1f469-1f3fe-1f52c: woman_scientist_tone4;
+ 1f469-1f3ff-1f52c: woman_scientist_tone5;
+ 1f468-1f52c: man_scientist;
+ 1f468-1f3fb-1f52c: man_scientist_tone1;
+ 1f468-1f3fc-1f52c: man_scientist_tone2;
+ 1f468-1f3fd-1f52c: man_scientist_tone3;
+ 1f468-1f3fe-1f52c: man_scientist_tone4;
+ 1f468-1f3ff-1f52c: man_scientist_tone5;
+ 1f469-1f3a8: woman_artist;
+ 1f469-1f3fb-1f3a8: woman_artist_tone1;
+ 1f469-1f3fc-1f3a8: woman_artist_tone2;
+ 1f469-1f3fd-1f3a8: woman_artist_tone3;
+ 1f469-1f3fe-1f3a8: woman_artist_tone4;
+ 1f469-1f3ff-1f3a8: woman_artist_tone5;
+ 1f468-1f3a8: man_artist;
+ 1f468-1f3fb-1f3a8: man_artist_tone1;
+ 1f468-1f3fc-1f3a8: man_artist_tone2;
+ 1f468-1f3fd-1f3a8: man_artist_tone3;
+ 1f468-1f3fe-1f3a8: man_artist_tone4;
+ 1f468-1f3ff-1f3a8: man_artist_tone5;
+ 1f469-1f692: woman_firefighter;
+ 1f469-1f3fb-1f692: woman_firefighter_tone1;
+ 1f469-1f3fc-1f692: woman_firefighter_tone2;
+ 1f469-1f3fd-1f692: woman_firefighter_tone3;
+ 1f469-1f3fe-1f692: woman_firefighter_tone4;
+ 1f469-1f3ff-1f692: woman_firefighter_tone5;
+ 1f468-1f692: man_firefighter;
+ 1f468-1f3fb-1f692: man_firefighter_tone1;
+ 1f468-1f3fc-1f692: man_firefighter_tone2;
+ 1f468-1f3fd-1f692: man_firefighter_tone3;
+ 1f468-1f3fe-1f692: man_firefighter_tone4;
+ 1f468-1f3ff-1f692: man_firefighter_tone5;
+ 1f469-2708: woman_pilot;
+ 1f469-1f3fb-2708: woman_pilot_tone1;
+ 1f469-1f3fc-2708: woman_pilot_tone2;
+ 1f469-1f3fd-2708: woman_pilot_tone3;
+ 1f469-1f3fe-2708: woman_pilot_tone4;
+ 1f469-1f3ff-2708: woman_pilot_tone5;
+ 1f468-2708: man_pilot;
+ 1f468-1f3fb-2708: man_pilot_tone1;
+ 1f468-1f3fc-2708: man_pilot_tone2;
+ 1f468-1f3fd-2708: man_pilot_tone3;
+ 1f468-1f3fe-2708: man_pilot_tone4;
+ 1f468-1f3ff-2708: man_pilot_tone5;
+ 1f469-1f680: woman_astronaut;
+ 1f469-1f3fb-1f680: woman_astronaut_tone1;
+ 1f469-1f3fc-1f680: woman_astronaut_tone2;
+ 1f469-1f3fd-1f680: woman_astronaut_tone3;
+ 1f469-1f3fe-1f680: woman_astronaut_tone4;
+ 1f469-1f3ff-1f680: woman_astronaut_tone5;
+ 1f468-1f680: man_astronaut;
+ 1f468-1f3fb-1f680: man_astronaut_tone1;
+ 1f468-1f3fc-1f680: man_astronaut_tone2;
+ 1f468-1f3fd-1f680: man_astronaut_tone3;
+ 1f468-1f3fe-1f680: man_astronaut_tone4;
+ 1f468-1f3ff-1f680: man_astronaut_tone5;
+ 1f469-2696: woman_judge;
+ 1f469-1f3fb-2696: woman_judge_tone1;
+ 1f469-1f3fc-2696: woman_judge_tone2;
+ 1f469-1f3fd-2696: woman_judge_tone3;
+ 1f469-1f3fe-2696: woman_judge_tone4;
+ 1f469-1f3ff-2696: woman_judge_tone5;
+ 1f468-2696: man_judge;
+ 1f468-1f3fb-2696: man_judge_tone1;
+ 1f468-1f3fc-2696: man_judge_tone2;
+ 1f468-1f3fd-2696: man_judge_tone3;
+ 1f468-1f3fe-2696: man_judge_tone4;
+ 1f468-1f3ff-2696: man_judge_tone5;
+ 1f470: bride_with_veil;
+ 1f470-1f3fb: bride_with_veil_tone1;
+ 1f470-1f3fc: bride_with_veil_tone2;
+ 1f470-1f3fd: bride_with_veil_tone3;
+ 1f470-1f3fe: bride_with_veil_tone4;
+ 1f470-1f3ff: bride_with_veil_tone5;
+ 1f935: man_in_tuxedo;
+ 1f935-1f3fb: man_in_tuxedo_tone1;
+ 1f935-1f3fc: man_in_tuxedo_tone2;
+ 1f935-1f3fd: man_in_tuxedo_tone3;
+ 1f935-1f3fe: man_in_tuxedo_tone4;
+ 1f935-1f3ff: man_in_tuxedo_tone5;
+ 1f478: princess;
+ 1f478-1f3fb: princess_tone1;
+ 1f478-1f3fc: princess_tone2;
+ 1f478-1f3fd: princess_tone3;
+ 1f478-1f3fe: princess_tone4;
+ 1f478-1f3ff: princess_tone5;
+ 1f934: prince;
+ 1f934-1f3fb: prince_tone1;
+ 1f934-1f3fc: prince_tone2;
+ 1f934-1f3fd: prince_tone3;
+ 1f934-1f3fe: prince_tone4;
+ 1f934-1f3ff: prince_tone5;
+ 1f9b8: superhero;
+ 1f9b8-1f3fb: superhero_tone1;
+ 1f9b8-1f3fc: superhero_tone2;
+ 1f9b8-1f3fd: superhero_tone3;
+ 1f9b8-1f3fe: superhero_tone4;
+ 1f9b8-1f3ff: superhero_tone5;
+ 1f9b8-2640: woman_superhero;
+ 1f9b8-1f3fb-2640: woman_superhero_tone1;
+ 1f9b8-1f3fc-2640: woman_superhero_tone2;
+ 1f9b8-1f3fd-2640: woman_superhero_tone3;
+ 1f9b8-1f3fe-2640: woman_superhero_tone4;
+ 1f9b8-1f3ff-2640: woman_superhero_tone5;
+ 1f9b8-2642: man_superhero;
+ 1f9b8-1f3fb-2642: man_superhero_tone1;
+ 1f9b8-1f3fc-2642: man_superhero_tone2;
+ 1f9b8-1f3fd-2642: man_superhero_tone3;
+ 1f9b8-1f3fe-2642: man_superhero_tone4;
+ 1f9b8-1f3ff-2642: man_superhero_tone5;
+ 1f9b9: supervillain;
+ 1f9b9-1f3fb: supervillain_tone1;
+ 1f9b9-1f3fc: supervillain_tone2;
+ 1f9b9-1f3fd: supervillain_tone3;
+ 1f9b9-1f3fe: supervillain_tone4;
+ 1f9b9-1f3ff: supervillain_tone5;
+ 1f9b9-2640: woman_supervillain;
+ 1f9b9-1f3fb-2640: woman_supervillain_tone1;
+ 1f9b9-1f3fc-2640: woman_supervillain_tone2;
+ 1f9b9-1f3fd-2640: woman_supervillain_tone3;
+ 1f9b9-1f3fe-2640: woman_supervillain_tone4;
+ 1f9b9-1f3ff-2640: woman_supervillain_tone5;
+ 1f9b9-2642: man_supervillain;
+ 1f9b9-1f3fb-2642: man_supervillain_tone1;
+ 1f9b9-1f3fc-2642: man_supervillain_tone2;
+ 1f9b9-1f3fd-2642: man_supervillain_tone3;
+ 1f9b9-1f3fe-2642: man_supervillain_tone4;
+ 1f9b9-1f3ff-2642: man_supervillain_tone5;
+ 1f936: mrs_claus;
+ 1f936-1f3fb: mrs_claus_tone1;
+ 1f936-1f3fc: mrs_claus_tone2;
+ 1f936-1f3fd: mrs_claus_tone3;
+ 1f936-1f3fe: mrs_claus_tone4;
+ 1f936-1f3ff: mrs_claus_tone5;
+ 1f385: santa;
+ 1f385-1f3fb: santa_tone1;
+ 1f385-1f3fc: santa_tone2;
+ 1f385-1f3fd: santa_tone3;
+ 1f385-1f3fe: santa_tone4;
+ 1f385-1f3ff: santa_tone5;
+ 1f9d9: mage;
+ 1f9d9-1f3fb: mage_tone1;
+ 1f9d9-1f3fc: mage_tone2;
+ 1f9d9-1f3fd: mage_tone3;
+ 1f9d9-1f3fe: mage_tone4;
+ 1f9d9-1f3ff: mage_tone5;
+ 1f9d9-2640: woman_mage;
+ 1f9d9-1f3fb-2640: woman_mage_tone1;
+ 1f9d9-1f3fc-2640: woman_mage_tone2;
+ 1f9d9-1f3fd-2640: woman_mage_tone3;
+ 1f9d9-1f3fe-2640: woman_mage_tone4;
+ 1f9d9-1f3ff-2640: woman_mage_tone5;
+ 1f9d9-2642: man_mage;
+ 1f9d9-1f3fb-2642: man_mage_tone1;
+ 1f9d9-1f3fc-2642: man_mage_tone2;
+ 1f9d9-1f3fd-2642: man_mage_tone3;
+ 1f9d9-1f3fe-2642: man_mage_tone4;
+ 1f9d9-1f3ff-2642: man_mage_tone5;
+ 1f9dd: elf;
+ 1f9dd-1f3fb: elf_tone1;
+ 1f9dd-1f3fc: elf_tone2;
+ 1f9dd-1f3fd: elf_tone3;
+ 1f9dd-1f3fe: elf_tone4;
+ 1f9dd-1f3ff: elf_tone5;
+ 1f9dd-2640: woman_elf;
+ 1f9dd-1f3fb-2640: woman_elf_tone1;
+ 1f9dd-1f3fc-2640: woman_elf_tone2;
+ 1f9dd-1f3fd-2640: woman_elf_tone3;
+ 1f9dd-1f3fe-2640: woman_elf_tone4;
+ 1f9dd-1f3ff-2640: woman_elf_tone5;
+ 1f9dd-2642: man_elf;
+ 1f9dd-1f3fb-2642: man_elf_tone1;
+ 1f9dd-1f3fc-2642: man_elf_tone2;
+ 1f9dd-1f3fd-2642: man_elf_tone3;
+ 1f9dd-1f3fe-2642: man_elf_tone4;
+ 1f9dd-1f3ff-2642: man_elf_tone5;
+ 1f9db: vampire;
+ 1f9db-1f3fb: vampire_tone1;
+ 1f9db-1f3fc: vampire_tone2;
+ 1f9db-1f3fd: vampire_tone3;
+ 1f9db-1f3fe: vampire_tone4;
+ 1f9db-1f3ff: vampire_tone5;
+ 1f9db-2640: woman_vampire;
+ 1f9db-1f3fb-2640: woman_vampire_tone1;
+ 1f9db-1f3fc-2640: woman_vampire_tone2;
+ 1f9db-1f3fd-2640: woman_vampire_tone3;
+ 1f9db-1f3fe-2640: woman_vampire_tone4;
+ 1f9db-1f3ff-2640: woman_vampire_tone5;
+ 1f9db-2642: man_vampire;
+ 1f9db-1f3fb-2642: man_vampire_tone1;
+ 1f9db-1f3fc-2642: man_vampire_tone2;
+ 1f9db-1f3fd-2642: man_vampire_tone3;
+ 1f9db-1f3fe-2642: man_vampire_tone4;
+ 1f9db-1f3ff-2642: man_vampire_tone5;
+ 1f9df: zombie;
+ 1f9df-2640: woman_zombie;
+ 1f9df-2642: man_zombie;
+ 1f9de: genie;
+ 1f9de-2640: woman_genie;
+ 1f9de-2642: man_genie;
+ 1f9dc: merperson;
+ 1f9dc-1f3fb: merperson_tone1;
+ 1f9dc-1f3fc: merperson_tone2;
+ 1f9dc-1f3fd: merperson_tone3;
+ 1f9dc-1f3fe: merperson_tone4;
+ 1f9dc-1f3ff: merperson_tone5;
+ 1f9dc-2640: mermaid;
+ 1f9dc-1f3fb-2640: mermaid_tone1;
+ 1f9dc-1f3fc-2640: mermaid_tone2;
+ 1f9dc-1f3fd-2640: mermaid_tone3;
+ 1f9dc-1f3fe-2640: mermaid_tone4;
+ 1f9dc-1f3ff-2640: mermaid_tone5;
+ 1f9dc-2642: merman;
+ 1f9dc-1f3fb-2642: merman_tone1;
+ 1f9dc-1f3fc-2642: merman_tone2;
+ 1f9dc-1f3fd-2642: merman_tone3;
+ 1f9dc-1f3fe-2642: merman_tone4;
+ 1f9dc-1f3ff-2642: merman_tone5;
+ 1f9da: fairy;
+ 1f9da-1f3fb: fairy_tone1;
+ 1f9da-1f3fc: fairy_tone2;
+ 1f9da-1f3fd: fairy_tone3;
+ 1f9da-1f3fe: fairy_tone4;
+ 1f9da-1f3ff: fairy_tone5;
+ 1f9da-2640: woman_fairy;
+ 1f9da-1f3fb-2640: woman_fairy_tone1;
+ 1f9da-1f3fc-2640: woman_fairy_tone2;
+ 1f9da-1f3fd-2640: woman_fairy_tone3;
+ 1f9da-1f3fe-2640: woman_fairy_tone4;
+ 1f9da-1f3ff-2640: woman_fairy_tone5;
+ 1f9da-2642: man_fairy;
+ 1f9da-1f3fb-2642: man_fairy_tone1;
+ 1f9da-1f3fc-2642: man_fairy_tone2;
+ 1f9da-1f3fd-2642: man_fairy_tone3;
+ 1f9da-1f3fe-2642: man_fairy_tone4;
+ 1f9da-1f3ff-2642: man_fairy_tone5;
+ 1f47c: angel;
+ 1f47c-1f3fb: angel_tone1;
+ 1f47c-1f3fc: angel_tone2;
+ 1f47c-1f3fd: angel_tone3;
+ 1f47c-1f3fe: angel_tone4;
+ 1f47c-1f3ff: angel_tone5;
+ 1f930: pregnant_woman;
+ 1f930-1f3fb: pregnant_woman_tone1;
+ 1f930-1f3fc: pregnant_woman_tone2;
+ 1f930-1f3fd: pregnant_woman_tone3;
+ 1f930-1f3fe: pregnant_woman_tone4;
+ 1f930-1f3ff: pregnant_woman_tone5;
+ 1f931: breast_feeding;
+ 1f931-1f3fb: breast_feeding_tone1;
+ 1f931-1f3fc: breast_feeding_tone2;
+ 1f931-1f3fd: breast_feeding_tone3;
+ 1f931-1f3fe: breast_feeding_tone4;
+ 1f931-1f3ff: breast_feeding_tone5;
+ 1f647: person_bowing;
+ 1f647-1f3fb: person_bowing_tone1;
+ 1f647-1f3fc: person_bowing_tone2;
+ 1f647-1f3fd: person_bowing_tone3;
+ 1f647-1f3fe: person_bowing_tone4;
+ 1f647-1f3ff: person_bowing_tone5;
+ 1f647-2640: woman_bowing;
+ 1f647-1f3fb-2640: woman_bowing_tone1;
+ 1f647-1f3fc-2640: woman_bowing_tone2;
+ 1f647-1f3fd-2640: woman_bowing_tone3;
+ 1f647-1f3fe-2640: woman_bowing_tone4;
+ 1f647-1f3ff-2640: woman_bowing_tone5;
+ 1f647-2642: man_bowing;
+ 1f647-1f3fb-2642: man_bowing_tone1;
+ 1f647-1f3fc-2642: man_bowing_tone2;
+ 1f647-1f3fd-2642: man_bowing_tone3;
+ 1f647-1f3fe-2642: man_bowing_tone4;
+ 1f647-1f3ff-2642: man_bowing_tone5;
+ 1f481: person_tipping_hand;
+ 1f481-1f3fb: person_tipping_hand_tone1;
+ 1f481-1f3fc: person_tipping_hand_tone2;
+ 1f481-1f3fd: person_tipping_hand_tone3;
+ 1f481-1f3fe: person_tipping_hand_tone4;
+ 1f481-1f3ff: person_tipping_hand_tone5;
+ 1f481-2640: woman_tipping_hand;
+ 1f481-1f3fb-2640: woman_tipping_hand_tone1;
+ 1f481-1f3fc-2640: woman_tipping_hand_tone2;
+ 1f481-1f3fd-2640: woman_tipping_hand_tone3;
+ 1f481-1f3fe-2640: woman_tipping_hand_tone4;
+ 1f481-1f3ff-2640: woman_tipping_hand_tone5;
+ 1f481-2642: man_tipping_hand;
+ 1f481-1f3fb-2642: man_tipping_hand_tone1;
+ 1f481-1f3fc-2642: man_tipping_hand_tone2;
+ 1f481-1f3fd-2642: man_tipping_hand_tone3;
+ 1f481-1f3fe-2642: man_tipping_hand_tone4;
+ 1f481-1f3ff-2642: man_tipping_hand_tone5;
+ 1f645: person_gesturing_no;
+ 1f645-1f3fb: person_gesturing_no_tone1;
+ 1f645-1f3fc: person_gesturing_no_tone2;
+ 1f645-1f3fd: person_gesturing_no_tone3;
+ 1f645-1f3fe: person_gesturing_no_tone4;
+ 1f645-1f3ff: person_gesturing_no_tone5;
+ 1f645-2640: woman_gesturing_no;
+ 1f645-1f3fb-2640: woman_gesturing_no_tone1;
+ 1f645-1f3fc-2640: woman_gesturing_no_tone2;
+ 1f645-1f3fd-2640: woman_gesturing_no_tone3;
+ 1f645-1f3fe-2640: woman_gesturing_no_tone4;
+ 1f645-1f3ff-2640: woman_gesturing_no_tone5;
+ 1f645-2642: man_gesturing_no;
+ 1f645-1f3fb-2642: man_gesturing_no_tone1;
+ 1f645-1f3fc-2642: man_gesturing_no_tone2;
+ 1f645-1f3fd-2642: man_gesturing_no_tone3;
+ 1f645-1f3fe-2642: man_gesturing_no_tone4;
+ 1f645-1f3ff-2642: man_gesturing_no_tone5;
+ 1f646: person_gesturing_ok;
+ 1f646-1f3fb: person_gesturing_ok_tone1;
+ 1f646-1f3fc: person_gesturing_ok_tone2;
+ 1f646-1f3fd: person_gesturing_ok_tone3;
+ 1f646-1f3fe: person_gesturing_ok_tone4;
+ 1f646-1f3ff: person_gesturing_ok_tone5;
+ 1f646-2640: woman_gesturing_ok;
+ 1f646-1f3fb-2640: woman_gesturing_ok_tone1;
+ 1f646-1f3fc-2640: woman_gesturing_ok_tone2;
+ 1f646-1f3fd-2640: woman_gesturing_ok_tone3;
+ 1f646-1f3fe-2640: woman_gesturing_ok_tone4;
+ 1f646-1f3ff-2640: woman_gesturing_ok_tone5;
+ 1f646-2642: man_gesturing_ok;
+ 1f646-1f3fb-2642: man_gesturing_ok_tone1;
+ 1f646-1f3fc-2642: man_gesturing_ok_tone2;
+ 1f646-1f3fd-2642: man_gesturing_ok_tone3;
+ 1f646-1f3fe-2642: man_gesturing_ok_tone4;
+ 1f646-1f3ff-2642: man_gesturing_ok_tone5;
+ 1f64b: person_raising_hand;
+ 1f64b-1f3fb: person_raising_hand_tone1;
+ 1f64b-1f3fc: person_raising_hand_tone2;
+ 1f64b-1f3fd: person_raising_hand_tone3;
+ 1f64b-1f3fe: person_raising_hand_tone4;
+ 1f64b-1f3ff: person_raising_hand_tone5;
+ 1f64b-2640: woman_raising_hand;
+ 1f64b-1f3fb-2640: woman_raising_hand_tone1;
+ 1f64b-1f3fc-2640: woman_raising_hand_tone2;
+ 1f64b-1f3fd-2640: woman_raising_hand_tone3;
+ 1f64b-1f3fe-2640: woman_raising_hand_tone4;
+ 1f64b-1f3ff-2640: woman_raising_hand_tone5;
+ 1f64b-2642: man_raising_hand;
+ 1f64b-1f3fb-2642: man_raising_hand_tone1;
+ 1f64b-1f3fc-2642: man_raising_hand_tone2;
+ 1f64b-1f3fd-2642: man_raising_hand_tone3;
+ 1f64b-1f3fe-2642: man_raising_hand_tone4;
+ 1f64b-1f3ff-2642: man_raising_hand_tone5;
+ 1f9cf: deaf_person;
+ 1f9cf-1f3fb: deaf_person_tone1;
+ 1f9cf-1f3fc: deaf_person_tone2;
+ 1f9cf-1f3fd: deaf_person_tone3;
+ 1f9cf-1f3fe: deaf_person_tone4;
+ 1f9cf-1f3ff: deaf_person_tone5;
+ 1f9cf-2640: deaf_woman;
+ 1f9cf-1f3fb-2640: deaf_woman_tone1;
+ 1f9cf-1f3fc-2640: deaf_woman_tone2;
+ 1f9cf-1f3fd-2640: deaf_woman_tone3;
+ 1f9cf-1f3fe-2640: deaf_woman_tone4;
+ 1f9cf-1f3ff-2640: deaf_woman_tone5;
+ 1f9cf-2642: deaf_man;
+ 1f9cf-1f3fb-2642: deaf_man_tone1;
+ 1f9cf-1f3fc-2642: deaf_man_tone2;
+ 1f9cf-1f3fd-2642: deaf_man_tone3;
+ 1f9cf-1f3fe-2642: deaf_man_tone4;
+ 1f9cf-1f3ff-2642: deaf_man_tone5;
+ 1f926: person_facepalming;
+ 1f926-1f3fb: person_facepalming_tone1;
+ 1f926-1f3fc: person_facepalming_tone2;
+ 1f926-1f3fd: person_facepalming_tone3;
+ 1f926-1f3fe: person_facepalming_tone4;
+ 1f926-1f3ff: person_facepalming_tone5;
+ 1f926-2640: woman_facepalming;
+ 1f926-1f3fb-2640: woman_facepalming_tone1;
+ 1f926-1f3fc-2640: woman_facepalming_tone2;
+ 1f926-1f3fd-2640: woman_facepalming_tone3;
+ 1f926-1f3fe-2640: woman_facepalming_tone4;
+ 1f926-1f3ff-2640: woman_facepalming_tone5;
+ 1f926-2642: man_facepalming;
+ 1f926-1f3fb-2642: man_facepalming_tone1;
+ 1f926-1f3fc-2642: man_facepalming_tone2;
+ 1f926-1f3fd-2642: man_facepalming_tone3;
+ 1f926-1f3fe-2642: man_facepalming_tone4;
+ 1f926-1f3ff-2642: man_facepalming_tone5;
+ 1f937: person_shrugging;
+ 1f937-1f3fb: person_shrugging_tone1;
+ 1f937-1f3fc: person_shrugging_tone2;
+ 1f937-1f3fd: person_shrugging_tone3;
+ 1f937-1f3fe: person_shrugging_tone4;
+ 1f937-1f3ff: person_shrugging_tone5;
+ 1f937-2640: woman_shrugging;
+ 1f937-1f3fb-2640: woman_shrugging_tone1;
+ 1f937-1f3fc-2640: woman_shrugging_tone2;
+ 1f937-1f3fd-2640: woman_shrugging_tone3;
+ 1f937-1f3fe-2640: woman_shrugging_tone4;
+ 1f937-1f3ff-2640: woman_shrugging_tone5;
+ 1f937-2642: man_shrugging;
+ 1f937-1f3fb-2642: man_shrugging_tone1;
+ 1f937-1f3fc-2642: man_shrugging_tone2;
+ 1f937-1f3fd-2642: man_shrugging_tone3;
+ 1f937-1f3fe-2642: man_shrugging_tone4;
+ 1f937-1f3ff-2642: man_shrugging_tone5;
+ 1f64e: person_pouting;
+ 1f64e-1f3fb: person_pouting_tone1;
+ 1f64e-1f3fc: person_pouting_tone2;
+ 1f64e-1f3fd: person_pouting_tone3;
+ 1f64e-1f3fe: person_pouting_tone4;
+ 1f64e-1f3ff: person_pouting_tone5;
+ 1f64e-2640: woman_pouting;
+ 1f64e-1f3fb-2640: woman_pouting_tone1;
+ 1f64e-1f3fc-2640: woman_pouting_tone2;
+ 1f64e-1f3fd-2640: woman_pouting_tone3;
+ 1f64e-1f3fe-2640: woman_pouting_tone4;
+ 1f64e-1f3ff-2640: woman_pouting_tone5;
+ 1f64e-2642: man_pouting;
+ 1f64e-1f3fb-2642: man_pouting_tone1;
+ 1f64e-1f3fc-2642: man_pouting_tone2;
+ 1f64e-1f3fd-2642: man_pouting_tone3;
+ 1f64e-1f3fe-2642: man_pouting_tone4;
+ 1f64e-1f3ff-2642: man_pouting_tone5;
+ 1f64d: person_frowning;
+ 1f64d-1f3fb: person_frowning_tone1;
+ 1f64d-1f3fc: person_frowning_tone2;
+ 1f64d-1f3fd: person_frowning_tone3;
+ 1f64d-1f3fe: person_frowning_tone4;
+ 1f64d-1f3ff: person_frowning_tone5;
+ 1f64d-2640: woman_frowning;
+ 1f64d-1f3fb-2640: woman_frowning_tone1;
+ 1f64d-1f3fc-2640: woman_frowning_tone2;
+ 1f64d-1f3fd-2640: woman_frowning_tone3;
+ 1f64d-1f3fe-2640: woman_frowning_tone4;
+ 1f64d-1f3ff-2640: woman_frowning_tone5;
+ 1f64d-2642: man_frowning;
+ 1f64d-1f3fb-2642: man_frowning_tone1;
+ 1f64d-1f3fc-2642: man_frowning_tone2;
+ 1f64d-1f3fd-2642: man_frowning_tone3;
+ 1f64d-1f3fe-2642: man_frowning_tone4;
+ 1f64d-1f3ff-2642: man_frowning_tone5;
+ 1f487: person_getting_haircut;
+ 1f487-1f3fb: person_getting_haircut_tone1;
+ 1f487-1f3fc: person_getting_haircut_tone2;
+ 1f487-1f3fd: person_getting_haircut_tone3;
+ 1f487-1f3fe: person_getting_haircut_tone4;
+ 1f487-1f3ff: person_getting_haircut_tone5;
+ 1f487-2640: woman_getting_haircut;
+ 1f487-1f3fb-2640: woman_getting_haircut_tone1;
+ 1f487-1f3fc-2640: woman_getting_haircut_tone2;
+ 1f487-1f3fd-2640: woman_getting_haircut_tone3;
+ 1f487-1f3fe-2640: woman_getting_haircut_tone4;
+ 1f487-1f3ff-2640: woman_getting_haircut_tone5;
+ 1f487-2642: man_getting_haircut;
+ 1f487-1f3fb-2642: man_getting_haircut_tone1;
+ 1f487-1f3fc-2642: man_getting_haircut_tone2;
+ 1f487-1f3fd-2642: man_getting_haircut_tone3;
+ 1f487-1f3fe-2642: man_getting_haircut_tone4;
+ 1f487-1f3ff-2642: man_getting_haircut_tone5;
+ 1f486: person_getting_massage;
+ 1f486-1f3fb: person_getting_massage_tone1;
+ 1f486-1f3fc: person_getting_massage_tone2;
+ 1f486-1f3fd: person_getting_massage_tone3;
+ 1f486-1f3fe: person_getting_massage_tone4;
+ 1f486-1f3ff: person_getting_massage_tone5;
+ 1f486-2640: woman_getting_face_massage;
+ 1f486-1f3fb-2640: woman_getting_face_massage_tone1;
+ 1f486-1f3fc-2640: woman_getting_face_massage_tone2;
+ 1f486-1f3fd-2640: woman_getting_face_massage_tone3;
+ 1f486-1f3fe-2640: woman_getting_face_massage_tone4;
+ 1f486-1f3ff-2640: woman_getting_face_massage_tone5;
+ 1f486-2642: man_getting_face_massage;
+ 1f486-1f3fb-2642: man_getting_face_massage_tone1;
+ 1f486-1f3fc-2642: man_getting_face_massage_tone2;
+ 1f486-1f3fd-2642: man_getting_face_massage_tone3;
+ 1f486-1f3fe-2642: man_getting_face_massage_tone4;
+ 1f486-1f3ff-2642: man_getting_face_massage_tone5;
+ 1f9d6: person_in_steamy_room;
+ 1f9d6-1f3fb: person_in_steamy_room_tone1;
+ 1f9d6-1f3fc: person_in_steamy_room_tone2;
+ 1f9d6-1f3fd: person_in_steamy_room_tone3;
+ 1f9d6-1f3fe: person_in_steamy_room_tone4;
+ 1f9d6-1f3ff: person_in_steamy_room_tone5;
+ 1f9d6-2640: woman_in_steamy_room;
+ 1f9d6-1f3fb-2640: woman_in_steamy_room_tone1;
+ 1f9d6-1f3fc-2640: woman_in_steamy_room_tone2;
+ 1f9d6-1f3fd-2640: woman_in_steamy_room_tone3;
+ 1f9d6-1f3fe-2640: woman_in_steamy_room_tone4;
+ 1f9d6-1f3ff-2640: woman_in_steamy_room_tone5;
+ 1f9d6-2642: man_in_steamy_room;
+ 1f9d6-1f3fb-2642: man_in_steamy_room_tone1;
+ 1f9d6-1f3fc-2642: man_in_steamy_room_tone2;
+ 1f9d6-1f3fd-2642: man_in_steamy_room_tone3;
+ 1f9d6-1f3fe-2642: man_in_steamy_room_tone4;
+ 1f9d6-1f3ff-2642: man_in_steamy_room_tone5;
+ 1f485: nail_care;
+ 1f485-1f3fb: nail_care_tone1;
+ 1f485-1f3fc: nail_care_tone2;
+ 1f485-1f3fd: nail_care_tone3;
+ 1f485-1f3fe: nail_care_tone4;
+ 1f485-1f3ff: nail_care_tone5;
+ 1f933: selfie;
+ 1f933-1f3fb: selfie_tone1;
+ 1f933-1f3fc: selfie_tone2;
+ 1f933-1f3fd: selfie_tone3;
+ 1f933-1f3fe: selfie_tone4;
+ 1f933-1f3ff: selfie_tone5;
+ 1f483: dancer;
+ 1f483-1f3fb: dancer_tone1;
+ 1f483-1f3fc: dancer_tone2;
+ 1f483-1f3fd: dancer_tone3;
+ 1f483-1f3fe: dancer_tone4;
+ 1f483-1f3ff: dancer_tone5;
+ 1f57a: man_dancing;
+ 1f57a-1f3fb: man_dancing_tone1;
+ 1f57a-1f3fc: man_dancing_tone2;
+ 1f57a-1f3fd: man_dancing_tone3;
+ 1f57a-1f3ff: man_dancing_tone5;
+ 1f57a-1f3fe: man_dancing_tone4;
+ 1f46f: people_with_bunny_ears_partying;
+ 1f46f-2640: women_with_bunny_ears_partying;
+ 1f46f-2642: men_with_bunny_ears_partying;
+ 1f574: levitate;
+ 1f574-1f3fb: levitate_tone1;
+ 1f574-1f3fc: levitate_tone2;
+ 1f574-1f3fd: levitate_tone3;
+ 1f574-1f3fe: levitate_tone4;
+ 1f574-1f3ff: levitate_tone5;
+ 1f6b6: person_walking;
+ 1f6b6-1f3fb: person_walking_tone1;
+ 1f6b6-1f3fc: person_walking_tone2;
+ 1f6b6-1f3fd: person_walking_tone3;
+ 1f6b6-1f3fe: person_walking_tone4;
+ 1f6b6-1f3ff: person_walking_tone5;
+ 1f6b6-2640: woman_walking;
+ 1f6b6-1f3fb-2640: woman_walking_tone1;
+ 1f6b6-1f3fc-2640: woman_walking_tone2;
+ 1f6b6-1f3fd-2640: woman_walking_tone3;
+ 1f6b6-1f3fe-2640: woman_walking_tone4;
+ 1f6b6-1f3ff-2640: woman_walking_tone5;
+ 1f6b6-2642: man_walking;
+ 1f6b6-1f3fb-2642: man_walking_tone1;
+ 1f6b6-1f3fc-2642: man_walking_tone2;
+ 1f6b6-1f3fd-2642: man_walking_tone3;
+ 1f6b6-1f3fe-2642: man_walking_tone4;
+ 1f6b6-1f3ff-2642: man_walking_tone5;
+ 1f3c3: person_running;
+ 1f3c3-1f3fb: person_running_tone1;
+ 1f3c3-1f3fc: person_running_tone2;
+ 1f3c3-1f3fd: person_running_tone3;
+ 1f3c3-1f3fe: person_running_tone4;
+ 1f3c3-1f3ff: person_running_tone5;
+ 1f3c3-2640: woman_running;
+ 1f3c3-1f3fb-2640: woman_running_tone1;
+ 1f3c3-1f3fc-2640: woman_running_tone2;
+ 1f3c3-1f3fd-2640: woman_running_tone3;
+ 1f3c3-1f3fe-2640: woman_running_tone4;
+ 1f3c3-1f3ff-2640: woman_running_tone5;
+ 1f3c3-2642: man_running;
+ 1f3c3-1f3fb-2642: man_running_tone1;
+ 1f3c3-1f3fc-2642: man_running_tone2;
+ 1f3c3-1f3fd-2642: man_running_tone3;
+ 1f3c3-1f3fe-2642: man_running_tone4;
+ 1f3c3-1f3ff-2642: man_running_tone5;
+ 1f9cd: person_standing;
+ 1f9cd-1f3fb: person_standing_tone1;
+ 1f9cd-1f3fc: person_standing_tone2;
+ 1f9cd-1f3fd: person_standing_tone3;
+ 1f9cd-1f3fe: person_standing_tone4;
+ 1f9cd-1f3ff: person_standing_tone5;
+ 1f9cd-2640: woman_standing;
+ 1f9cd-1f3fb-2640: woman_standing_tone1;
+ 1f9cd-1f3fc-2640: woman_standing_tone2;
+ 1f9cd-1f3fd-2640: woman_standing_tone3;
+ 1f9cd-1f3fe-2640: woman_standing_tone4;
+ 1f9cd-1f3ff-2640: woman_standing_tone5;
+ 1f9cd-2642: man_standing;
+ 1f9cd-1f3fb-2642: man_standing_tone1;
+ 1f9cd-1f3fc-2642: man_standing_tone2;
+ 1f9cd-1f3fd-2642: man_standing_tone3;
+ 1f9cd-1f3fe-2642: man_standing_tone4;
+ 1f9cd-1f3ff-2642: man_standing_tone5;
+ 1f9ce: person_kneeling;
+ 1f9ce-1f3fb: person_kneeling_tone1;
+ 1f9ce-1f3fc: person_kneeling_tone2;
+ 1f9ce-1f3fd: person_kneeling_tone3;
+ 1f9ce-1f3fe: person_kneeling_tone4;
+ 1f9ce-1f3ff: person_kneeling_tone5;
+ 1f9ce-2640: woman_kneeling;
+ 1f9ce-1f3fb-2640: woman_kneeling_tone1;
+ 1f9ce-1f3fc-2640: woman_kneeling_tone2;
+ 1f9ce-1f3fd-2640: woman_kneeling_tone3;
+ 1f9ce-1f3fe-2640: woman_kneeling_tone4;
+ 1f9ce-1f3ff-2640: woman_kneeling_tone5;
+ 1f9ce-2642: man_kneeling;
+ 1f9ce-1f3fb-2642: man_kneeling_tone1;
+ 1f9ce-1f3fc-2642: man_kneeling_tone2;
+ 1f9ce-1f3fd-2642: man_kneeling_tone3;
+ 1f9ce-1f3fe-2642: man_kneeling_tone4;
+ 1f9ce-1f3ff-2642: man_kneeling_tone5;
+ 1f469-1f9af: woman_with_probing_cane;
+ 1f469-1f3fb-1f9af: woman_with_probing_cane_tone1;
+ 1f469-1f3fc-1f9af: woman_with_probing_cane_tone2;
+ 1f469-1f3fd-1f9af: woman_with_probing_cane_tone3;
+ 1f469-1f3fe-1f9af: woman_with_probing_cane_tone4;
+ 1f469-1f3ff-1f9af: woman_with_probing_cane_tone5;
+ 1f468-1f9af: man_with_probing_cane;
+ 1f468-1f3fb-1f9af: man_with_probing_cane_tone1;
+ 1f468-1f3fc-1f9af: man_with_probing_cane_tone2;
+ 1f468-1f3fd-1f9af: man_with_probing_cane_tone3;
+ 1f468-1f3fe-1f9af: man_with_probing_cane_tone4;
+ 1f468-1f3ff-1f9af: man_with_probing_cane_tone5;
+ 1f469-1f9bc: woman_in_motorized_wheelchair;
+ 1f469-1f3fb-1f9bc: woman_in_motorized_wheelchair_tone1;
+ 1f469-1f3fc-1f9bc: woman_in_motorized_wheelchair_tone2;
+ 1f469-1f3fd-1f9bc: woman_in_motorized_wheelchair_tone3;
+ 1f469-1f3fe-1f9bc: woman_in_motorized_wheelchair_tone4;
+ 1f469-1f3ff-1f9bc: woman_in_motorized_wheelchair_tone5;
+ 1f468-1f9bc: man_in_motorized_wheelchair;
+ 1f468-1f3fb-1f9bc: man_in_motorized_wheelchair_tone1;
+ 1f468-1f3fc-1f9bc: man_in_motorized_wheelchair_tone2;
+ 1f468-1f3fd-1f9bc: man_in_motorized_wheelchair_tone3;
+ 1f468-1f3fe-1f9bc: man_in_motorized_wheelchair_tone4;
+ 1f468-1f3ff-1f9bc: man_in_motorized_wheelchair_tone5;
+ 1f469-1f9bd: woman_in_manual_wheelchair;
+ 1f469-1f3fb-1f9bd: woman_in_manual_wheelchair_tone1;
+ 1f469-1f3fc-1f9bd: woman_in_manual_wheelchair_tone2;
+ 1f469-1f3fd-1f9bd: woman_in_manual_wheelchair_tone3;
+ 1f469-1f3fe-1f9bd: woman_in_manual_wheelchair_tone4;
+ 1f469-1f3ff-1f9bd: woman_in_manual_wheelchair_tone5;
+ 1f468-1f9bd: man_in_manual_wheelchair;
+ 1f468-1f3fb-1f9bd: man_in_manual_wheelchair_tone1;
+ 1f468-1f3fc-1f9bd: man_in_manual_wheelchair_tone2;
+ 1f468-1f3fd-1f9bd: man_in_manual_wheelchair_tone3;
+ 1f468-1f3fe-1f9bd: man_in_manual_wheelchair_tone4;
+ 1f468-1f3ff-1f9bd: man_in_manual_wheelchair_tone5;
+ 1f9d1-1f91d-1f9d1: people_holding_hands;
+ 1f9d1-1f3fb-1f91d-1f9d1-1f3fb: people_holding_hands_tone1;
+ 1f9d1-1f3fc-1f91d-1f9d1-1f3fc: people_holding_hands_tone2;
+ 1f9d1-1f3fc-1f91d-1f9d1-1f3fb: people_holding_hands_tone2_tone1;
+ 1f9d1-1f3fd-1f91d-1f9d1-1f3fd: people_holding_hands_tone3;
+ 1f9d1-1f3fd-1f91d-1f9d1-1f3fb: people_holding_hands_tone3_tone1;
+ 1f9d1-1f3fd-1f91d-1f9d1-1f3fc: people_holding_hands_tone3_tone2;
+ 1f9d1-1f3fe-1f91d-1f9d1-1f3fe: people_holding_hands_tone4;
+ 1f9d1-1f3fe-1f91d-1f9d1-1f3fb: people_holding_hands_tone4_tone1;
+ 1f9d1-1f3fe-1f91d-1f9d1-1f3fc: people_holding_hands_tone4_tone2;
+ 1f9d1-1f3fe-1f91d-1f9d1-1f3fd: people_holding_hands_tone4_tone3;
+ 1f9d1-1f3ff-1f91d-1f9d1-1f3ff: people_holding_hands_tone5;
+ 1f9d1-1f3ff-1f91d-1f9d1-1f3fb: people_holding_hands_tone5_tone1;
+ 1f9d1-1f3ff-1f91d-1f9d1-1f3fc: people_holding_hands_tone5_tone2;
+ 1f9d1-1f3ff-1f91d-1f9d1-1f3fd: people_holding_hands_tone5_tone3;
+ 1f9d1-1f3ff-1f91d-1f9d1-1f3fe: people_holding_hands_tone5_tone4;
+ 1f46b: couple;
+ 1f46b-1f3fb: woman_and_man_holding_hands_tone1;
+ 1f469-1f3fb-1f91d-1f468-1f3fc: woman_and_man_holding_hands_tone1_tone2;
+ 1f469-1f3fb-1f91d-1f468-1f3fd: woman_and_man_holding_hands_tone1_tone3;
+ 1f469-1f3fb-1f91d-1f468-1f3fe: woman_and_man_holding_hands_tone1_tone4;
+ 1f469-1f3fb-1f91d-1f468-1f3ff: woman_and_man_holding_hands_tone1_tone5;
+ 1f46b-1f3fc: woman_and_man_holding_hands_tone2;
+ 1f469-1f3fc-1f91d-1f468-1f3fb: woman_and_man_holding_hands_tone2_tone1;
+ 1f469-1f3fc-1f91d-1f468-1f3fd: woman_and_man_holding_hands_tone2_tone3;
+ 1f469-1f3fc-1f91d-1f468-1f3fe: woman_and_man_holding_hands_tone2_tone4;
+ 1f469-1f3fc-1f91d-1f468-1f3ff: woman_and_man_holding_hands_tone2_tone5;
+ 1f46b-1f3fd: woman_and_man_holding_hands_tone3;
+ 1f469-1f3fd-1f91d-1f468-1f3fb: woman_and_man_holding_hands_tone3_tone1;
+ 1f469-1f3fd-1f91d-1f468-1f3fc: woman_and_man_holding_hands_tone3_tone2;
+ 1f469-1f3fd-1f91d-1f468-1f3fe: woman_and_man_holding_hands_tone3_tone4;
+ 1f469-1f3fd-1f91d-1f468-1f3ff: woman_and_man_holding_hands_tone3_tone5;
+ 1f46b-1f3fe: woman_and_man_holding_hands_tone4;
+ 1f469-1f3fe-1f91d-1f468-1f3fb: woman_and_man_holding_hands_tone4_tone1;
+ 1f469-1f3fe-1f91d-1f468-1f3fc: woman_and_man_holding_hands_tone4_tone2;
+ 1f469-1f3fe-1f91d-1f468-1f3fd: woman_and_man_holding_hands_tone4_tone3;
+ 1f469-1f3fe-1f91d-1f468-1f3ff: woman_and_man_holding_hands_tone4_tone5;
+ 1f46b-1f3ff: woman_and_man_holding_hands_tone5;
+ 1f469-1f3ff-1f91d-1f468-1f3fb: woman_and_man_holding_hands_tone5_tone1;
+ 1f469-1f3ff-1f91d-1f468-1f3fc: woman_and_man_holding_hands_tone5_tone2;
+ 1f469-1f3ff-1f91d-1f468-1f3fd: woman_and_man_holding_hands_tone5_tone3;
+ 1f469-1f3ff-1f91d-1f468-1f3fe: woman_and_man_holding_hands_tone5_tone4;
+ 1f46d: two_women_holding_hands;
+ 1f46d-1f3fb: women_holding_hands_tone1;
+ 1f46d-1f3fc: women_holding_hands_tone2;
+ 1f469-1f3fc-1f91d-1f469-1f3fb: women_holding_hands_tone2_tone1;
+ 1f46d-1f3fd: women_holding_hands_tone3;
+ 1f469-1f3fd-1f91d-1f469-1f3fb: women_holding_hands_tone3_tone1;
+ 1f469-1f3fd-1f91d-1f469-1f3fc: women_holding_hands_tone3_tone2;
+ 1f46d-1f3fe: women_holding_hands_tone4;
+ 1f469-1f3fe-1f91d-1f469-1f3fb: women_holding_hands_tone4_tone1;
+ 1f469-1f3fe-1f91d-1f469-1f3fc: women_holding_hands_tone4_tone2;
+ 1f469-1f3fe-1f91d-1f469-1f3fd: women_holding_hands_tone4_tone3;
+ 1f46d-1f3ff: women_holding_hands_tone5;
+ 1f469-1f3ff-1f91d-1f469-1f3fb: women_holding_hands_tone5_tone1;
+ 1f469-1f3ff-1f91d-1f469-1f3fc: women_holding_hands_tone5_tone2;
+ 1f469-1f3ff-1f91d-1f469-1f3fd: women_holding_hands_tone5_tone3;
+ 1f469-1f3ff-1f91d-1f469-1f3fe: women_holding_hands_tone5_tone4;
+ 1f46c: two_men_holding_hands;
+ 1f46c-1f3fb: men_holding_hands_tone1;
+ 1f46c-1f3fc: men_holding_hands_tone2;
+ 1f468-1f3fc-1f91d-1f468-1f3fb: men_holding_hands_tone2_tone1;
+ 1f46c-1f3fd: men_holding_hands_tone3;
+ 1f468-1f3fd-1f91d-1f468-1f3fb: men_holding_hands_tone3_tone1;
+ 1f468-1f3fd-1f91d-1f468-1f3fc: men_holding_hands_tone3_tone2;
+ 1f46c-1f3fe: men_holding_hands_tone4;
+ 1f468-1f3fe-1f91d-1f468-1f3fb: men_holding_hands_tone4_tone1;
+ 1f468-1f3fe-1f91d-1f468-1f3fc: men_holding_hands_tone4_tone2;
+ 1f468-1f3fe-1f91d-1f468-1f3fd: men_holding_hands_tone4_tone3;
+ 1f46c-1f3ff: men_holding_hands_tone5;
+ 1f468-1f3ff-1f91d-1f468-1f3fb: men_holding_hands_tone5_tone1;
+ 1f468-1f3ff-1f91d-1f468-1f3fc: men_holding_hands_tone5_tone2;
+ 1f468-1f3ff-1f91d-1f468-1f3fd: men_holding_hands_tone5_tone3;
+ 1f468-1f3ff-1f91d-1f468-1f3fe: men_holding_hands_tone5_tone4;
+ 1f491: couple_with_heart;
+ 1f469-2764-1f468: couple_with_heart_woman_man;
+ 1f469-2764-1f469: couple_ww;
+ 1f468-2764-1f468: couple_mm;
+ 1f48f: couplekiss;
+ 1f469-2764-1f48b-1f468: kiss_woman_man;
+ 1f469-2764-1f48b-1f469: kiss_ww;
+ 1f468-2764-1f48b-1f468: kiss_mm;
+ 1f46a: family;
+ 1f468-1f469-1f466: family_man_woman_boy;
+ 1f468-1f469-1f467: family_mwg;
+ 1f468-1f469-1f467-1f466: family_mwgb;
+ 1f468-1f469-1f466-1f466: family_mwbb;
+ 1f468-1f469-1f467-1f467: family_mwgg;
+ 1f469-1f469-1f466: family_wwb;
+ 1f469-1f469-1f467: family_wwg;
+ 1f469-1f469-1f467-1f466: family_wwgb;
+ 1f469-1f469-1f466-1f466: family_wwbb;
+ 1f469-1f469-1f467-1f467: family_wwgg;
+ 1f468-1f468-1f466: family_mmb;
+ 1f468-1f468-1f467: family_mmg;
+ 1f468-1f468-1f467-1f466: family_mmgb;
+ 1f468-1f468-1f466-1f466: family_mmbb;
+ 1f468-1f468-1f467-1f467: family_mmgg;
+ 1f469-1f466: family_woman_boy;
+ 1f469-1f467: family_woman_girl;
+ 1f469-1f467-1f466: family_woman_girl_boy;
+ 1f469-1f466-1f466: family_woman_boy_boy;
+ 1f469-1f467-1f467: family_woman_girl_girl;
+ 1f468-1f466: family_man_boy;
+ 1f468-1f467: family_man_girl;
+ 1f468-1f467-1f466: family_man_girl_boy;
+ 1f468-1f466-1f466: family_man_boy_boy;
+ 1f468-1f467-1f467: family_man_girl_girl;
+ 1f9f6: yarn;
+ 1f9f5: thread;
+ 1f9e5: coat;
+ 1f97c: lab_coat;
+ 1f9ba: safety_vest;
+ 1f45a: womans_clothes;
+ 1f455: shirt;
+ 1f456: jeans;
+ 1fa73: shorts;
+ 1f454: necktie;
+ 1f457: dress;
+ 1f459: bikini;
+ 1fa71: one_piece_swimsuit;
+ 1f458: kimono;
+ 1f97b: sari;
+ 1f97f: womans_flat_shoe;
+ 1f460: high_heel;
+ 1f461: sandal;
+ 1f462: boot;
+ 1fa70: ballet_shoes;
+ 1f45e: mans_shoe;
+ 1f45f: athletic_shoe;
+ 1f97e: hiking_boot;
+ 1fa72: briefs;
+ 1f9e6: socks;
+ 1f9e4: gloves;
+ 1f9e3: scarf;
+ 1f3a9: tophat;
+ 1f9e2: billed_cap;
+ 1f452: womans_hat;
+ 1f393: mortar_board;
+ 26d1: helmet_with_cross;
+ 1f451: crown;
+ 1f48d: ring;
+ 1f45d: pouch;
+ 1f45b: purse;
+ 1f45c: handbag;
+ 1f4bc: briefcase;
+ 1f392: school_satchel;
+ 1f9f3: luggage;
+ 1f453: eyeglasses;
+ 1f576: dark_sunglasses;
+ 1f97d: goggles;
+ 1f93f: diving_mask;
+ 1f302: closed_umbrella;
+ 1f9b1: curly_haired;
+ 1f9b0: red_haired;
+ 1f9b3: white_haired;
+ 1f9b2: bald;
+ 1f697: red_car;
+ 1f695: taxi;
+ 1f699: blue_car;
+ 1f68c: bus;
+ 1f68e: trolleybus;
+ 1f3ce: race_car;
+ 1f693: police_car;
+ 1f691: ambulance;
+ 1f692: fire_engine;
+ 1f690: minibus;
+ 1f69a: truck;
+ 1f69b: articulated_lorry;
+ 1f69c: tractor;
+ 1f6fa: auto_rickshaw;
+ 1f6f5: motor_scooter;
+ 1f3cd: motorcycle;
+ 1f6f4: scooter;
+ 1f6b2: bike;
+ 1f9bc: motorized_wheelchair;
+ 1f9bd: manual_wheelchair;
+ 1f6a8: rotating_light;
+ 1f694: oncoming_police_car;
+ 1f68d: oncoming_bus;
+ 1f698: oncoming_automobile;
+ 1f696: oncoming_taxi;
+ 1f6a1: aerial_tramway;
+ 1f6a0: mountain_cableway;
+ 1f69f: suspension_railway;
+ 1f683: railway_car;
+ 1f68b: train;
+ 1f69e: mountain_railway;
+ 1f69d: monorail;
+ 1f684: bullettrain_side;
+ 1f685: bullettrain_front;
+ 1f688: light_rail;
+ 1f682: steam_locomotive;
+ 1f686: train2;
+ 1f687: metro;
+ 1f68a: tram;
+ 1f689: station;
+ 1f6eb: airplane_departure;
+ 1f6ec: airplane_arriving;
+ 1f6e9: airplane_small;
+ 1f4ba: seat;
+ 1f6f0: satellite_orbital;
+ 1f680: rocket;
+ 1f6f8: flying_saucer;
+ 1f681: helicopter;
+ 1f6f6: canoe;
+ 26f5: sailboat;
+ 1f6a4: speedboat;
+ 1f6e5: motorboat;
+ 1f6f3: cruise_ship;
+ 26f4: ferry;
+ 1f6a2: ship;
+ 26fd: fuelpump;
+ 1f6a7: construction;
+ 1f6a6: vertical_traffic_light;
+ 1f6a5: traffic_light;
+ 1f68f: busstop;
+ 1f5fa: map;
+ 1f5ff: moyai;
+ 1f5fd: statue_of_liberty;
+ 1f5fc: tokyo_tower;
+ 1f3f0: european_castle;
+ 1f3ef: japanese_castle;
+ 1f3df: stadium;
+ 1f3a1: ferris_wheel;
+ 1f3a2: roller_coaster;
+ 1f3a0: carousel_horse;
+ 26f2: fountain;
+ 26f1: beach_umbrella;
+ 1f3d6: beach;
+ 1f3dd: island;
+ 1f3dc: desert;
+ 1f30b: volcano;
+ 26f0: mountain;
+ 1f3d4: mountain_snow;
+ 1f5fb: mount_fuji;
+ 1f3d5: camping;
+ 26fa: tent;
+ 1f3e0: house;
+ 1f3e1: house_with_garden;
+ 1f3d8: homes;
+ 1f3da: house_abandoned;
+ 1f3d7: construction_site;
+ 1f3ed: factory;
+ 1f3e2: office;
+ 1f3ec: department_store;
+ 1f3e3: post_office;
+ 1f3e4: european_post_office;
+ 1f3e5: hospital;
+ 1f3e6: bank;
+ 1f3e8: hotel;
+ 1f3ea: convenience_store;
+ 1f3eb: school;
+ 1f3e9: love_hotel;
+ 1f492: wedding;
+ 1f3db: classical_building;
+ 26ea: church;
+ 1f54c: mosque;
+ 1f6d5: hindu_temple;
+ 1f54d: synagogue;
+ 1f54b: kaaba;
+ 26e9: shinto_shrine;
+ 1f6e4: railway_track;
+ 1f6e3: motorway;
+ 1f5fe: japan;
+ 1f391: rice_scene;
+ 1f3de: park;
+ 1f305: sunrise;
+ 1f304: sunrise_over_mountains;
+ 1f320: stars;
+ 1f387: sparkler;
+ 1f386: fireworks;
+ 1f307: city_sunset;
+ 1f306: city_dusk;
+ 1f3d9: cityscape;
+ 1f303: night_with_stars;
+ 1f30c: milky_way;
+ 1f309: bridge_at_night;
+ 1f301: foggy;
+ 1f1ff: regional_indicator_z;
+ 1f1fe: regional_indicator_y;
+ 1f1fd: regional_indicator_x;
+ 1f1fc: regional_indicator_w;
+ 1f1fb: regional_indicator_v;
+ 1f1fa: regional_indicator_u;
+ 1f1f9: regional_indicator_t;
+ 1f1f8: regional_indicator_s;
+ 1f1f7: regional_indicator_r;
+ 1f1f6: regional_indicator_q;
+ 1f1f5: regional_indicator_p;
+ 1f1f4: regional_indicator_o;
+ 1f1f3: regional_indicator_n;
+ 1f1f2: regional_indicator_m;
+ 1f1f1: regional_indicator_l;
+ 1f1f0: regional_indicator_k;
+ 1f1ef: regional_indicator_j;
+ 1f1ee: regional_indicator_i;
+ 1f1ed: regional_indicator_h;
+ 1f1ec: regional_indicator_g;
+ 1f1eb: regional_indicator_f;
+ 1f1ea: regional_indicator_e;
+ 1f1e9: regional_indicator_d;
+ 1f1e8: regional_indicator_c;
+ 1f1e7: regional_indicator_b;
+ 1f1e6: regional_indicator_a;
+ 1f3f3: flag_white;
+ 1f3f4: flag_black;
+ 1f3c1: checkered_flag;
+ 1f6a9: triangular_flag_on_post;
+ 1f3f3-1f308: rainbow_flag;
+ 1f3f4-2620: pirate_flag;
+ 1f1e6-1f1eb: flag_af;
+ 1f1e6-1f1fd: flag_ax;
+ 1f1e6-1f1f1: flag_al;
+ 1f1e9-1f1ff: flag_dz;
+ 1f1e6-1f1f8: flag_as;
+ 1f1e6-1f1e9: flag_ad;
+ 1f1e6-1f1f4: flag_ao;
+ 1f1e6-1f1ee: flag_ai;
+ 1f1e6-1f1f6: flag_aq;
+ 1f1e6-1f1ec: flag_ag;
+ 1f1e6-1f1f7: flag_ar;
+ 1f1e6-1f1f2: flag_am;
+ 1f1e6-1f1fc: flag_aw;
+ 1f1e6-1f1fa: flag_au;
+ 1f1e6-1f1f9: flag_at;
+ 1f1e6-1f1ff: flag_az;
+ 1f1e7-1f1f8: flag_bs;
+ 1f1e7-1f1ed: flag_bh;
+ 1f1e7-1f1e9: flag_bd;
+ 1f1e7-1f1e7: flag_bb;
+ 1f1e7-1f1fe: flag_by;
+ 1f1e7-1f1ea: flag_be;
+ 1f1e7-1f1ff: flag_bz;
+ 1f1e7-1f1ef: flag_bj;
+ 1f1e7-1f1f2: flag_bm;
+ 1f1e7-1f1f9: flag_bt;
+ 1f1e7-1f1f4: flag_bo;
+ 1f1e7-1f1e6: flag_ba;
+ 1f1e7-1f1fc: flag_bw;
+ 1f1e7-1f1f7: flag_br;
+ 1f1ee-1f1f4: flag_io;
+ 1f1fb-1f1ec: flag_vg;
+ 1f1e7-1f1f3: flag_bn;
+ 1f1e7-1f1ec: flag_bg;
+ 1f1e7-1f1eb: flag_bf;
+ 1f1e7-1f1ee: flag_bi;
+ 1f1f0-1f1ed: flag_kh;
+ 1f1e8-1f1f2: flag_cm;
+ 1f1e8-1f1e6: flag_ca;
+ 1f1ee-1f1e8: flag_ic;
+ 1f1e8-1f1fb: flag_cv;
+ 1f1e7-1f1f6: flag_bq;
+ 1f1f0-1f1fe: flag_ky;
+ 1f1e8-1f1eb: flag_cf;
+ 1f1f9-1f1e9: flag_td;
+ 1f1e8-1f1f1: flag_cl;
+ 1f1e8-1f1f3: flag_cn;
+ 1f1e8-1f1fd: flag_cx;
+ 1f1e8-1f1e8: flag_cc;
+ 1f1e8-1f1f4: flag_co;
+ 1f1f0-1f1f2: flag_km;
+ 1f1e8-1f1ec: flag_cg;
+ 1f1e8-1f1e9: flag_cd;
+ 1f1e8-1f1f0: flag_ck;
+ 1f1e8-1f1f7: flag_cr;
+ 1f1e8-1f1ee: flag_ci;
+ 1f1ed-1f1f7: flag_hr;
+ 1f1e8-1f1fa: flag_cu;
+ 1f1e8-1f1fc: flag_cw;
+ 1f1e8-1f1fe: flag_cy;
+ 1f1e8-1f1ff: flag_cz;
+ 1f1e9-1f1f0: flag_dk;
+ 1f1e9-1f1ef: flag_dj;
+ 1f1e9-1f1f2: flag_dm;
+ 1f1e9-1f1f4: flag_do;
+ 1f1ea-1f1e8: flag_ec;
+ 1f1ea-1f1ec: flag_eg;
+ 1f1f8-1f1fb: flag_sv;
+ 1f1ec-1f1f6: flag_gq;
+ 1f1ea-1f1f7: flag_er;
+ 1f1ea-1f1ea: flag_ee;
+ 1f1ea-1f1f9: flag_et;
+ 1f1ea-1f1fa: flag_eu;
+ 1f1eb-1f1f0: flag_fk;
+ 1f1eb-1f1f4: flag_fo;
+ 1f1eb-1f1ef: flag_fj;
+ 1f1eb-1f1ee: flag_fi;
+ 1f1eb-1f1f7: flag_fr;
+ 1f1ec-1f1eb: flag_gf;
+ 1f1f5-1f1eb: flag_pf;
+ 1f1f9-1f1eb: flag_tf;
+ 1f1ec-1f1e6: flag_ga;
+ 1f1ec-1f1f2: flag_gm;
+ 1f1ec-1f1ea: flag_ge;
+ 1f1e9-1f1ea: flag_de;
+ 1f1ec-1f1ed: flag_gh;
+ 1f1ec-1f1ee: flag_gi;
+ 1f1ec-1f1f7: flag_gr;
+ 1f1ec-1f1f1: flag_gl;
+ 1f1ec-1f1e9: flag_gd;
+ 1f1ec-1f1f5: flag_gp;
+ 1f1ec-1f1fa: flag_gu;
+ 1f1ec-1f1f9: flag_gt;
+ 1f1ec-1f1ec: flag_gg;
+ 1f1ec-1f1f3: flag_gn;
+ 1f1ec-1f1fc: flag_gw;
+ 1f1ec-1f1fe: flag_gy;
+ 1f1ed-1f1f9: flag_ht;
+ 1f1ed-1f1f3: flag_hn;
+ 1f1ed-1f1f0: flag_hk;
+ 1f1ed-1f1fa: flag_hu;
+ 1f1ee-1f1f8: flag_is;
+ 1f1ee-1f1f3: flag_in;
+ 1f1ee-1f1e9: flag_id;
+ 1f1ee-1f1f7: flag_ir;
+ 1f1ee-1f1f6: flag_iq;
+ 1f1ee-1f1ea: flag_ie;
+ 1f1ee-1f1f2: flag_im;
+ 1f1ee-1f1f1: flag_il;
+ 1f1ee-1f1f9: flag_it;
+ 1f1ef-1f1f2: flag_jm;
+ 1f1ef-1f1f5: flag_jp;
+ 1f38c: crossed_flags;
+ 1f1ef-1f1ea: flag_je;
+ 1f1ef-1f1f4: flag_jo;
+ 1f1f0-1f1ff: flag_kz;
+ 1f1f0-1f1ea: flag_ke;
+ 1f1f0-1f1ee: flag_ki;
+ 1f1fd-1f1f0: flag_xk;
+ 1f1f0-1f1fc: flag_kw;
+ 1f1f0-1f1ec: flag_kg;
+ 1f1f1-1f1e6: flag_la;
+ 1f1f1-1f1fb: flag_lv;
+ 1f1f1-1f1e7: flag_lb;
+ 1f1f1-1f1f8: flag_ls;
+ 1f1f1-1f1f7: flag_lr;
+ 1f1f1-1f1fe: flag_ly;
+ 1f1f1-1f1ee: flag_li;
+ 1f1f1-1f1f9: flag_lt;
+ 1f1f1-1f1fa: flag_lu;
+ 1f1f2-1f1f4: flag_mo;
+ 1f1f2-1f1f0: flag_mk;
+ 1f1f2-1f1ec: flag_mg;
+ 1f1f2-1f1fc: flag_mw;
+ 1f1f2-1f1fe: flag_my;
+ 1f1f2-1f1fb: flag_mv;
+ 1f1f2-1f1f1: flag_ml;
+ 1f1f2-1f1f9: flag_mt;
+ 1f1f2-1f1ed: flag_mh;
+ 1f1f2-1f1f6: flag_mq;
+ 1f1f2-1f1f7: flag_mr;
+ 1f1f2-1f1fa: flag_mu;
+ 1f1fe-1f1f9: flag_yt;
+ 1f1f2-1f1fd: flag_mx;
+ 1f1eb-1f1f2: flag_fm;
+ 1f1f2-1f1e9: flag_md;
+ 1f1f2-1f1e8: flag_mc;
+ 1f1f2-1f1f3: flag_mn;
+ 1f1f2-1f1ea: flag_me;
+ 1f1f2-1f1f8: flag_ms;
+ 1f1f2-1f1e6: flag_ma;
+ 1f1f2-1f1ff: flag_mz;
+ 1f1f2-1f1f2: flag_mm;
+ 1f1f3-1f1e6: flag_na;
+ 1f1f3-1f1f7: flag_nr;
+ 1f1f3-1f1f5: flag_np;
+ 1f1f3-1f1f1: flag_nl;
+ 1f1f3-1f1e8: flag_nc;
+ 1f1f3-1f1ff: flag_nz;
+ 1f1f3-1f1ee: flag_ni;
+ 1f1f3-1f1ea: flag_ne;
+ 1f1f3-1f1ec: flag_ng;
+ 1f1f3-1f1fa: flag_nu;
+ 1f1f3-1f1eb: flag_nf;
+ 1f1f0-1f1f5: flag_kp;
+ 1f1f2-1f1f5: flag_mp;
+ 1f1f3-1f1f4: flag_no;
+ 1f1f4-1f1f2: flag_om;
+ 1f1f5-1f1f0: flag_pk;
+ 1f1f5-1f1fc: flag_pw;
+ 1f1f5-1f1f8: flag_ps;
+ 1f1f5-1f1e6: flag_pa;
+ 1f1f5-1f1ec: flag_pg;
+ 1f1f5-1f1fe: flag_py;
+ 1f1f5-1f1ea: flag_pe;
+ 1f1f5-1f1ed: flag_ph;
+ 1f1f5-1f1f3: flag_pn;
+ 1f1f5-1f1f1: flag_pl;
+ 1f1f5-1f1f9: flag_pt;
+ 1f1f5-1f1f7: flag_pr;
+ 1f1f6-1f1e6: flag_qa;
+ 1f1f7-1f1ea: flag_re;
+ 1f1f7-1f1f4: flag_ro;
+ 1f1f7-1f1fa: flag_ru;
+ 1f1f7-1f1fc: flag_rw;
+ 1f1fc-1f1f8: flag_ws;
+ 1f1f8-1f1f2: flag_sm;
+ 1f1f8-1f1f9: flag_st;
+ 1f1f8-1f1e6: flag_sa;
+ 1f1f8-1f1f3: flag_sn;
+ 1f1f7-1f1f8: flag_rs;
+ 1f1f8-1f1e8: flag_sc;
+ 1f1f8-1f1f1: flag_sl;
+ 1f1f8-1f1ec: flag_sg;
+ 1f1f8-1f1fd: flag_sx;
+ 1f1f8-1f1f0: flag_sk;
+ 1f1f8-1f1ee: flag_si;
+ 1f1ec-1f1f8: flag_gs;
+ 1f1f8-1f1e7: flag_sb;
+ 1f1f8-1f1f4: flag_so;
+ 1f1ff-1f1e6: flag_za;
+ 1f1f0-1f1f7: flag_kr;
+ 1f1f8-1f1f8: flag_ss;
+ 1f1ea-1f1f8: flag_es;
+ 1f1f1-1f1f0: flag_lk;
+ 1f1e7-1f1f1: flag_bl;
+ 1f1f8-1f1ed: flag_sh;
+ 1f1f0-1f1f3: flag_kn;
+ 1f1f1-1f1e8: flag_lc;
+ 1f1f5-1f1f2: flag_pm;
+ 1f1fb-1f1e8: flag_vc;
+ 1f1f8-1f1e9: flag_sd;
+ 1f1f8-1f1f7: flag_sr;
+ 1f1f8-1f1ff: flag_sz;
+ 1f1f8-1f1ea: flag_se;
+ 1f1e8-1f1ed: flag_ch;
+ 1f1f8-1f1fe: flag_sy;
+ 1f1f9-1f1fc: flag_tw;
+ 1f1f9-1f1ef: flag_tj;
+ 1f1f9-1f1ff: flag_tz;
+ 1f1f9-1f1ed: flag_th;
+ 1f1f9-1f1f1: flag_tl;
+ 1f1f9-1f1ec: flag_tg;
+ 1f1f9-1f1f0: flag_tk;
+ 1f1f9-1f1f4: flag_to;
+ 1f1f9-1f1f9: flag_tt;
+ 1f1f9-1f1f3: flag_tn;
+ 1f1f9-1f1f7: flag_tr;
+ 1f1f9-1f1f2: flag_tm;
+ 1f1f9-1f1e8: flag_tc;
+ 1f1fb-1f1ee: flag_vi;
+ 1f1f9-1f1fb: flag_tv;
+ 1f1fa-1f1ec: flag_ug;
+ 1f1fa-1f1e6: flag_ua;
+ 1f1e6-1f1ea: flag_ae;
+ 1f1ec-1f1e7: flag_gb;
+ 1f3f4-e0067-e0062-e0065-e006e-e0067-e007f: england;
+ 1f3f4-e0067-e0062-e0073-e0063-e0074-e007f: scotland;
+ 1f3f4-e0067-e0062-e0077-e006c-e0073-e007f: wales;
+ 1f1fa-1f1f8: flag_us;
+ 1f1fa-1f1fe: flag_uy;
+ 1f1fa-1f1ff: flag_uz;
+ 1f1fb-1f1fa: flag_vu;
+ 1f1fb-1f1e6: flag_va;
+ 1f1fb-1f1ea: flag_ve;
+ 1f1fb-1f1f3: flag_vn;
+ 1f1fc-1f1eb: flag_wf;
+ 1f1ea-1f1ed: flag_eh;
+ 1f1fe-1f1ea: flag_ye;
+ 1f1ff-1f1f2: flag_zm;
+ 1f1ff-1f1fc: flag_zw;
+ 1f1e6-1f1e8: flag_ac;
+ 1f1e7-1f1fb: flag_bv;
+ 1f1e8-1f1f5: flag_cp;
+ 1f1ea-1f1e6: flag_ea;
+ 1f1e9-1f1ec: flag_dg;
+ 1f1ed-1f1f2: flag_hm;
+ 1f1f2-1f1eb: flag_mf;
+ 1f1f8-1f1ef: flag_sj;
+ 1f1f9-1f1e6: flag_ta;
+ 1f1fa-1f1f2: flag_um;
+ 1f1fa-1f1f3: united_nations;
+ 1f3fb: tone1;
+ 1f3fc: tone2;
+ 1f3fd: tone3;
+ 1f3fe: tone4;
+ 1f3ff: tone5;
+};
+
+@size-map: {
+ small: 1;
+ medium: 2;
+ large: 4;
+ big: 5;
+};
+
+each(@size-map, {
+ em[data-emoji].@{key} {
+ font-size: 1.5em * @value;
+ vertical-align: middle;
+ }
+});
+
+each(@emoji-map,{
+ & when (@variationEmojiColons) {
+ em[data-emoji=":@{value}:"]:before {
+ background-image: url("@{emojiPath}@{key}.@{emojiFileType}");
+ }
+ em[data-emoji="@{value}"]:before:extend(em[data-emoji=":@{value}:"]:before) when (@variationEmojiNoColons) {}
+ }
+ em[data-emoji="@{value}"]:before when (@variationEmojiNoColons) and not (@variationEmojiColons) {
+ background-image: url("@{emojiPath}@{key}.@{emojiFileType}");
+ }
+});
diff --git a/assets/semantic/src/themes/joypixels/elements/emoji.variables b/assets/semantic/src/themes/joypixels/elements/emoji.variables
new file mode 100644
index 0000000..1a05c7a
--- /dev/null
+++ b/assets/semantic/src/themes/joypixels/elements/emoji.variables
@@ -0,0 +1,21 @@
+/*******************************
+ Emoji
+*******************************/
+
+/*--------------
+ Path
+---------------
+ Downloading and hosting the joxpixels assets locally may require an additional license depending on the usage
+ Find joypixels licenses at https://www.joypixels.com/licenses
+*/
+@emojiPath: "https://cdn.jsdelivr.net/joypixels/assets/5.0/png/unicode/128/";
+@emojiFileType: "png";
+
+/*--------------
+ Definition
+---------------*/
+
+/* Emoji Variables */
+@opacity: 1;
+@loadingDuration: 2s;
+@emojiLineHeight: @headerLineHeight;
diff --git a/assets/semantic/src/themes/material/assets/fonts/icons.eot b/assets/semantic/src/themes/material/assets/fonts/icons.eot
new file mode 100644
index 0000000..70508eb
Binary files /dev/null and b/assets/semantic/src/themes/material/assets/fonts/icons.eot differ
diff --git a/assets/semantic/src/themes/material/assets/fonts/icons.svg b/assets/semantic/src/themes/material/assets/fonts/icons.svg
new file mode 100644
index 0000000..69dd831
--- /dev/null
+++ b/assets/semantic/src/themes/material/assets/fonts/icons.svg
@@ -0,0 +1,2373 @@
+
+
+
+
+
+Created by FontForge 20151118 at Mon Feb 8 11:58:02 2016
+ By shyndman
+Copyright 2015 Google, Inc. All Rights Reserved.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/semantic/src/themes/material/assets/fonts/icons.ttf b/assets/semantic/src/themes/material/assets/fonts/icons.ttf
new file mode 100644
index 0000000..7015564
Binary files /dev/null and b/assets/semantic/src/themes/material/assets/fonts/icons.ttf differ
diff --git a/assets/semantic/src/themes/material/assets/fonts/icons.woff b/assets/semantic/src/themes/material/assets/fonts/icons.woff
new file mode 100644
index 0000000..b648a3e
Binary files /dev/null and b/assets/semantic/src/themes/material/assets/fonts/icons.woff differ
diff --git a/assets/semantic/src/themes/material/assets/fonts/icons.woff2 b/assets/semantic/src/themes/material/assets/fonts/icons.woff2
new file mode 100644
index 0000000..9fa2112
Binary files /dev/null and b/assets/semantic/src/themes/material/assets/fonts/icons.woff2 differ
diff --git a/assets/semantic/src/themes/material/collections/menu.overrides b/assets/semantic/src/themes/material/collections/menu.overrides
new file mode 100644
index 0000000..84ef50e
--- /dev/null
+++ b/assets/semantic/src/themes/material/collections/menu.overrides
@@ -0,0 +1 @@
+@import url(https://fonts.googleapis.com/css?family=Roboto);
diff --git a/assets/semantic/src/themes/material/collections/menu.variables b/assets/semantic/src/themes/material/collections/menu.variables
new file mode 100644
index 0000000..2ba2eee
--- /dev/null
+++ b/assets/semantic/src/themes/material/collections/menu.variables
@@ -0,0 +1,10 @@
+/*******************************
+ Menu
+*******************************/
+
+@fontFamily: 'Roboto', Arial, sans-serif;
+@boxShadow: 0px 1px 6px rgba(0, 0, 0, 0.2);
+@dividerSize: 0px;
+
+@itemVerticalPadding: @relativeLarge;
+@itemHorizontalPadding: @relativeLarge;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/material/elements/button.overrides b/assets/semantic/src/themes/material/elements/button.overrides
new file mode 100644
index 0000000..b78e82d
--- /dev/null
+++ b/assets/semantic/src/themes/material/elements/button.overrides
@@ -0,0 +1,15 @@
+@import url(https://fonts.googleapis.com/css?family=Roboto);
+
+.ui.primary.button:hover {
+ box-shadow:
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.3) inset,
+ 0px 2px 3px 0px rgba(0, 0, 0, 0.35) !important
+ ;
+}
+
+.ui.secondary.button:hover {
+ box-shadow:
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.2) inset,
+ 0px 2px 3px 0px rgba(0, 0, 0, 0.3) !important
+ ;
+}
diff --git a/assets/semantic/src/themes/material/elements/button.variables b/assets/semantic/src/themes/material/elements/button.variables
new file mode 100644
index 0000000..6590463
--- /dev/null
+++ b/assets/semantic/src/themes/material/elements/button.variables
@@ -0,0 +1,97 @@
+/*******************************
+ Button
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@googleFontName : 'Roboto';
+@pageFont : 'Roboto', Arial, sans-serif;
+
+@medium: 13px;
+
+@verticalPadding : 0.8em;
+@horizontalPadding : 0.8em;
+@borderRadius : @relative3px;
+@color : #222222;
+@fontWeight : normal;
+@textTransform : none;
+
+@backgroundColor : @white;
+@backgroundImage : linear-gradient(transparent, rgba(0, 0, 0, 0.02));
+
+@solidBorderColor: #DDDDDD;
+
+@borderBoxShadowColor: @solidBorderColor;
+@borderBoxShadow: 0px 0px 0px 1px @solidBorderColor inset;
+@shadowBoxShadow: 0px 0px 0px 0px transparent;
+
+@transition:
+ opacity 0.3s @defaultEasing,
+ background-color 0.3s @defaultEasing,
+ color 0.3s @defaultEasing,
+ box-shadow 0.3s @defaultEasing,
+ background 0.3s @defaultEasing
+;
+/*-------------------
+ State
+--------------------*/
+
+@hoverBackgroundColor: @white;
+@hoverBoxShadow:
+ @borderBoxShadow,
+ 0px 2px 3px 0px rgba(0, 0, 0, 0.2) !important
+;
+
+@downBackgroundColor: @white;
+@downBackgroundImage: linear-gradient(rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.04));
+@downTextColor: #222222;
+@downBoxShadow: @borderBoxShadow;
+
+@activeBackgroundColor: #F0F0F0;
+@activeBoxShadow: 0px 0px 0px 1px #DDDDDD;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Basic */
+@basicBorderSize: 0px;
+@basicBorderRadius: 4px;
+@basicColoredBorderSize: 1px;
+@basicHoverBackground: @white;
+@basicHoverBoxShadow: @hoverBoxShadow;
+@basicDownBackground: @white;
+@basicDownBoxShadow: @downBoxShadow;
+
+@basicActiveBackground: #FFFFFF;
+@basicActiveBoxShadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+
+/* Labeled */
+@labeledIconBackgroundColor: transparent;
+@labeledIconWidth: 2em;
+
+@labeledLabelBorderOffset: 0px;
+
+/* Colored */
+@coloredBackgroundImage : @subtleGradient;
+@coloredBoxShadow : 0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset;
+
+/* Primary */
+@primaryColor : #4184F3;
+@primaryBoxShadow : 0px 0px 0px 1px #0157E4 inset;
+
+/* Secondary */
+@secondaryColor : #EEEEEE;
+@secondaryBackgroundImage : @backgroundImage;
+@secondaryTextColor : @textColor;
+@secondaryBoxShadow : @borderBoxShadow;
+
+/* Emotive */
+@positiveColor: #3D9400;
+@negativeColor: #D34836;
+
+/* Inverted */
+@invertedBorderSize: 1px;
+
diff --git a/assets/semantic/src/themes/material/elements/header.overrides b/assets/semantic/src/themes/material/elements/header.overrides
new file mode 100644
index 0000000..f821b1a
--- /dev/null
+++ b/assets/semantic/src/themes/material/elements/header.overrides
@@ -0,0 +1,15 @@
+/*******************************
+ Overrides
+*******************************/
+
+@import url(https://fonts.googleapis.com/css?family=Roboto);
+
+h1.ui.header,
+.ui.huge.header {
+ font-weight: normal;
+}
+
+h2.ui.header,
+.ui.large.header {
+ font-weight: normal;
+}
diff --git a/assets/semantic/src/themes/material/elements/header.variables b/assets/semantic/src/themes/material/elements/header.variables
new file mode 100644
index 0000000..e146346
--- /dev/null
+++ b/assets/semantic/src/themes/material/elements/header.variables
@@ -0,0 +1,21 @@
+/*-------------------
+ Header
+--------------------*/
+
+@headerFont : 'Roboto', Arial, sans-serif;
+@fontWeight: normal;
+
+@iconSize: 2em;
+@iconOffset: 0.2em;
+@iconAlignment: top;
+
+@subHeaderFontSize: 1rem;
+
+
+/* HTML Headings */
+@h1 : 2.25rem;
+@h2 : 2rem;
+@h3 : 1.75rem;
+@h4 : 1.5rem;
+@h5 : 1.25rem;
+
diff --git a/assets/semantic/src/themes/material/elements/icon.overrides b/assets/semantic/src/themes/material/elements/icon.overrides
new file mode 100644
index 0000000..0772845
--- /dev/null
+++ b/assets/semantic/src/themes/material/elements/icon.overrides
@@ -0,0 +1,934 @@
+/* Material Design Icons */
+
+i.icon.threed.rotation:before { content: '\e84d'}
+i.icon.ac.unit:before { content: '\eb3b'}
+i.icon.access.alarm:before { content: '\e190'}
+i.icon.access.alarms:before { content: '\e191'}
+i.icon.access.time:before { content: '\e192'}
+i.icon.accessibility:before { content: '\e84e'}
+i.icon.accessible:before { content: '\e914'}
+i.icon.account.balance:before { content: '\e84f'}
+i.icon.account.balance.wallet:before { content: '\e850'}
+i.icon.account.box:before { content: '\e851'}
+i.icon.account.circle:before { content: '\e853'}
+i.icon.adb:before { content: '\e60e'}
+i.icon.add:before { content: '\e145'}
+i.icon.add.a.photo:before { content: '\e439'}
+i.icon.add.alarm:before { content: '\e193'}
+i.icon.add.alert:before { content: '\e003'}
+i.icon.add.box:before { content: '\e146'}
+i.icon.add.circle:before { content: '\e147'}
+i.icon.add.circle.outline:before { content: '\e148'}
+i.icon.add.location:before { content: '\e567'}
+i.icon.add.shopping.cart:before { content: '\e854'}
+i.icon.add.to.photos:before { content: '\e39d'}
+i.icon.add.to.queue:before { content: '\e05c'}
+i.icon.adjust:before { content: '\e39e'}
+i.icon.airline.seat.flat:before { content: '\e630'}
+i.icon.airline.seat.flat.angled:before { content: '\e631'}
+i.icon.airline.seat.individual.suite:before { content: '\e632'}
+i.icon.airline.seat.legroom.extra:before { content: '\e633'}
+i.icon.airline.seat.legroom.normal:before { content: '\e634'}
+i.icon.airline.seat.legroom.reduced:before { content: '\e635'}
+i.icon.airline.seat.recline.extra:before { content: '\e636'}
+i.icon.airline.seat.recline.normal:before { content: '\e637'}
+i.icon.airplanemode.active:before { content: '\e195'}
+i.icon.airplanemode.inactive:before { content: '\e194'}
+i.icon.airplay:before { content: '\e055'}
+i.icon.airport.shuttle:before { content: '\eb3c'}
+i.icon.alarm:before { content: '\e855'}
+i.icon.alarm.add:before { content: '\e856'}
+i.icon.alarm.off:before { content: '\e857'}
+i.icon.alarm.on:before { content: '\e858'}
+i.icon.album:before { content: '\e019'}
+i.icon.all.inclusive:before { content: '\eb3d'}
+i.icon.all.out:before { content: '\e90b'}
+i.icon.android:before { content: '\e859'}
+i.icon.announcement:before { content: '\e85a'}
+i.icon.apps:before { content: '\e5c3'}
+i.icon.archive:before { content: '\e149'}
+i.icon.arrow.back:before { content: '\e5c4'}
+i.icon.arrow.downward:before { content: '\e5db'}
+i.icon.arrow.drop.down:before { content: '\e5c5'}
+i.icon.arrow.drop.down.circle:before { content: '\e5c6'}
+i.icon.arrow.drop.up:before { content: '\e5c7'}
+i.icon.arrow.forward:before { content: '\e5c8'}
+i.icon.arrow.upward:before { content: '\e5d8'}
+i.icon.art.track:before { content: '\e060'}
+i.icon.aspect.ratio:before { content: '\e85b'}
+i.icon.assessment:before { content: '\e85c'}
+i.icon.assignment:before { content: '\e85d'}
+i.icon.assignment.ind:before { content: '\e85e'}
+i.icon.assignment.late:before { content: '\e85f'}
+i.icon.assignment.return:before { content: '\e860'}
+i.icon.assignment.returned:before { content: '\e861'}
+i.icon.assignment.turned.in:before { content: '\e862'}
+i.icon.assistant:before { content: '\e39f'}
+i.icon.assistant.photo:before { content: '\e3a0'}
+i.icon.attach.file:before { content: '\e226'}
+i.icon.attach.money:before { content: '\e227'}
+i.icon.attachment:before { content: '\e2bc'}
+i.icon.audiotrack:before { content: '\e3a1'}
+i.icon.autorenew:before { content: '\e863'}
+i.icon.av.timer:before { content: '\e01b'}
+i.icon.backspace:before { content: '\e14a'}
+i.icon.backup:before { content: '\e864'}
+i.icon.battery.alert:before { content: '\e19c'}
+i.icon.battery.charging.full:before { content: '\e1a3'}
+i.icon.battery.full:before { content: '\e1a4'}
+i.icon.battery.std:before { content: '\e1a5'}
+i.icon.battery.unknown:before { content: '\e1a6'}
+i.icon.beach.access:before { content: '\eb3e'}
+i.icon.beenhere:before { content: '\e52d'}
+i.icon.block:before { content: '\e14b'}
+i.icon.bluetooth:before { content: '\e1a7'}
+i.icon.bluetooth.audio:before { content: '\e60f'}
+i.icon.bluetooth.connected:before { content: '\e1a8'}
+i.icon.bluetooth.disabled:before { content: '\e1a9'}
+i.icon.bluetooth.searching:before { content: '\e1aa'}
+i.icon.blur.circular:before { content: '\e3a2'}
+i.icon.blur.linear:before { content: '\e3a3'}
+i.icon.blur.off:before { content: '\e3a4'}
+i.icon.blur.on:before { content: '\e3a5'}
+i.icon.book:before { content: '\e865'}
+i.icon.bookmark:before { content: '\e866'}
+i.icon.bookmark.border:before { content: '\e867'}
+i.icon.border.all:before { content: '\e228'}
+i.icon.border.bottom:before { content: '\e229'}
+i.icon.border.clear:before { content: '\e22a'}
+i.icon.border.color:before { content: '\e22b'}
+i.icon.border.horizontal:before { content: '\e22c'}
+i.icon.border.inner:before { content: '\e22d'}
+i.icon.border.left:before { content: '\e22e'}
+i.icon.border.outer:before { content: '\e22f'}
+i.icon.border.right:before { content: '\e230'}
+i.icon.border.style:before { content: '\e231'}
+i.icon.border.top:before { content: '\e232'}
+i.icon.border.vertical:before { content: '\e233'}
+i.icon.branding.watermark:before { content: '\e06b'}
+i.icon.brightness.one:before { content: '\e3a6'}
+i.icon.brightness.two:before { content: '\e3a7'}
+i.icon.brightness.three:before { content: '\e3a8'}
+i.icon.brightness.four:before { content: '\e3a9'}
+i.icon.brightness.five:before { content: '\e3aa'}
+i.icon.brightness.six:before { content: '\e3ab'}
+i.icon.brightness.seven:before { content: '\e3ac'}
+i.icon.brightness.auto:before { content: '\e1ab'}
+i.icon.brightness.high:before { content: '\e1ac'}
+i.icon.brightness.low:before { content: '\e1ad'}
+i.icon.brightness.medium:before { content: '\e1ae'}
+i.icon.broken.image:before { content: '\e3ad'}
+i.icon.brush:before { content: '\e3ae'}
+i.icon.bubble.chart:before { content: '\e6dd'}
+i.icon.bug.report:before { content: '\e868'}
+i.icon.build:before { content: '\e869'}
+i.icon.burst.mode:before { content: '\e43c'}
+i.icon.business:before { content: '\e0af'}
+i.icon.business.center:before { content: '\eb3f'}
+i.icon.cached:before { content: '\e86a'}
+i.icon.cake:before { content: '\e7e9'}
+i.icon.call:before { content: '\e0b0'}
+i.icon.call.end:before { content: '\e0b1'}
+i.icon.call.made:before { content: '\e0b2'}
+i.icon.call.merge:before { content: '\e0b3'}
+i.icon.call.missed:before { content: '\e0b4'}
+i.icon.call.missed.outgoing:before { content: '\e0e4'}
+i.icon.call.received:before { content: '\e0b5'}
+i.icon.call.split:before { content: '\e0b6'}
+i.icon.call.to.action:before { content: '\e06c'}
+i.icon.camera:before { content: '\e3af'}
+i.icon.camera.alt:before { content: '\e3b0'}
+i.icon.camera.enhance:before { content: '\e8fc'}
+i.icon.camera.front:before { content: '\e3b1'}
+i.icon.camera.rear:before { content: '\e3b2'}
+i.icon.camera.roll:before { content: '\e3b3'}
+i.icon.cancel:before { content: '\e5c9'}
+i.icon.card.giftcard:before { content: '\e8f6'}
+i.icon.card.membership:before { content: '\e8f7'}
+i.icon.card.travel:before { content: '\e8f8'}
+i.icon.casino:before { content: '\eb40'}
+i.icon.cast:before { content: '\e307'}
+i.icon.cast.connected:before { content: '\e308'}
+i.icon.center.focus.strong:before { content: '\e3b4'}
+i.icon.center.focus.weak:before { content: '\e3b5'}
+i.icon.change.history:before { content: '\e86b'}
+i.icon.chat:before { content: '\e0b7'}
+i.icon.chat.bubble:before { content: '\e0ca'}
+i.icon.chat.bubble.outline:before { content: '\e0cb'}
+i.icon.check:before { content: '\e5ca'}
+i.icon.check.box:before { content: '\e834'}
+i.icon.check.box.outline.blank:before { content: '\e835'}
+i.icon.check.circle:before { content: '\e86c'}
+i.icon.chevron.left:before { content: '\e5cb'}
+i.icon.chevron.right:before { content: '\e5cc'}
+i.icon.child.care:before { content: '\eb41'}
+i.icon.child.friendly:before { content: '\eb42'}
+i.icon.chrome.reader.mode:before { content: '\e86d'}
+i.icon.class:before { content: '\e86e'}
+i.icon.clear:before { content: '\e14c'}
+i.icon.clear.all:before { content: '\e0b8'}
+i.icon.close:before { content: '\e5cd'}
+i.icon.closed.caption:before { content: '\e01c'}
+i.icon.cloud:before { content: '\e2bd'}
+i.icon.cloud.circle:before { content: '\e2be'}
+i.icon.cloud.done:before { content: '\e2bf'}
+i.icon.cloud.download:before { content: '\e2c0'}
+i.icon.cloud.off:before { content: '\e2c1'}
+i.icon.cloud.queue:before { content: '\e2c2'}
+i.icon.cloud.upload:before { content: '\e2c3'}
+i.icon.code:before { content: '\e86f'}
+i.icon.collections:before { content: '\e3b6'}
+i.icon.collections.bookmark:before { content: '\e431'}
+i.icon.color.lens:before { content: '\e3b7'}
+i.icon.colorize:before { content: '\e3b8'}
+i.icon.comment:before { content: '\e0b9'}
+i.icon.compare:before { content: '\e3b9'}
+i.icon.compare.arrows:before { content: '\e915'}
+i.icon.computer:before { content: '\e30a'}
+i.icon.confirmation.number:before { content: '\e638'}
+i.icon.contact.mail:before { content: '\e0d0'}
+i.icon.contact.phone:before { content: '\e0cf'}
+i.icon.contacts:before { content: '\e0ba'}
+i.icon.content.copy:before { content: '\e14d'}
+i.icon.content.cut:before { content: '\e14e'}
+i.icon.content.paste:before { content: '\e14f'}
+i.icon.control.point:before { content: '\e3ba'}
+i.icon.control.point.duplicate:before { content: '\e3bb'}
+i.icon.copyright:before { content: '\e90c'}
+i.icon.create:before { content: '\e150'}
+i.icon.create.new.folder:before { content: '\e2cc'}
+i.icon.credit.card:before { content: '\e870'}
+i.icon.crop:before { content: '\e3be'}
+i.icon.crop.sixteen.nine:before { content: '\e3bc'}
+i.icon.crop.three.two:before { content: '\e3bd'}
+i.icon.crop.five.four:before { content: '\e3bf'}
+i.icon.crop.seven.five:before { content: '\e3c0'}
+i.icon.crop.din:before { content: '\e3c1'}
+i.icon.crop.free:before { content: '\e3c2'}
+i.icon.crop.landscape:before { content: '\e3c3'}
+i.icon.crop.original:before { content: '\e3c4'}
+i.icon.crop.portrait:before { content: '\e3c5'}
+i.icon.crop.rotate:before { content: '\e437'}
+i.icon.crop.square:before { content: '\e3c6'}
+i.icon.dashboard:before { content: '\e871'}
+i.icon.data.usage:before { content: '\e1af'}
+i.icon.date.range:before { content: '\e916'}
+i.icon.dehaze:before { content: '\e3c7'}
+i.icon.delete:before { content: '\e872'}
+i.icon.delete.forever:before { content: '\e92b'}
+i.icon.delete.sweep:before { content: '\e16c'}
+i.icon.description:before { content: '\e873'}
+i.icon.desktop.mac:before { content: '\e30b'}
+i.icon.desktop.windows:before { content: '\e30c'}
+i.icon.details:before { content: '\e3c8'}
+i.icon.developer.board:before { content: '\e30d'}
+i.icon.developer.mode:before { content: '\e1b0'}
+i.icon.device.hub:before { content: '\e335'}
+i.icon.devices:before { content: '\e1b1'}
+i.icon.devices.other:before { content: '\e337'}
+i.icon.dialer.sip:before { content: '\e0bb'}
+i.icon.dialpad:before { content: '\e0bc'}
+i.icon.directions:before { content: '\e52e'}
+i.icon.directions.bike:before { content: '\e52f'}
+i.icon.directions.boat:before { content: '\e532'}
+i.icon.directions.bus:before { content: '\e530'}
+i.icon.directions.car:before { content: '\e531'}
+i.icon.directions.railway:before { content: '\e534'}
+i.icon.directions.run:before { content: '\e566'}
+i.icon.directions.subway:before { content: '\e533'}
+i.icon.directions.transit:before { content: '\e535'}
+i.icon.directions.walk:before { content: '\e536'}
+i.icon.disc.full:before { content: '\e610'}
+i.icon.dns:before { content: '\e875'}
+i.icon.do.not.disturb:before { content: '\e612'}
+i.icon.do.not.disturb.alt:before { content: '\e611'}
+i.icon.do.not.disturb.off:before { content: '\e643'}
+i.icon.do.not.disturb.on:before { content: '\e644'}
+i.icon.dock:before { content: '\e30e'}
+i.icon.domain:before { content: '\e7ee'}
+i.icon.done:before { content: '\e876'}
+i.icon.done.all:before { content: '\e877'}
+i.icon.donut.large:before { content: '\e917'}
+i.icon.donut.small:before { content: '\e918'}
+i.icon.drafts:before { content: '\e151'}
+i.icon.drag.handle:before { content: '\e25d'}
+i.icon.drive.eta:before { content: '\e613'}
+i.icon.dvr:before { content: '\e1b2'}
+i.icon.edit:before { content: '\e3c9'}
+i.icon.edit.location:before { content: '\e568'}
+i.icon.eject:before { content: '\e8fb'}
+i.icon.email:before { content: '\e0be'}
+i.icon.enhanced.encryption:before { content: '\e63f'}
+i.icon.equalizer:before { content: '\e01d'}
+i.icon.error:before { content: '\e000'}
+i.icon.error.outline:before { content: '\e001'}
+i.icon.euro.symbol:before { content: '\e926'}
+i.icon.ev.station:before { content: '\e56d'}
+i.icon.event:before { content: '\e878'}
+i.icon.event.available:before { content: '\e614'}
+i.icon.event.busy:before { content: '\e615'}
+i.icon.event.note:before { content: '\e616'}
+i.icon.event.seat:before { content: '\e903'}
+i.icon.exit.to.app:before { content: '\e879'}
+i.icon.expand.less:before { content: '\e5ce'}
+i.icon.expand.more:before { content: '\e5cf'}
+i.icon.explicit:before { content: '\e01e'}
+i.icon.explore:before { content: '\e87a'}
+i.icon.exposure:before { content: '\e3ca'}
+i.icon.exposure.neg.1:before { content: '\e3cb'}
+i.icon.exposure.neg.2:before { content: '\e3cc'}
+i.icon.exposure.plus.1:before { content: '\e3cd'}
+i.icon.exposure.plus.2:before { content: '\e3ce'}
+i.icon.exposure.zero:before { content: '\e3cf'}
+i.icon.extension:before { content: '\e87b'}
+i.icon.face:before { content: '\e87c'}
+i.icon.fast.forward:before { content: '\e01f'}
+i.icon.fast.rewind:before { content: '\e020'}
+i.icon.favorite:before { content: '\e87d'}
+i.icon.favorite.border:before { content: '\e87e'}
+i.icon.featured.play.list:before { content: '\e06d'}
+i.icon.featured.video:before { content: '\e06e'}
+i.icon.feedback:before { content: '\e87f'}
+i.icon.fiber.dvr:before { content: '\e05d'}
+i.icon.fiber.manual.record:before { content: '\e061'}
+i.icon.fiber.new:before { content: '\e05e'}
+i.icon.fiber.pin:before { content: '\e06a'}
+i.icon.fiber.smart.record:before { content: '\e062'}
+i.icon.file.download:before { content: '\e2c4'}
+i.icon.file.upload:before { content: '\e2c6'}
+i.icon.filter:before { content: '\e3d3'}
+i.icon.filter.1:before { content: '\e3d0'}
+i.icon.filter.2:before { content: '\e3d1'}
+i.icon.filter.3:before { content: '\e3d2'}
+i.icon.filter.4:before { content: '\e3d4'}
+i.icon.filter.5:before { content: '\e3d5'}
+i.icon.filter.6:before { content: '\e3d6'}
+i.icon.filter.7:before { content: '\e3d7'}
+i.icon.filter.8:before { content: '\e3d8'}
+i.icon.filter.9:before { content: '\e3d9'}
+i.icon.filter.9.plus:before { content: '\e3da'}
+i.icon.filter.b.and.w:before { content: '\e3db'}
+i.icon.filter.center.focus:before { content: '\e3dc'}
+i.icon.filter.drama:before { content: '\e3dd'}
+i.icon.filter.frames:before { content: '\e3de'}
+i.icon.filter.hdr:before { content: '\e3df'}
+i.icon.filter.list:before { content: '\e152'}
+i.icon.filter.none:before { content: '\e3e0'}
+i.icon.filter.tilt.shift:before { content: '\e3e2'}
+i.icon.filter.vintage:before { content: '\e3e3'}
+i.icon.find.in.page:before { content: '\e880'}
+i.icon.find.replace:before { content: '\e881'}
+i.icon.fingerprint:before { content: '\e90d'}
+i.icon.first.page:before { content: '\e5dc'}
+i.icon.fitness.center:before { content: '\eb43'}
+i.icon.flag:before { content: '\e153'}
+i.icon.flare:before { content: '\e3e4'}
+i.icon.flash.auto:before { content: '\e3e5'}
+i.icon.flash.off:before { content: '\e3e6'}
+i.icon.flash.on:before { content: '\e3e7'}
+i.icon.flight:before { content: '\e539'}
+i.icon.flight.land:before { content: '\e904'}
+i.icon.flight.takeoff:before { content: '\e905'}
+i.icon.flip:before { content: '\e3e8'}
+i.icon.flip.to.back:before { content: '\e882'}
+i.icon.flip.to.front:before { content: '\e883'}
+i.icon.folder:before { content: '\e2c7'}
+i.icon.folder.open:before { content: '\e2c8'}
+i.icon.folder.shared:before { content: '\e2c9'}
+i.icon.folder.special:before { content: '\e617'}
+i.icon.font.download:before { content: '\e167'}
+i.icon.format.align.center:before { content: '\e234'}
+i.icon.format.align.justify:before { content: '\e235'}
+i.icon.format.align.left:before { content: '\e236'}
+i.icon.format.align.right:before { content: '\e237'}
+i.icon.format.bold:before { content: '\e238'}
+i.icon.format.clear:before { content: '\e239'}
+i.icon.format.color.fill:before { content: '\e23a'}
+i.icon.format.color.reset:before { content: '\e23b'}
+i.icon.format.color.text:before { content: '\e23c'}
+i.icon.format.indent.decrease:before { content: '\e23d'}
+i.icon.format.indent.increase:before { content: '\e23e'}
+i.icon.format.italic:before { content: '\e23f'}
+i.icon.format.line.spacing:before { content: '\e240'}
+i.icon.format.list.bulleted:before { content: '\e241'}
+i.icon.format.list.numbered:before { content: '\e242'}
+i.icon.format.paint:before { content: '\e243'}
+i.icon.format.quote:before { content: '\e244'}
+i.icon.format.shapes:before { content: '\e25e'}
+i.icon.format.size:before { content: '\e245'}
+i.icon.format.strikethrough:before { content: '\e246'}
+i.icon.format.textdirection.l.to.r:before { content: '\e247'}
+i.icon.format.textdirection.r.to.l:before { content: '\e248'}
+i.icon.format.underlined:before { content: '\e249'}
+i.icon.forum:before { content: '\e0bf'}
+i.icon.forward:before { content: '\e154'}
+i.icon.forward.ten:before { content: '\e056'}
+i.icon.forward.thirty:before { content: '\e057'}
+i.icon.forward.five:before { content: '\e058'}
+i.icon.free.breakfast:before { content: '\eb44'}
+i.icon.fullscreen:before { content: '\e5d0'}
+i.icon.fullscreen.exit:before { content: '\e5d1'}
+i.icon.functions:before { content: '\e24a'}
+i.icon.g.translate:before { content: '\e927'}
+i.icon.gamepad:before { content: '\e30f'}
+i.icon.games:before { content: '\e021'}
+i.icon.gavel:before { content: '\e90e'}
+i.icon.gesture:before { content: '\e155'}
+i.icon.get.app:before { content: '\e884'}
+i.icon.gif:before { content: '\e908'}
+i.icon.golf.course:before { content: '\eb45'}
+i.icon.gps.fixed:before { content: '\e1b3'}
+i.icon.gps.not.fixed:before { content: '\e1b4'}
+i.icon.gps.off:before { content: '\e1b5'}
+i.icon.grade:before { content: '\e885'}
+i.icon.gradient:before { content: '\e3e9'}
+i.icon.grain:before { content: '\e3ea'}
+i.icon.graphic.eq:before { content: '\e1b8'}
+i.icon.grid.off:before { content: '\e3eb'}
+i.icon.grid.on:before { content: '\e3ec'}
+i.icon.group:before { content: '\e7ef'}
+i.icon.group.add:before { content: '\e7f0'}
+i.icon.group.work:before { content: '\e886'}
+i.icon.hd:before { content: '\e052'}
+i.icon.hdr.off:before { content: '\e3ed'}
+i.icon.hdr.on:before { content: '\e3ee'}
+i.icon.hdr.strong:before { content: '\e3f1'}
+i.icon.hdr.weak:before { content: '\e3f2'}
+i.icon.headset:before { content: '\e310'}
+i.icon.headset.mic:before { content: '\e311'}
+i.icon.healing:before { content: '\e3f3'}
+i.icon.hearing:before { content: '\e023'}
+i.icon.help:before { content: '\e887'}
+i.icon.help.outline:before { content: '\e8fd'}
+i.icon.high.quality:before { content: '\e024'}
+i.icon.highlight:before { content: '\e25f'}
+i.icon.highlight.off:before { content: '\e888'}
+i.icon.history:before { content: '\e889'}
+i.icon.home:before { content: '\e88a'}
+i.icon.hot.tub:before { content: '\eb46'}
+i.icon.hotel:before { content: '\e53a'}
+i.icon.hourglass.empty:before { content: '\e88b'}
+i.icon.hourglass.full:before { content: '\e88c'}
+i.icon.http:before { content: '\e902'}
+i.icon.https:before { content: '\e88d'}
+i.icon.image:before { content: '\e3f4'}
+i.icon.image.aspect.ratio:before { content: '\e3f5'}
+i.icon.import.contacts:before { content: '\e0e0'}
+i.icon.import.export:before { content: '\e0c3'}
+i.icon.important.devices:before { content: '\e912'}
+i.icon.inbox:before { content: '\e156'}
+i.icon.indeterminate.check.box:before { content: '\e909'}
+i.icon.info:before { content: '\e88e'}
+i.icon.info.outline:before { content: '\e88f'}
+i.icon.input:before { content: '\e890'}
+i.icon.insert.chart:before { content: '\e24b'}
+i.icon.insert.comment:before { content: '\e24c'}
+i.icon.insert.drive.file:before { content: '\e24d'}
+i.icon.insert.emoticon:before { content: '\e24e'}
+i.icon.insert.invitation:before { content: '\e24f'}
+i.icon.insert.link:before { content: '\e250'}
+i.icon.insert.photo:before { content: '\e251'}
+i.icon.invert.colors:before { content: '\e891'}
+i.icon.invert.colors.off:before { content: '\e0c4'}
+i.icon.iso:before { content: '\e3f6'}
+i.icon.keyboard:before { content: '\e312'}
+i.icon.keyboard.arrow.down:before { content: '\e313'}
+i.icon.keyboard.arrow.left:before { content: '\e314'}
+i.icon.keyboard.arrow.right:before { content: '\e315'}
+i.icon.keyboard.arrow.up:before { content: '\e316'}
+i.icon.keyboard.backspace:before { content: '\e317'}
+i.icon.keyboard.capslock:before { content: '\e318'}
+i.icon.keyboard.hide:before { content: '\e31a'}
+i.icon.keyboard.return:before { content: '\e31b'}
+i.icon.keyboard.tab:before { content: '\e31c'}
+i.icon.keyboard.voice:before { content: '\e31d'}
+i.icon.kitchen:before { content: '\eb47'}
+i.icon.label:before { content: '\e892'}
+i.icon.label.outline:before { content: '\e893'}
+i.icon.landscape:before { content: '\e3f7'}
+i.icon.language:before { content: '\e894'}
+i.icon.laptop:before { content: '\e31e'}
+i.icon.laptop.chromebook:before { content: '\e31f'}
+i.icon.laptop.mac:before { content: '\e320'}
+i.icon.laptop.windows:before { content: '\e321'}
+i.icon.last.page:before { content: '\e5dd'}
+i.icon.launch:before { content: '\e895'}
+i.icon.layers:before { content: '\e53b'}
+i.icon.layers.clear:before { content: '\e53c'}
+i.icon.leak.add:before { content: '\e3f8'}
+i.icon.leak.remove:before { content: '\e3f9'}
+i.icon.lens:before { content: '\e3fa'}
+i.icon.library.add:before { content: '\e02e'}
+i.icon.library.books:before { content: '\e02f'}
+i.icon.library.music:before { content: '\e030'}
+i.icon.lightbulb.outline:before { content: '\e90f'}
+i.icon.line.style:before { content: '\e919'}
+i.icon.line.weight:before { content: '\e91a'}
+i.icon.linear.scale:before { content: '\e260'}
+i.icon.link:before { content: '\e157'}
+i.icon.linked.camera:before { content: '\e438'}
+i.icon.list:before { content: '\e896'}
+i.icon.live.help:before { content: '\e0c6'}
+i.icon.live.tv:before { content: '\e639'}
+i.icon.local.activity:before { content: '\e53f'}
+i.icon.local.airport:before { content: '\e53d'}
+i.icon.local.atm:before { content: '\e53e'}
+i.icon.local.bar:before { content: '\e540'}
+i.icon.local.cafe:before { content: '\e541'}
+i.icon.local.car.wash:before { content: '\e542'}
+i.icon.local.convenience.store:before { content: '\e543'}
+i.icon.local.dining:before { content: '\e556'}
+i.icon.local.drink:before { content: '\e544'}
+i.icon.local.florist:before { content: '\e545'}
+i.icon.local.gas.station:before { content: '\e546'}
+i.icon.local.grocery.store:before { content: '\e547'}
+i.icon.local.hospital:before { content: '\e548'}
+i.icon.local.hotel:before { content: '\e549'}
+i.icon.local.laundry.service:before { content: '\e54a'}
+i.icon.local.library:before { content: '\e54b'}
+i.icon.local.mall:before { content: '\e54c'}
+i.icon.local.movies:before { content: '\e54d'}
+i.icon.local.offer:before { content: '\e54e'}
+i.icon.local.parking:before { content: '\e54f'}
+i.icon.local.pharmacy:before { content: '\e550'}
+i.icon.local.phone:before { content: '\e551'}
+i.icon.local.pizza:before { content: '\e552'}
+i.icon.local.play:before { content: '\e553'}
+i.icon.local.post.office:before { content: '\e554'}
+i.icon.local.printshop:before { content: '\e555'}
+i.icon.local.see:before { content: '\e557'}
+i.icon.local.shipping:before { content: '\e558'}
+i.icon.local.taxi:before { content: '\e559'}
+i.icon.location.city:before { content: '\e7f1'}
+i.icon.location.disabled:before { content: '\e1b6'}
+i.icon.location.off:before { content: '\e0c7'}
+i.icon.location.on:before { content: '\e0c8'}
+i.icon.location.searching:before { content: '\e1b7'}
+i.icon.lock:before { content: '\e897'}
+i.icon.lock.open:before { content: '\e898'}
+i.icon.lock.outline:before { content: '\e899'}
+i.icon.looks:before { content: '\e3fc'}
+i.icon.looks.3:before { content: '\e3fb'}
+i.icon.looks.4:before { content: '\e3fd'}
+i.icon.looks.5:before { content: '\e3fe'}
+i.icon.looks.6:before { content: '\e3ff'}
+i.icon.looks.one:before { content: '\e400'}
+i.icon.looks.two:before { content: '\e401'}
+i.icon.loop:before { content: '\e028'}
+i.icon.loupe:before { content: '\e402'}
+i.icon.low.priority:before { content: '\e16d'}
+i.icon.loyalty:before { content: '\e89a'}
+i.icon.mail:before { content: '\e158'}
+i.icon.mail.outline:before { content: '\e0e1'}
+i.icon.map:before { content: '\e55b'}
+i.icon.markunread:before { content: '\e159'}
+i.icon.markunread.mailbox:before { content: '\e89b'}
+i.icon.memory:before { content: '\e322'}
+i.icon.menu:before { content: '\e5d2'}
+i.icon.merge.type:before { content: '\e252'}
+i.icon.message:before { content: '\e0c9'}
+i.icon.mic:before { content: '\e029'}
+i.icon.mic.none:before { content: '\e02a'}
+i.icon.mic.off:before { content: '\e02b'}
+i.icon.mms:before { content: '\e618'}
+i.icon.mode.comment:before { content: '\e253'}
+i.icon.mode.edit:before { content: '\e254'}
+i.icon.monetization.on:before { content: '\e263'}
+i.icon.money.off:before { content: '\e25c'}
+i.icon.monochrome.photos:before { content: '\e403'}
+i.icon.mood:before { content: '\e7f2'}
+i.icon.mood.bad:before { content: '\e7f3'}
+i.icon.more:before { content: '\e619'}
+i.icon.more.horiz:before { content: '\e5d3'}
+i.icon.more.vert:before { content: '\e5d4'}
+i.icon.motorcycle:before { content: '\e91b'}
+i.icon.mouse:before { content: '\e323'}
+i.icon.move.to.inbox:before { content: '\e168'}
+i.icon.movie:before { content: '\e02c'}
+i.icon.movie.creation:before { content: '\e404'}
+i.icon.movie.filter:before { content: '\e43a'}
+i.icon.multiline.chart:before { content: '\e6df'}
+i.icon.music.note:before { content: '\e405'}
+i.icon.music.video:before { content: '\e063'}
+i.icon.my.location:before { content: '\e55c'}
+i.icon.nature:before { content: '\e406'}
+i.icon.nature.people:before { content: '\e407'}
+i.icon.navigate.before:before { content: '\e408'}
+i.icon.navigate.next:before { content: '\e409'}
+i.icon.navigation:before { content: '\e55d'}
+i.icon.near.me:before { content: '\e569'}
+i.icon.network.cell:before { content: '\e1b9'}
+i.icon.network.check:before { content: '\e640'}
+i.icon.network.locked:before { content: '\e61a'}
+i.icon.network.wifi:before { content: '\e1ba'}
+i.icon.new.releases:before { content: '\e031'}
+i.icon.next.week:before { content: '\e16a'}
+i.icon.nfc:before { content: '\e1bb'}
+i.icon.no.encryption:before { content: '\e641'}
+i.icon.no.sim:before { content: '\e0cc'}
+i.icon.not.interested:before { content: '\e033'}
+i.icon.note:before { content: '\e06f'}
+i.icon.note.add:before { content: '\e89c'}
+i.icon.notifications:before { content: '\e7f4'}
+i.icon.notifications.active:before { content: '\e7f7'}
+i.icon.notifications.none:before { content: '\e7f5'}
+i.icon.notifications.off:before { content: '\e7f6'}
+i.icon.notifications.paused:before { content: '\e7f8'}
+i.icon.offline.pin:before { content: '\e90a'}
+i.icon.ondemand.video:before { content: '\e63a'}
+i.icon.opacity:before { content: '\e91c'}
+i.icon.open.in.browser:before { content: '\e89d'}
+i.icon.open.in.new:before { content: '\e89e'}
+i.icon.open.with:before { content: '\e89f'}
+i.icon.pages:before { content: '\e7f9'}
+i.icon.pageview:before { content: '\e8a0'}
+i.icon.palette:before { content: '\e40a'}
+i.icon.pan.tool:before { content: '\e925'}
+i.icon.panorama:before { content: '\e40b'}
+i.icon.panorama.fish.eye:before { content: '\e40c'}
+i.icon.panorama.horizontal:before { content: '\e40d'}
+i.icon.panorama.vertical:before { content: '\e40e'}
+i.icon.panorama.wide.angle:before { content: '\e40f'}
+i.icon.party.mode:before { content: '\e7fa'}
+i.icon.pause:before { content: '\e034'}
+i.icon.pause.circle.filled:before { content: '\e035'}
+i.icon.pause.circle.outline:before { content: '\e036'}
+i.icon.payment:before { content: '\e8a1'}
+i.icon.people:before { content: '\e7fb'}
+i.icon.people.outline:before { content: '\e7fc'}
+i.icon.perm.camera.mic:before { content: '\e8a2'}
+i.icon.perm.contact.calendar:before { content: '\e8a3'}
+i.icon.perm.data.setting:before { content: '\e8a4'}
+i.icon.perm.device.information:before { content: '\e8a5'}
+i.icon.perm.identity:before { content: '\e8a6'}
+i.icon.perm.media:before { content: '\e8a7'}
+i.icon.perm.phone.msg:before { content: '\e8a8'}
+i.icon.perm.scan.wifi:before { content: '\e8a9'}
+i.icon.person:before { content: '\e7fd'}
+i.icon.person.add:before { content: '\e7fe'}
+i.icon.person.outline:before { content: '\e7ff'}
+i.icon.person.pin:before { content: '\e55a'}
+i.icon.person.pin.circle:before { content: '\e56a'}
+i.icon.personal.video:before { content: '\e63b'}
+i.icon.pets:before { content: '\e91d'}
+i.icon.phone:before { content: '\e0cd'}
+i.icon.phone.android:before { content: '\e324'}
+i.icon.phone.bluetooth.speaker:before { content: '\e61b'}
+i.icon.phone.forwarded:before { content: '\e61c'}
+i.icon.phone.in.talk:before { content: '\e61d'}
+i.icon.phone.iphone:before { content: '\e325'}
+i.icon.phone.locked:before { content: '\e61e'}
+i.icon.phone.missed:before { content: '\e61f'}
+i.icon.phone.paused:before { content: '\e620'}
+i.icon.phonelink:before { content: '\e326'}
+i.icon.phonelink.erase:before { content: '\e0db'}
+i.icon.phonelink.lock:before { content: '\e0dc'}
+i.icon.phonelink.off:before { content: '\e327'}
+i.icon.phonelink.ring:before { content: '\e0dd'}
+i.icon.phonelink.setup:before { content: '\e0de'}
+i.icon.photo:before { content: '\e410'}
+i.icon.photo.album:before { content: '\e411'}
+i.icon.photo.camera:before { content: '\e412'}
+i.icon.photo.filter:before { content: '\e43b'}
+i.icon.photo.library:before { content: '\e413'}
+i.icon.photo.size.select.actual:before { content: '\e432'}
+i.icon.photo.size.select.large:before { content: '\e433'}
+i.icon.photo.size.select.small:before { content: '\e434'}
+i.icon.picture.as.pdf:before { content: '\e415'}
+i.icon.picture.in.picture:before { content: '\e8aa'}
+i.icon.picture.in.picture.alt:before { content: '\e911'}
+i.icon.pie.chart:before { content: '\e6c4'}
+i.icon.pie.chart.outlined:before { content: '\e6c5'}
+i.icon.pin.drop:before { content: '\e55e'}
+i.icon.place:before { content: '\e55f'}
+i.icon.play.arrow:before { content: '\e037'}
+i.icon.play.circle.filled:before { content: '\e038'}
+i.icon.play.circle.outline:before { content: '\e039'}
+i.icon.play.for.work:before { content: '\e906'}
+i.icon.playlist.add:before { content: '\e03b'}
+i.icon.playlist.add.check:before { content: '\e065'}
+i.icon.playlist.play:before { content: '\e05f'}
+i.icon.plus.one:before { content: '\e800'}
+i.icon.poll:before { content: '\e801'}
+i.icon.polymer:before { content: '\e8ab'}
+i.icon.pool:before { content: '\eb48'}
+i.icon.portable.wifi.off:before { content: '\e0ce'}
+i.icon.portrait:before { content: '\e416'}
+i.icon.power:before { content: '\e63c'}
+i.icon.power.input:before { content: '\e336'}
+i.icon.power.settings.new:before { content: '\e8ac'}
+i.icon.pregnant.woman:before { content: '\e91e'}
+i.icon.present.to.all:before { content: '\e0df'}
+i.icon.print:before { content: '\e8ad'}
+i.icon.priority.high:before { content: '\e645'}
+i.icon.public:before { content: '\e80b'}
+i.icon.publish:before { content: '\e255'}
+i.icon.query.builder:before { content: '\e8ae'}
+i.icon.question.answer:before { content: '\e8af'}
+i.icon.queue:before { content: '\e03c'}
+i.icon.queue.music:before { content: '\e03d'}
+i.icon.queue.play.next:before { content: '\e066'}
+i.icon.radio:before { content: '\e03e'}
+i.icon.radio.button.checked:before { content: '\e837'}
+i.icon.radio.button.unchecked:before { content: '\e836'}
+i.icon.rate.review:before { content: '\e560'}
+i.icon.receipt:before { content: '\e8b0'}
+i.icon.recent.actors:before { content: '\e03f'}
+i.icon.record.voice.over:before { content: '\e91f'}
+i.icon.redeem:before { content: '\e8b1'}
+i.icon.redo:before { content: '\e15a'}
+i.icon.refresh:before { content: '\e5d5'}
+i.icon.remove:before { content: '\e15b'}
+i.icon.remove.circle:before { content: '\e15c'}
+i.icon.remove.circle.outline:before { content: '\e15d'}
+i.icon.remove.from.queue:before { content: '\e067'}
+i.icon.remove.red.eye:before { content: '\e417'}
+i.icon.remove.shopping.cart:before { content: '\e928'}
+i.icon.reorder:before { content: '\e8fe'}
+i.icon.repeat:before { content: '\e040'}
+i.icon.repeat.one:before { content: '\e041'}
+i.icon.replay:before { content: '\e042'}
+i.icon.replay.ten:before { content: '\e059'}
+i.icon.replay.thirty:before { content: '\e05a'}
+i.icon.replay.five:before { content: '\e05b'}
+i.icon.reply:before { content: '\e15e'}
+i.icon.reply.all:before { content: '\e15f'}
+i.icon.report:before { content: '\e160'}
+i.icon.report.problem:before { content: '\e8b2'}
+i.icon.restaurant:before { content: '\e56c'}
+i.icon.restaurant.menu:before { content: '\e561'}
+i.icon.restore:before { content: '\e8b3'}
+i.icon.restore.page:before { content: '\e929'}
+i.icon.ring.volume:before { content: '\e0d1'}
+i.icon.room:before { content: '\e8b4'}
+i.icon.room.service:before { content: '\eb49'}
+i.icon.rotate.ninety.degrees.ccw:before { content: '\e418'}
+i.icon.rotate.left:before { content: '\e419'}
+i.icon.rotate.right:before { content: '\e41a'}
+i.icon.rounded.corner:before { content: '\e920'}
+i.icon.router:before { content: '\e328'}
+i.icon.rowing:before { content: '\e921'}
+i.icon.rss.feed:before { content: '\e0e5'}
+i.icon.rv.hookup:before { content: '\e642'}
+i.icon.satellite:before { content: '\e562'}
+i.icon.save:before { content: '\e161'}
+i.icon.scanner:before { content: '\e329'}
+i.icon.schedule:before { content: '\e8b5'}
+i.icon.school:before { content: '\e80c'}
+i.icon.screen.lock.landscape:before { content: '\e1be'}
+i.icon.screen.lock.portrait:before { content: '\e1bf'}
+i.icon.screen.lock.rotation:before { content: '\e1c0'}
+i.icon.screen.rotation:before { content: '\e1c1'}
+i.icon.screen.share:before { content: '\e0e2'}
+i.icon.sd.card:before { content: '\e623'}
+i.icon.sd.storage:before { content: '\e1c2'}
+i.icon.search:before { content: '\e8b6'}
+i.icon.security:before { content: '\e32a'}
+i.icon.select.all:before { content: '\e162'}
+i.icon.send:before { content: '\e163'}
+i.icon.sentiment.dissatisfied:before { content: '\e811'}
+i.icon.sentiment.neutral:before { content: '\e812'}
+i.icon.sentiment.satisfied:before { content: '\e813'}
+i.icon.sentiment.very.dissatisfied:before { content: '\e814'}
+i.icon.sentiment.very.satisfied:before { content: '\e815'}
+i.icon.settings:before { content: '\e8b8'}
+i.icon.settings.applications:before { content: '\e8b9'}
+i.icon.settings.backup.restore:before { content: '\e8ba'}
+i.icon.settings.bluetooth:before { content: '\e8bb'}
+i.icon.settings.brightness:before { content: '\e8bd'}
+i.icon.settings.cell:before { content: '\e8bc'}
+i.icon.settings.ethernet:before { content: '\e8be'}
+i.icon.settings.input.antenna:before { content: '\e8bf'}
+i.icon.settings.input.component:before { content: '\e8c0'}
+i.icon.settings.input.composite:before { content: '\e8c1'}
+i.icon.settings.input.hdmi:before { content: '\e8c2'}
+i.icon.settings.input.svideo:before { content: '\e8c3'}
+i.icon.settings.overscan:before { content: '\e8c4'}
+i.icon.settings.phone:before { content: '\e8c5'}
+i.icon.settings.power:before { content: '\e8c6'}
+i.icon.settings.remote:before { content: '\e8c7'}
+i.icon.settings.system.daydream:before { content: '\e1c3'}
+i.icon.settings.voice:before { content: '\e8c8'}
+i.icon.share:before { content: '\e80d'}
+i.icon.shop:before { content: '\e8c9'}
+i.icon.shop.two:before { content: '\e8ca'}
+i.icon.shopping.basket:before { content: '\e8cb'}
+i.icon.shopping.cart:before { content: '\e8cc'}
+i.icon.short.text:before { content: '\e261'}
+i.icon.show.chart:before { content: '\e6e1'}
+i.icon.shuffle:before { content: '\e043'}
+i.icon.signal.cellular.four.bar:before { content: '\e1c8'}
+i.icon.signal.cellular.connected.no.internet.4.bar:before { content: '\e1cd'}
+i.icon.signal.cellular.no.sim:before { content: '\e1ce'}
+i.icon.signal.cellular.null:before { content: '\e1cf'}
+i.icon.signal.cellular.off:before { content: '\e1d0'}
+i.icon.signal.wifi.four.bar:before { content: '\e1d8'}
+i.icon.signal.wifi.four.bar.lock:before { content: '\e1d9'}
+i.icon.signal.wifi.off:before { content: '\e1da'}
+i.icon.sim.card:before { content: '\e32b'}
+i.icon.sim.card.alert:before { content: '\e624'}
+i.icon.skip.next:before { content: '\e044'}
+i.icon.skip.previous:before { content: '\e045'}
+i.icon.slideshow:before { content: '\e41b'}
+i.icon.slow.motion.video:before { content: '\e068'}
+i.icon.smartphone:before { content: '\e32c'}
+i.icon.smoke.free:before { content: '\eb4a'}
+i.icon.smoking.rooms:before { content: '\eb4b'}
+i.icon.sms:before { content: '\e625'}
+i.icon.sms.failed:before { content: '\e626'}
+i.icon.snooze:before { content: '\e046'}
+i.icon.sort:before { content: '\e164'}
+i.icon.sort.by.alpha:before { content: '\e053'}
+i.icon.spa:before { content: '\eb4c'}
+i.icon.space.bar:before { content: '\e256'}
+i.icon.speaker:before { content: '\e32d'}
+i.icon.speaker.group:before { content: '\e32e'}
+i.icon.speaker.notes:before { content: '\e8cd'}
+i.icon.speaker.notes.off:before { content: '\e92a'}
+i.icon.speaker.phone:before { content: '\e0d2'}
+i.icon.spellcheck:before { content: '\e8ce'}
+i.icon.star:before { content: '\e838'}
+i.icon.star.border:before { content: '\e83a'}
+i.icon.star.half:before { content: '\e839'}
+i.icon.stars:before { content: '\e8d0'}
+i.icon.stay.current.landscape:before { content: '\e0d3'}
+i.icon.stay.current.portrait:before { content: '\e0d4'}
+i.icon.stay.primary.landscape:before { content: '\e0d5'}
+i.icon.stay.primary.portrait:before { content: '\e0d6'}
+i.icon.stop:before { content: '\e047'}
+i.icon.stop.screen.share:before { content: '\e0e3'}
+i.icon.storage:before { content: '\e1db'}
+i.icon.store:before { content: '\e8d1'}
+i.icon.store.mall.directory:before { content: '\e563'}
+i.icon.straighten:before { content: '\e41c'}
+i.icon.streetview:before { content: '\e56e'}
+i.icon.strikethrough.s:before { content: '\e257'}
+i.icon.style:before { content: '\e41d'}
+i.icon.subdirectory.arrow.left:before { content: '\e5d9'}
+i.icon.subdirectory.arrow.right:before { content: '\e5da'}
+i.icon.subject:before { content: '\e8d2'}
+i.icon.subscriptions:before { content: '\e064'}
+i.icon.subtitles:before { content: '\e048'}
+i.icon.subway:before { content: '\e56f'}
+i.icon.supervisor.account:before { content: '\e8d3'}
+i.icon.surround.sound:before { content: '\e049'}
+i.icon.swap.calls:before { content: '\e0d7'}
+i.icon.swap.horiz:before { content: '\e8d4'}
+i.icon.swap.vert:before { content: '\e8d5'}
+i.icon.swap.vertical.circle:before { content: '\e8d6'}
+i.icon.switch.camera:before { content: '\e41e'}
+i.icon.switch.video:before { content: '\e41f'}
+i.icon.sync:before { content: '\e627'}
+i.icon.sync.disabled:before { content: '\e628'}
+i.icon.sync.problem:before { content: '\e629'}
+i.icon.system.update:before { content: '\e62a'}
+i.icon.system.update.alt:before { content: '\e8d7'}
+i.icon.tab:before { content: '\e8d8'}
+i.icon.tab.unselected:before { content: '\e8d9'}
+i.icon.tablet:before { content: '\e32f'}
+i.icon.tablet.android:before { content: '\e330'}
+i.icon.tablet.mac:before { content: '\e331'}
+i.icon.tag.faces:before { content: '\e420'}
+i.icon.tap.and.play:before { content: '\e62b'}
+i.icon.terrain:before { content: '\e564'}
+i.icon.text.fields:before { content: '\e262'}
+i.icon.text.format:before { content: '\e165'}
+i.icon.textsms:before { content: '\e0d8'}
+i.icon.texture:before { content: '\e421'}
+i.icon.theaters:before { content: '\e8da'}
+i.icon.thumb.down:before { content: '\e8db'}
+i.icon.thumb.up:before { content: '\e8dc'}
+i.icon.thumbs.up.down:before { content: '\e8dd'}
+i.icon.time.to.leave:before { content: '\e62c'}
+i.icon.timelapse:before { content: '\e422'}
+i.icon.timeline:before { content: '\e922'}
+i.icon.timer:before { content: '\e425'}
+i.icon.timer.ten:before { content: '\e423'}
+i.icon.timer.three:before { content: '\e424'}
+i.icon.timer.off:before { content: '\e426'}
+i.icon.title:before { content: '\e264'}
+i.icon.toc:before { content: '\e8de'}
+i.icon.today:before { content: '\e8df'}
+i.icon.toll:before { content: '\e8e0'}
+i.icon.tonality:before { content: '\e427'}
+i.icon.touch.app:before { content: '\e913'}
+i.icon.toys:before { content: '\e332'}
+i.icon.track.changes:before { content: '\e8e1'}
+i.icon.traffic:before { content: '\e565'}
+i.icon.train:before { content: '\e570'}
+i.icon.tram:before { content: '\e571'}
+i.icon.transfer.within.a.station:before { content: '\e572'}
+i.icon.transform:before { content: '\e428'}
+i.icon.translate:before { content: '\e8e2'}
+i.icon.trending.down:before { content: '\e8e3'}
+i.icon.trending.flat:before { content: '\e8e4'}
+i.icon.trending.up:before { content: '\e8e5'}
+i.icon.tune:before { content: '\e429'}
+i.icon.turned.in:before { content: '\e8e6'}
+i.icon.turned.in.not:before { content: '\e8e7'}
+i.icon.tv:before { content: '\e333'}
+i.icon.unarchive:before { content: '\e169'}
+i.icon.undo:before { content: '\e166'}
+i.icon.unfold.less:before { content: '\e5d6'}
+i.icon.unfold.more:before { content: '\e5d7'}
+i.icon.update:before { content: '\e923'}
+i.icon.usb:before { content: '\e1e0'}
+i.icon.verified.user:before { content: '\e8e8'}
+i.icon.vertical.align.bottom:before { content: '\e258'}
+i.icon.vertical.align.center:before { content: '\e259'}
+i.icon.vertical.align.top:before { content: '\e25a'}
+i.icon.vibration:before { content: '\e62d'}
+i.icon.video.call:before { content: '\e070'}
+i.icon.video.label:before { content: '\e071'}
+i.icon.video.library:before { content: '\e04a'}
+i.icon.videocam:before { content: '\e04b'}
+i.icon.videocam.off:before { content: '\e04c'}
+i.icon.videogame.asset:before { content: '\e338'}
+i.icon.view.agenda:before { content: '\e8e9'}
+i.icon.view.array:before { content: '\e8ea'}
+i.icon.view.carousel:before { content: '\e8eb'}
+i.icon.view.column:before { content: '\e8ec'}
+i.icon.view.comfy:before { content: '\e42a'}
+i.icon.view.compact:before { content: '\e42b'}
+i.icon.view.day:before { content: '\e8ed'}
+i.icon.view.headline:before { content: '\e8ee'}
+i.icon.view.list:before { content: '\e8ef'}
+i.icon.view.module:before { content: '\e8f0'}
+i.icon.view.quilt:before { content: '\e8f1'}
+i.icon.view.stream:before { content: '\e8f2'}
+i.icon.view.week:before { content: '\e8f3'}
+i.icon.vignette:before { content: '\e435'}
+i.icon.visibility:before { content: '\e8f4'}
+i.icon.visibility.off:before { content: '\e8f5'}
+i.icon.voice.chat:before { content: '\e62e'}
+i.icon.voicemail:before { content: '\e0d9'}
+i.icon.volume.down:before { content: '\e04d'}
+i.icon.volume.mute:before { content: '\e04e'}
+i.icon.volume.off:before { content: '\e04f'}
+i.icon.volume.up:before { content: '\e050'}
+i.icon.vpn.key:before { content: '\e0da'}
+i.icon.vpn.lock:before { content: '\e62f'}
+i.icon.wallpaper:before { content: '\e1bc'}
+i.icon.warning:before { content: '\e002'}
+i.icon.watch:before { content: '\e334'}
+i.icon.watch.later:before { content: '\e924'}
+i.icon.wb.auto:before { content: '\e42c'}
+i.icon.wb.cloudy:before { content: '\e42d'}
+i.icon.wb.incandescent:before { content: '\e42e'}
+i.icon.wb.iridescent:before { content: '\e436'}
+i.icon.wb.sunny:before { content: '\e430'}
+i.icon.wc:before { content: '\e63d'}
+i.icon.web:before { content: '\e051'}
+i.icon.web.asset:before { content: '\e069'}
+i.icon.weekend:before { content: '\e16b'}
+i.icon.whatshot:before { content: '\e80e'}
+i.icon.widgets:before { content: '\e1bd'}
+i.icon.wifi:before { content: '\e63e'}
+i.icon.wifi.lock:before { content: '\e1e1'}
+i.icon.wifi.tethering:before { content: '\e1e2'}
+i.icon.work:before { content: '\e8f9'}
+i.icon.wrap.text:before { content: '\e25b'}
+i.icon.youtube.searched.for:before { content: '\e8fa'}
+i.icon.zoom.in:before { content: '\e8ff'}
+i.icon.zoom.out:before { content: '\e900'}
+i.icon.zoom.out.map:before { content: '\e56b'}
diff --git a/assets/semantic/src/themes/material/elements/icon.variables b/assets/semantic/src/themes/material/elements/icon.variables
new file mode 100644
index 0000000..5a0a017
--- /dev/null
+++ b/assets/semantic/src/themes/material/elements/icon.variables
@@ -0,0 +1,11 @@
+@fontPath : '../../themes/material/assets/fonts';
+
+@width: 1em;
+@height: 1em;
+
+@small: 13px;
+@medium: 16px;
+@large: 18px;
+@big : 20px;
+@huge: 28px;
+@massive: 32px;
diff --git a/assets/semantic/src/themes/material/globals/site.overrides b/assets/semantic/src/themes/material/globals/site.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/material/globals/site.variables b/assets/semantic/src/themes/material/globals/site.variables
new file mode 100644
index 0000000..cb7c90f
--- /dev/null
+++ b/assets/semantic/src/themes/material/globals/site.variables
@@ -0,0 +1,128 @@
+/*******************************
+ Site Settings
+*******************************/
+
+/*-------------------
+ Fonts
+--------------------*/
+
+@headerFont : 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif;
+@pageFont : 'Roboto', 'Helvetica Neue', Arial, Helvetica, sans-serif;
+@googleFontName : 'Roboto';
+
+/*-------------------
+ Base Sizes
+--------------------*/
+
+@emSize : 14px;
+@fontSize : 13px;
+
+/*--------------
+ Page
+---------------*/
+
+@pageBackground : #F9F9F9;
+@lineHeight : 1.33;
+@textColor : #212121;
+
+/*--------------
+ Page Heading
+---------------*/
+
+@headerLineHeight : 1.33em;
+@headerFontWeight : 400;
+
+@h1 : 2.25rem;
+@h2 : 2rem;
+@h3 : 1.75rem;
+@h4 : 1.5rem;
+@h5 : 1.25rem;
+
+
+/*-------------------
+ Paths
+--------------------*/
+
+@imagePath : '../../themes/material/assets/images';
+@fontPath : '../../themes/material/assets/fonts';
+
+/*--------------
+ Paragraphs
+---------------*/
+
+@paragraphLineHeight: 1.7em;
+
+/*-------------------
+ Site Colors
+--------------------*/
+
+/*--- Colors ---*/
+@black : #1B1C1D;
+@blue : #2196F3;
+@green : #4CAF50;
+@grey : #9E9E9E;
+@orange : #FF9800;
+@pink : #E91E63;
+@purple : #9C27B0;
+@red : #F44336;
+@teal : #1de9b6;
+@yellow : #FFEB3B;
+
+/*--- Light Colors ---*/
+@lightBlack : #333333;
+@lightBlue : #2979FF;
+@lightGreen : #00E676;
+@lightOrange : #FF9100;
+@lightPink : #F50057;
+@lightPurple : #D500F9;
+@lightRed : #FF1744;
+@lightTeal : #1DE9B6;
+@lightYellow : #FFEA00;
+
+/*--- Neutrals ---*/
+@fullBlack : #000000;
+@darkGrey : #AAAAAA;
+@lightGrey : #DCDDDE;
+@offWhite : #FAFAFA;
+@darkWhite : #F0F0F0;
+@white : #FFFFFF;
+
+/*-------------------
+ Brand Colors
+--------------------*/
+
+@primaryColor : @blue;
+@secondaryColor : @grey;
+
+@lightPrimaryColor : @lightBlue;
+@lightSecondaryColor : @lightGrey;
+
+/*-------------------
+ Paragraph
+--------------------*/
+
+@paragraphMargin : 0em 0em 1.53em;
+
+/*-------------------
+ Links
+--------------------*/
+
+@linkColor : #009FDA;
+@linkUnderline : none;
+@linkHoverColor : lighten(@linkColor, 5);
+@linkHoverUnderline : @linkUnderline;
+
+/*-------------------
+ Highlighted Text
+--------------------*/
+
+@highlightBackground : #009FDA;
+@highlightColor : @white;
+
+/*-------------------
+ Accents
+--------------------*/
+
+/* 4px @ default em */
+@relativeBorderRadius: @relative4px;
+@absoluteBorderRadius: 4px;
diff --git a/assets/semantic/src/themes/material/modules/dropdown.overrides b/assets/semantic/src/themes/material/modules/dropdown.overrides
new file mode 100644
index 0000000..2b8cfd4
--- /dev/null
+++ b/assets/semantic/src/themes/material/modules/dropdown.overrides
@@ -0,0 +1,5 @@
+@import url(https://fonts.googleapis.com/css?family=Roboto:400,700);
+
+.ui.dropdown {
+ font-family: 'Roboto';
+}
diff --git a/assets/semantic/src/themes/material/modules/dropdown.variables b/assets/semantic/src/themes/material/modules/dropdown.variables
new file mode 100644
index 0000000..06b3979
--- /dev/null
+++ b/assets/semantic/src/themes/material/modules/dropdown.variables
@@ -0,0 +1,20 @@
+/*******************************
+ Menu
+*******************************/
+
+@menuBorderRadius: @borderRadius;
+@menuBorderColor: #DADADA;
+@menuBoxShadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
+
+@menuPadding: @relative8px 0em;
+@itemVerticalPadding: 1em;
+@itemHorizontalPadding: 1.5em;
+
+@menuHeaderFontSize: @small;
+@menuHeaderFontWeight: bold;
+@menuHeaderTextTransform: none;
+
+@selectionBorderEmWidth: 0em;
+@selectionItemDivider: none;
+
+@labelBoxShadow: none;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/material/modules/modal.overrides b/assets/semantic/src/themes/material/modules/modal.overrides
new file mode 100644
index 0000000..97c061a
--- /dev/null
+++ b/assets/semantic/src/themes/material/modules/modal.overrides
@@ -0,0 +1,6 @@
+@import url(https://fonts.googleapis.com/css?family=Roboto);
+
+.ui.modal .header {
+ font-family: "Roboto", Arial, Sans-serif !important;
+ font-weight: 400 !important;
+}
diff --git a/assets/semantic/src/themes/material/modules/modal.variables b/assets/semantic/src/themes/material/modules/modal.variables
new file mode 100644
index 0000000..c685857
--- /dev/null
+++ b/assets/semantic/src/themes/material/modules/modal.variables
@@ -0,0 +1,15 @@
+@boxShadow: 0px 10px 18px rgba(0, 0, 0, 0.22);
+@borderRadius: 0em;
+
+
+@headerBackground: @white;
+@headerVerticalPadding: 1.7142rem;
+@headerHorizontalPadding: 1.7142rem;
+@headerFontWeight: 400;
+@headerFontFamily: 'Roboto', "Helvetica Neue", Arial, sans-serif;
+@headerBorder: none;
+
+@contentPadding: 1rem 2rem 2rem;
+
+@actionBorder: none;
+@actionBackground: @white;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/pulsar/elements/loader.overrides b/assets/semantic/src/themes/pulsar/elements/loader.overrides
new file mode 100644
index 0000000..cf59ba1
--- /dev/null
+++ b/assets/semantic/src/themes/pulsar/elements/loader.overrides
@@ -0,0 +1,70 @@
+/*******************************
+ Theme Overrides
+*******************************/
+
+.ui.loader:after {
+ -webkit-animation: loader-pulsar 2s infinite linear;
+ animation: loader-pulsar 2s infinite linear;
+}
+
+@-webkit-keyframes loader-pulsar {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ opacity: 0;
+ }
+ 20% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ 40% {
+ -webkit-transform: rotate(740deg);
+ transform: rotate(740deg);
+ opacity: 1;
+ }
+ 60% {
+ -webkit-transform: rotate(1120deg);
+ transform: rotate(1120deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: rotate(1440deg);
+ transform: rotate(1440deg);
+ }
+ 100% {
+ -webkit-transform: rotate(1800deg);
+ transform: rotate(1800deg);
+ opacity: 0;
+ }
+}
+
+@keyframes loader-pulsar {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ opacity: 0;
+ }
+ 20% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+ 40% {
+ -webkit-transform: rotate(740deg);
+ transform: rotate(740deg);
+ opacity: 1;
+ }
+ 60% {
+ -webkit-transform: rotate(1120deg);
+ transform: rotate(1120deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: rotate(1440deg);
+ transform: rotate(1440deg);
+ }
+ 100% {
+ -webkit-transform: rotate(1800deg);
+ transform: rotate(1800deg);
+ opacity: 0;
+ }
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/pulsar/elements/loader.variables b/assets/semantic/src/themes/pulsar/elements/loader.variables
new file mode 100644
index 0000000..093e41c
--- /dev/null
+++ b/assets/semantic/src/themes/pulsar/elements/loader.variables
@@ -0,0 +1,7 @@
+/*******************************
+ Loader
+*******************************/
+
+@loaderSpeed: 2s;
+@loaderLineColor: @primaryColor;
+@invertedLoaderLineColor: @lightPrimaryColor;
diff --git a/assets/semantic/src/themes/raised/elements/button.overrides b/assets/semantic/src/themes/raised/elements/button.overrides
new file mode 100644
index 0000000..51d0ac5
--- /dev/null
+++ b/assets/semantic/src/themes/raised/elements/button.overrides
@@ -0,0 +1,3 @@
+/*******************************
+ Overrides
+*******************************/
diff --git a/assets/semantic/src/themes/raised/elements/button.variables b/assets/semantic/src/themes/raised/elements/button.variables
new file mode 100644
index 0000000..245a4a5
--- /dev/null
+++ b/assets/semantic/src/themes/raised/elements/button.variables
@@ -0,0 +1,27 @@
+/*******************************
+ Button
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+
+@backgroundColor: #F8F8F8;
+@backgroundImage: linear-gradient(transparent, rgba(0, 0, 0, 0.05));
+@verticalAlign: middle;
+@borderRadius: 0.4em;
+@borderBoxShadowColor: @borderColor;
+
+/* Shadow */
+@shadowDistance: 0.3em;
+@verticalPadding: 1em;
+@horizontalPadding: 2em;
+
+/* transition box shadow as well */
+@transition:
+ opacity @defaultDuration @defaultEasing,
+ background-color @defaultDuration @defaultEasing,
+ box-shadow @defaultDuration @defaultEasing,
+ color @defaultDuration @defaultEasing,
+ background @defaultDuration @defaultEasing
+;
\ No newline at end of file
diff --git a/assets/semantic/src/themes/resetcss/globals/reset.overrides b/assets/semantic/src/themes/resetcss/globals/reset.overrides
new file mode 100644
index 0000000..cff043f
--- /dev/null
+++ b/assets/semantic/src/themes/resetcss/globals/reset.overrides
@@ -0,0 +1,52 @@
+/*******************************
+ Overrides
+*******************************/
+
+/**
+ * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
+ * http://cssreset.com
+ */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
\ No newline at end of file
diff --git a/assets/semantic/src/themes/resetcss/globals/reset.variables b/assets/semantic/src/themes/resetcss/globals/reset.variables
new file mode 100644
index 0000000..889b4b0
--- /dev/null
+++ b/assets/semantic/src/themes/resetcss/globals/reset.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Reset
+*******************************/
\ No newline at end of file
diff --git a/assets/semantic/src/themes/round/elements/button.overrides b/assets/semantic/src/themes/round/elements/button.overrides
new file mode 100644
index 0000000..e69de29
diff --git a/assets/semantic/src/themes/round/elements/button.variables b/assets/semantic/src/themes/round/elements/button.variables
new file mode 100644
index 0000000..2ec3138
--- /dev/null
+++ b/assets/semantic/src/themes/round/elements/button.variables
@@ -0,0 +1,138 @@
+/*******************************
+ Button
+*******************************/
+
+/*-------------------
+ Element
+--------------------*/
+@borderRadius: @circularRadius;
+@textTransform: uppercase;
+@backgroundColor: #FFFFFF;
+@backgroundImage: none;
+@fontWeight: bold;
+@textColor: rgba(0, 0, 0, 0.6);
+@boxShadow:
+ 0px 0px 0px 2px rgba(0, 0, 0, 0.2) inset
+;
+
+/* Padding */
+@verticalPadding: 1.25em;
+@horizontalPadding: 3em;
+
+/* Icon */
+@iconOpacity: 0.8;
+@iconDistance: 0.4em;
+@iconTransition: opacity @defaultDuration @defaultEasing;
+@iconMargin: 0em @iconDistance 0em -(@iconDistance / 2);
+@iconVerticalAlign: top;
+
+/*-------------------
+ Group
+--------------------*/
+
+@verticalBoxShadow: 0px 0px 0px 1px @borderColor inset;
+
+
+/*-------------------
+ States
+--------------------*/
+
+@hoverBackgroundColor: #FAFAFA;
+@hoverBackgroundImage: none;
+@hoverBoxShadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.3) inset;
+
+@downBackgroundColor: #F0F0F0;
+@downBackgroundImage: none;
+@downBoxShadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.35) inset !important;
+
+@activeBackgroundColor: #DDDDDD;
+@activeBackgroundImage: none;
+@activeBoxShadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.3) inset !important;
+
+@loadingBackgroundColor: #FFFFFF;
+
+/*-------------------
+ Types
+--------------------*/
+
+/* Labeled Icon */
+@labeledIconWidth: 1em + (@verticalPadding * 2);
+@labeledIconBackgroundColor: transparent;
+@labeledIconPadding: (@horizontalPadding + 1em);
+@labeledIconBorder: rgba(0, 0, 0, 0.05);
+@labeledIconColor: '';
+
+@labeledIconLeftShadow: none;
+@labeledIconRightShadow: none;
+
+/* Basic */
+@basicBoxShadow: 0px 0px 0px 1px @borderColor;
+@iconOffset: 0.05em;
+@basicLoadingColor: #FFFFFF;
+
+@basicHoverBackground: #FAFAFA;
+@basicHoverBoxShadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15);
+
+@basicDownBackground: rgba(0, 0, 0, 0.02);
+@basicDownBoxShadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2);
+
+@basicActiveBackground: @transparentBlack;
+@basicActiveColor: @selectedTextColor;
+
+/* Basic Inverted */
+@basicInvertedBackground: transparent;
+@basicInvertedHoverBackground: transparent;
+@basicInvertedDownBackground: @transparentWhite;
+@basicInvertedActiveBackground: @transparentWhite;
+
+@basicInvertedBoxShadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5);
+@basicInvertedHoverBoxShadow: 0px 0px 0px 2px @selectedWhiteBorderColor;
+@basicInvertedDownBoxShadow: 0px 0px 0px 2px @selectedWhiteBorderColor;
+@basicInvertedActiveBoxShadow: 0px 0px 0px 2px @selectedWhiteBorderColor;
+
+@basicInvertedColor: @darkWhite;
+@basicInvertedHoverColor: @darkWhiteHover;
+@basicInvertedDownColor: @darkWhiteActive;
+@basicInvertedActiveColor: @invertedTextColor;
+
+
+/* Basic Group */
+@basicGroupBorder: 1px solid @borderColor;
+@basicGroupBoxShadow: 0px 0px 0px 1px @borderColor;
+
+/*-------------------
+ Variations
+--------------------*/
+
+/* Colors */
+@coloredBackgroundImage: linear-gradient(rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0.1));
+@coloredBoxShadow: @shadowBoxShadow;
+
+/* Compact */
+@compactVerticalPadding: (@verticalPadding * 0.75);
+@compactHorizontalPadding: (@horizontalPadding * 0.75);
+
+/* Attached */
+@attachedOffset: -1px;
+@attachedBoxShadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
+@attachedHorizontalPadding: 0.75em;
+
+/* Floated */
+@floatedMargin: 0.25em;
+
+/* Animated */
+@animationDuration: 0.3s;
+@animationEasing: ease;
+@fadeScaleHigh: 1.5;
+@fadeScaleLow: 0.75;
+
+/* Sizing */
+@mini: 0.7rem;
+@tiny: 0.8rem;
+@small: 0.875rem;
+@medium: 1rem;
+@large: 1.125rem;
+@big: 1.25rem;
+@huge: 1.375rem;
+@massive: 1.5rem;
+
diff --git a/assets/semantic/src/themes/rtl/globals/site.overrides b/assets/semantic/src/themes/rtl/globals/site.overrides
new file mode 100644
index 0000000..b1abe22
--- /dev/null
+++ b/assets/semantic/src/themes/rtl/globals/site.overrides
@@ -0,0 +1,6 @@
+/*******************************
+ Global Overrides
+*******************************/
+
+/* Import Droid Arabic Kufi */
+@import 'https://fonts.googleapis.com/earlyaccess/droidarabickufi.css';
diff --git a/assets/semantic/src/themes/rtl/globals/site.variables b/assets/semantic/src/themes/rtl/globals/site.variables
new file mode 100644
index 0000000..813cb98
--- /dev/null
+++ b/assets/semantic/src/themes/rtl/globals/site.variables
@@ -0,0 +1,14 @@
+/*******************************
+ Site Settings
+*******************************/
+
+/*-------------------
+ Fonts
+--------------------*/
+
+@googleFontName : 'Droid Sans';
+
+/* Kufi imported in site.overrides */
+@headerFont : 'Droid Arabic Kufi', 'Droid Sans', 'Helvetica Neue', Arial, Helvetica, sans-serif;
+@pageFont : 'Droid Arabic Kufi', 'Droid Sans', 'Helvetica Neue', Arial, Helvetica, sans-serif;
+
diff --git a/assets/semantic/src/themes/striped/modules/progress.overrides b/assets/semantic/src/themes/striped/modules/progress.overrides
new file mode 100644
index 0000000..941f433
--- /dev/null
+++ b/assets/semantic/src/themes/striped/modules/progress.overrides
@@ -0,0 +1,29 @@
+/*******************************
+ Progress
+*******************************/
+
+.ui.progress .bar {
+ background-size: 30px 30px;
+ background-image:
+ linear-gradient(
+ 135deg, rgba(255, 255, 255, 0.08) 25%, transparent 25%,
+ transparent 50%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.08) 75%,
+ transparent 75%, transparent
+ )
+ ;
+}
+
+.ui.progress.active .bar:after {
+ animation: none;
+}
+.ui.progress.active .bar {
+ animation: progress-striped 3s linear infinite;
+}
+@keyframes progress-striped {
+ 0% {
+ background-position: 0px 0;
+ }
+ 100% {
+ background-position: 60px 0;
+ }
+}
diff --git a/assets/semantic/src/themes/striped/modules/progress.variables b/assets/semantic/src/themes/striped/modules/progress.variables
new file mode 100644
index 0000000..dcbb8f7
--- /dev/null
+++ b/assets/semantic/src/themes/striped/modules/progress.variables
@@ -0,0 +1,3 @@
+/*******************************
+ Progress
+*******************************/
diff --git a/assets/semantic/src/themes/timeline/views/feed.overrides b/assets/semantic/src/themes/timeline/views/feed.overrides
new file mode 100644
index 0000000..4a984b3
--- /dev/null
+++ b/assets/semantic/src/themes/timeline/views/feed.overrides
@@ -0,0 +1,27 @@
+/*******************************
+ User Variable Overrides
+*******************************/
+
+.ui.feed > .event .label {
+ border-left: 3px solid #DDDDDD;
+}
+.ui.feed > .event:last-child .label {
+ border-left-color: transparent;
+}
+
+.ui.feed > .event > .label {
+ margin-left: 1.6em;
+}
+
+.ui.feed > .event > .label > img,
+.ui.feed > .event > .label > .icon {
+ background-color: #009FDA;
+ border-radius: 500rem;
+ color: #FFFFFF;
+ width: 3rem;
+ height: 3rem;
+ line-height: 1.5;
+ left: -1.6rem;
+ opacity: 1;
+ position: relative;
+}
diff --git a/assets/semantic/src/themes/timeline/views/feed.variables b/assets/semantic/src/themes/timeline/views/feed.variables
new file mode 100644
index 0000000..6a6a93d
--- /dev/null
+++ b/assets/semantic/src/themes/timeline/views/feed.variables
@@ -0,0 +1,36 @@
+/*******************************
+ Feed
+*******************************/
+
+/*-------------------
+ Elements
+--------------------*/
+
+@eventMargin: 0em;
+@eventDivider: none;
+@eventPadding: 0em;
+
+/* Event Label */
+@labelWidth: 3em;
+@labelHeight: auto;
+
+@labeledContentMargin: 0.75em 0em 2em 0.75em;
+
+/* Icon */
+@iconLabelBackground: @primaryColor;
+@iconLabelBorderRadius: @circularRadius;
+@iconLabelColor: @white;
+
+/* Metadata Group */
+@metadataDisplay: inline-block;
+@metadataMargin: 1em 0em 0em;
+@metadataBackground: @white @subtleGradient;
+@metadataBorder: 1px solid @solidBorderColor;
+@metadataBorderRadius: 0.25em;
+@metadataBoxShadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+@metadataPadding: 0.5em 1em;
+@metadataColor: rgba(0, 0, 0, 0.6);
+
+/*-------------------
+ Variations
+--------------------*/
diff --git a/assets/semantic/src/themes/twitter/elements/button.overrides b/assets/semantic/src/themes/twitter/elements/button.overrides
new file mode 100644
index 0000000..f6c3ef6
--- /dev/null
+++ b/assets/semantic/src/themes/twitter/elements/button.overrides
@@ -0,0 +1,13 @@
+/*******************************
+ Overrides
+*******************************/
+
+.ui.primary.button {
+ box-shadow:
+ 0px 0px 0px 1px #3B88C3 inset,
+ 0 2px 0 rgba(255, 255, 255, 0.15) inset
+ ;
+}
+.ui.primary.button > .icon {
+ color: #FFFFFF;
+}
diff --git a/assets/semantic/src/themes/twitter/elements/button.variables b/assets/semantic/src/themes/twitter/elements/button.variables
new file mode 100644
index 0000000..8aa29ff
--- /dev/null
+++ b/assets/semantic/src/themes/twitter/elements/button.variables
@@ -0,0 +1,44 @@
+/*-------------------
+ Global Variables
+--------------------*/
+
+@pageFont: Helvetica Neue, Helvetica, Arial, sans-serif;
+@textColor: #66757F;
+@blue: #55ACEE;
+
+/*-------------------
+ Button Variables
+--------------------*/
+
+@backgroundColor: #F5F8FA;
+@backgroundImage: linear-gradient(@white, @backgroundColor);
+@color: #66757F;
+@borderBoxShadowColor: #E1E8ED;
+
+@textTransform: none;
+@fontWeight: bold;
+@textColor: #333333;
+
+@horizontalPadding: 1.284em;
+@verticalPadding: 0.8571em;
+
+@activeBackgroundColor: rgba(0, 0, 0, 0.1);
+
+@primaryColor: @blue;
+@coloredBackgroundImage: @subtleGradient;
+
+
+/*-------------------
+ States
+--------------------*/
+
+@hoverBackgroundColor: #E1E8ED;
+@hoverBackgroundImage: linear-gradient(@white, @hoverBackgroundColor);
+@hoverColor: #292F33;
+
+@downBackgroundColor: #E1E8ED;
+@downColor: #292F33;
+@downPressedShadow: 0px 1px 4px rgba(0, 0, 0, 0.2) inset;
+
+@labeledIconBackgroundColor: rgba(85, 172, 238, 0.05);
+@labeledIconBorder: rgba(0, 0, 0, 0.1);
diff --git a/assets/semantic/src/themes/twitter/elements/emoji.overrides b/assets/semantic/src/themes/twitter/elements/emoji.overrides
new file mode 100644
index 0000000..5573ad2
--- /dev/null
+++ b/assets/semantic/src/themes/twitter/elements/emoji.overrides
@@ -0,0 +1,3094 @@
+/*
+* Tweemoji v12.0 by @twitter - https://twemoji.twitter.com/ - @twitter
+* License - CC-BY 4.0 - https://creativecommons.org/licenses/by/4.0/
+*/
+
+/*******************************
+ Emojis
+*******************************/
+
+@emoji-map: {
+ 2049: interrobang;
+ 2122: tm;
+ 2139: information_source;
+ 2194: left_right_arrow;
+ 2195: arrow_up_down;
+ 2196: arrow_upper_left;
+ 2197: arrow_upper_right;
+ 2198: arrow_lower_right;
+ 2199: arrow_lower_left;
+ 2328: keyboard;
+ 2600: sunny;
+ 2601: cloud;
+ 2602: umbrella2;
+ 2603: snowman2;
+ 2604: comet;
+ 2611: ballot_box_with_check;
+ 2614: umbrella;
+ 2615: coffee;
+ 2618: shamrock;
+ 2620: skull_crossbones;
+ 2622: radioactive;
+ 2623: biohazard;
+ 2626: orthodox_cross;
+ 2638: wheel_of_dharma;
+ 2639: frowning2;
+ 2640: female_sign;
+ 2642: male_sign;
+ 2648: aries;
+ 2649: taurus;
+ 2650: sagittarius;
+ 2651: capricorn;
+ 2652: aquarius;
+ 2653: pisces;
+ 2660: spades;
+ 2663: clubs;
+ 2665: hearts;
+ 2666: diamonds;
+ 2668: hotsprings;
+ 2692: hammer_pick;
+ 2693: anchor;
+ 2694: crossed_swords;
+ 2695: medical_symbol;
+ 2696: scales;
+ 2697: alembic;
+ 2699: gear;
+ 2702: scissors;
+ 2705: white_check_mark;
+ 2708: airplane;
+ 2709: envelope;
+ 2712: black_nib;
+ 2714: heavy_check_mark;
+ 2716: heavy_multiplication_x;
+ 2721: star_of_david;
+ 2728: sparkles;
+ 2733: eight_spoked_asterisk;
+ 2734: eight_pointed_black_star;
+ 2744: snowflake;
+ 2747: sparkle;
+ 2753: question;
+ 2754: grey_question;
+ 2755: grey_exclamation;
+ 2757: exclamation;
+ 2763: heart_exclamation;
+ 2764: heart;
+ 2795: heavy_plus_sign;
+ 2796: heavy_minus_sign;
+ 2797: heavy_division_sign;
+ 2934: arrow_heading_up;
+ 2935: arrow_heading_down;
+ 3030: wavy_dash;
+ 3297: congratulations;
+ 3299: secret;
+ 1f9e1: orange_heart;
+ 1f49b: yellow_heart;
+ 1f49a: green_heart;
+ 1f499: blue_heart;
+ 1f49c: purple_heart;
+ 1f5a4: black_heart;
+ 1f90e: brown_heart;
+ 1f90d: white_heart;
+ 1f494: broken_heart;
+ 1f495: two_hearts;
+ 1f49e: revolving_hearts;
+ 1f493: heartbeat;
+ 1f497: heartpulse;
+ 1f496: sparkling_heart;
+ 1f498: cupid;
+ 1f49d: gift_heart;
+ 1f49f: heart_decoration;
+ 262e: peace;
+ 271d: cross;
+ 262a: star_and_crescent;
+ 1f549: om_symbol;
+ 1f52f: six_pointed_star;
+ 1f54e: menorah;
+ 262f: yin_yang;
+ 1f6d0: place_of_worship;
+ 26ce: ophiuchus;
+ 264a: gemini;
+ 264b: cancer;
+ 264c: leo;
+ 264d: virgo;
+ 264e: libra;
+ 264f: scorpius;
+ 1f194: id;
+ 269b: atom;
+ 1f251: accept;
+ 1f4f4: mobile_phone_off;
+ 1f4f3: vibration_mode;
+ 1f236: u6709;
+ 1f21a: u7121;
+ 1f238: u7533;
+ 1f23a: u55b6;
+ 1f237: u6708;
+ 1f19a: vs;
+ 1f4ae: white_flower;
+ 1f250: ideograph_advantage;
+ 1f234: u5408;
+ 1f235: u6e80;
+ 1f239: u5272;
+ 1f232: u7981;
+ 1f170: a;
+ 1f171: b;
+ 1f18e: ab;
+ 1f191: cl;
+ 1f17e: o2;
+ 1f198: sos;
+ 274c: x;
+ 2b55: o;
+ 1f6d1: octagonal_sign;
+ 26d4: no_entry;
+ 1f4db: name_badge;
+ 1f6ab: no_entry_sign;
+ 1f4af: 100;
+ 1f4a2: anger;
+ 1f6b7: no_pedestrians;
+ 1f6af: do_not_litter;
+ 1f6b3: no_bicycles;
+ 1f6b1: non-potable_water;
+ 1f51e: underage;
+ 1f4f5: no_mobile_phones;
+ 1f6ad: no_smoking;
+ 203c: bangbang;
+ 1f505: low_brightness;
+ 1f506: high_brightness;
+ 303d: part_alternation_mark;
+ 26a0: warning;
+ 1f6b8: children_crossing;
+ 1f531: trident;
+ 269c: fleur-de-lis;
+ 1f530: beginner;
+ 267b: recycle;
+ 1f22f: u6307;
+ 1f4b9: chart;
+ 274e: negative_squared_cross_mark;
+ 1f310: globe_with_meridians;
+ 1f4a0: diamond_shape_with_a_dot_inside;
+ 24c2: m;
+ 1f300: cyclone;
+ 1f4a4: zzz;
+ 1f3e7: atm;
+ 1f6be: wc;
+ 267f: wheelchair;
+ 1f17f: parking;
+ 1f233: u7a7a;
+ 1f202: sa;
+ 1f6c2: passport_control;
+ 1f6c3: customs;
+ 1f6c4: baggage_claim;
+ 1f6c5: left_luggage;
+ 1f6b9: mens;
+ 1f6ba: womens;
+ 1f6bc: baby_symbol;
+ 1f6bb: restroom;
+ 1f6ae: put_litter_in_its_place;
+ 1f3a6: cinema;
+ 1f4f6: signal_strength;
+ 1f201: koko;
+ 1f523: symbols;
+ 1f524: abc;
+ 1f521: abcd;
+ 1f520: capital_abcd;
+ 1f196: ng;
+ 1f197: ok;
+ 1f199: up;
+ 1f192: cool;
+ 1f195: new;
+ 1f193: free;
+ 30-20e3: zero;
+ 31-20e3: one;
+ 32-20e3: two;
+ 33-20e3: three;
+ 34-20e3: four;
+ 35-20e3: five;
+ 36-20e3: six;
+ 37-20e3: seven;
+ 38-20e3: eight;
+ 39-20e3: nine;
+ 1f51f: keycap_ten;
+ 1f522: 1234;
+ 23-20e3: hash;
+ 2a-20e3: asterisk;
+ 23cf: eject;
+ 25b6: arrow_forward;
+ 23f8: pause_button;
+ 23ef: play_pause;
+ 23f9: stop_button;
+ 23fa: record_button;
+ 23ed: track_next;
+ 23ee: track_previous;
+ 23e9: fast_forward;
+ 23ea: rewind;
+ 23eb: arrow_double_up;
+ 23ec: arrow_double_down;
+ 25c0: arrow_backward;
+ 1f53c: arrow_up_small;
+ 1f53d: arrow_down_small;
+ 27a1: arrow_right;
+ 2b05: arrow_left;
+ 2b06: arrow_up;
+ 2b07: arrow_down;
+ 21aa: arrow_right_hook;
+ 21a9: leftwards_arrow_with_hook;
+ 1f500: twisted_rightwards_arrows;
+ 1f501: repeat;
+ 1f502: repeat_one;
+ 1f504: arrows_counterclockwise;
+ 1f503: arrows_clockwise;
+ 1f3b5: musical_note;
+ 1f3b6: notes;
+ 267e: infinity;
+ 1f4b2: heavy_dollar_sign;
+ 1f4b1: currency_exchange;
+ a9: copyright;
+ ae: registered;
+ 27b0: curly_loop;
+ 27bf: loop;
+ 1f51a: end;
+ 1f519: back;
+ 1f51b: on;
+ 1f51d: top;
+ 1f51c: soon;
+ 1f518: radio_button;
+ 26aa: white_circle;
+ 26ab: black_circle;
+ 1f534: red_circle;
+ 1f535: blue_circle;
+ 1f7e4: brown_circle;
+ 1f7e3: purple_circle;
+ 1f7e2: green_circle;
+ 1f7e1: yellow_circle;
+ 1f7e0: orange_circle;
+ 1f53a: small_red_triangle;
+ 1f53b: small_red_triangle_down;
+ 1f538: small_orange_diamond;
+ 1f539: small_blue_diamond;
+ 1f536: large_orange_diamond;
+ 1f537: large_blue_diamond;
+ 1f533: white_square_button;
+ 1f532: black_square_button;
+ 25aa: black_small_square;
+ 25ab: white_small_square;
+ 25fe: black_medium_small_square;
+ 25fd: white_medium_small_square;
+ 25fc: black_medium_square;
+ 25fb: white_medium_square;
+ 2b1b: black_large_square;
+ 2b1c: white_large_square;
+ 1f7e7: orange_square;
+ 1f7e6: blue_square;
+ 1f7e5: red_square;
+ 1f7eb: brown_square;
+ 1f7ea: purple_square;
+ 1f7e9: green_square;
+ 1f7e8: yellow_square;
+ 1f508: speaker;
+ 1f507: mute;
+ 1f509: sound;
+ 1f50a: loud_sound;
+ 1f514: bell;
+ 1f515: no_bell;
+ 1f4e3: mega;
+ 1f4e2: loudspeaker;
+ 1f5e8: speech_left;
+ 1f441-200d-1f5e8: eye_in_speech_bubble;
+ 1f4ac: speech_balloon;
+ 1f4ad: thought_balloon;
+ 1f5ef: anger_right;
+ 1f0cf: black_joker;
+ 1f3b4: flower_playing_cards;
+ 1f004: mahjong;
+ 1f550: clock1;
+ 1f551: clock2;
+ 1f552: clock3;
+ 1f553: clock4;
+ 1f554: clock5;
+ 1f555: clock6;
+ 1f556: clock7;
+ 1f557: clock8;
+ 1f558: clock9;
+ 1f559: clock10;
+ 1f55a: clock11;
+ 1f55b: clock12;
+ 1f55c: clock130;
+ 1f55d: clock230;
+ 1f55e: clock330;
+ 1f55f: clock430;
+ 1f560: clock530;
+ 1f561: clock630;
+ 1f562: clock730;
+ 1f563: clock830;
+ 1f564: clock930;
+ 1f565: clock1030;
+ 1f566: clock1130;
+ 1f567: clock1230;
+ 30-20e3: digit_zero;
+ 31-20e3: digit_one;
+ 32-20e3: digit_two;
+ 33-20e3: digit_three;
+ 34-20e3: digit_four;
+ 35-20e3: digit_five;
+ 36-20e3: digit_six;
+ 37-20e3: digit_seven;
+ 38-20e3: digit_eight;
+ 39-20e3: digit_nine;
+ 23-20e3: pound_symbol;
+ 2a-20e3: asterisk_symbol;
+ 26bd: soccer;
+ 1f3c0: basketball;
+ 1f3c8: football;
+ 26be: baseball;
+ 1f94e: softball;
+ 1f3be: tennis;
+ 1f3d0: volleyball;
+ 1f3c9: rugby_football;
+ 1f94f: flying_disc;
+ 1f3b1: 8ball;
+ 1f3d3: ping_pong;
+ 1f3f8: badminton;
+ 1f3d2: hockey;
+ 1f3d1: field_hockey;
+ 1f94d: lacrosse;
+ 1f3cf: cricket_game;
+ 1f945: goal;
+ 26f3: golf;
+ 1f3f9: bow_and_arrow;
+ 1f3a3: fishing_pole_and_fish;
+ 1f94a: boxing_glove;
+ 1f94b: martial_arts_uniform;
+ 1f3bd: running_shirt_with_sash;
+ 1f6f9: skateboard;
+ 1f6f7: sled;
+ 1fa82: parachute;
+ 26f8: ice_skate;
+ 1f94c: curling_stone;
+ 1f3bf: ski;
+ 26f7: skier;
+ 1f3c2: snowboarder;
+ 1f3c2-1f3fb: snowboarder_tone1;
+ 1f3c2-1f3fc: snowboarder_tone2;
+ 1f3c2-1f3fd: snowboarder_tone3;
+ 1f3c2-1f3fe: snowboarder_tone4;
+ 1f3c2-1f3ff: snowboarder_tone5;
+ 1f3cb: person_lifting_weights;
+ 1f3cb-1f3fb: person_lifting_weights_tone1;
+ 1f3cb-1f3fc: person_lifting_weights_tone2;
+ 1f3cb-1f3fd: person_lifting_weights_tone3;
+ 1f3cb-1f3fe: person_lifting_weights_tone4;
+ 1f3cb-1f3ff: person_lifting_weights_tone5;
+ 1f3cb-fe0f-200d-2640-fe0f: woman_lifting_weights;
+ 1f3cb-1f3fb-200d-2640-fe0f: woman_lifting_weights_tone1;
+ 1f3cb-1f3fc-200d-2640-fe0f: woman_lifting_weights_tone2;
+ 1f3cb-1f3fd-200d-2640-fe0f: woman_lifting_weights_tone3;
+ 1f3cb-1f3fe-200d-2640-fe0f: woman_lifting_weights_tone4;
+ 1f3cb-1f3ff-200d-2640-fe0f: woman_lifting_weights_tone5;
+ 1f3cb-fe0f-200d-2642-fe0f: man_lifting_weights;
+ 1f3cb-1f3fb-200d-2642-fe0f: man_lifting_weights_tone1;
+ 1f3cb-1f3fc-200d-2642-fe0f: man_lifting_weights_tone2;
+ 1f3cb-1f3fd-200d-2642-fe0f: man_lifting_weights_tone3;
+ 1f3cb-1f3fe-200d-2642-fe0f: man_lifting_weights_tone4;
+ 1f3cb-1f3ff-200d-2642-fe0f: man_lifting_weights_tone5;
+ 1f93c: people_wrestling;
+ 1f93c-200d-2640-fe0f: women_wrestling;
+ 1f93c-200d-2642-fe0f: men_wrestling;
+ 1f938: person_doing_cartwheel;
+ 1f938-1f3fb: person_doing_cartwheel_tone1;
+ 1f938-1f3fc: person_doing_cartwheel_tone2;
+ 1f938-1f3fd: person_doing_cartwheel_tone3;
+ 1f938-1f3fe: person_doing_cartwheel_tone4;
+ 1f938-1f3ff: person_doing_cartwheel_tone5;
+ 1f938-200d-2640-fe0f: woman_cartwheeling;
+ 1f938-1f3fb-200d-2640-fe0f: woman_cartwheeling_tone1;
+ 1f938-1f3fc-200d-2640-fe0f: woman_cartwheeling_tone2;
+ 1f938-1f3fd-200d-2640-fe0f: woman_cartwheeling_tone3;
+ 1f938-1f3fe-200d-2640-fe0f: woman_cartwheeling_tone4;
+ 1f938-1f3ff-200d-2640-fe0f: woman_cartwheeling_tone5;
+ 1f938-200d-2642-fe0f: man_cartwheeling;
+ 1f938-1f3fb-200d-2642-fe0f: man_cartwheeling_tone1;
+ 1f938-1f3fc-200d-2642-fe0f: man_cartwheeling_tone2;
+ 1f938-1f3fd-200d-2642-fe0f: man_cartwheeling_tone3;
+ 1f938-1f3fe-200d-2642-fe0f: man_cartwheeling_tone4;
+ 1f938-1f3ff-200d-2642-fe0f: man_cartwheeling_tone5;
+ 26f9: person_bouncing_ball;
+ 26f9-1f3fb: person_bouncing_ball_tone1;
+ 26f9-1f3fc: person_bouncing_ball_tone2;
+ 26f9-1f3fd: person_bouncing_ball_tone3;
+ 26f9-1f3fe: person_bouncing_ball_tone4;
+ 26f9-1f3ff: person_bouncing_ball_tone5;
+ 26f9-fe0f-200d-2640-fe0f: woman_bouncing_ball;
+ 26f9-1f3fb-200d-2640-fe0f: woman_bouncing_ball_tone1;
+ 26f9-1f3fc-200d-2640-fe0f: woman_bouncing_ball_tone2;
+ 26f9-1f3fd-200d-2640-fe0f: woman_bouncing_ball_tone3;
+ 26f9-1f3fe-200d-2640-fe0f: woman_bouncing_ball_tone4;
+ 26f9-1f3ff-200d-2640-fe0f: woman_bouncing_ball_tone5;
+ 26f9-fe0f-200d-2642-fe0f: man_bouncing_ball;
+ 26f9-1f3fb-200d-2642-fe0f: man_bouncing_ball_tone1;
+ 26f9-1f3fc-200d-2642-fe0f: man_bouncing_ball_tone2;
+ 26f9-1f3fd-200d-2642-fe0f: man_bouncing_ball_tone3;
+ 26f9-1f3fe-200d-2642-fe0f: man_bouncing_ball_tone4;
+ 26f9-1f3ff-200d-2642-fe0f: man_bouncing_ball_tone5;
+ 1f93a: person_fencing;
+ 1f93e: person_playing_handball;
+ 1f93e-1f3fb: person_playing_handball_tone1;
+ 1f93e-1f3fc: person_playing_handball_tone2;
+ 1f93e-1f3fd: person_playing_handball_tone3;
+ 1f93e-1f3fe: person_playing_handball_tone4;
+ 1f93e-1f3ff: person_playing_handball_tone5;
+ 1f93e-200d-2640-fe0f: woman_playing_handball;
+ 1f93e-1f3fb-200d-2640-fe0f: woman_playing_handball_tone1;
+ 1f93e-1f3fc-200d-2640-fe0f: woman_playing_handball_tone2;
+ 1f93e-1f3fd-200d-2640-fe0f: woman_playing_handball_tone3;
+ 1f93e-1f3fe-200d-2640-fe0f: woman_playing_handball_tone4;
+ 1f93e-1f3ff-200d-2640-fe0f: woman_playing_handball_tone5;
+ 1f93e-200d-2642-fe0f: man_playing_handball;
+ 1f93e-1f3fb-200d-2642-fe0f: man_playing_handball_tone1;
+ 1f93e-1f3fc-200d-2642-fe0f: man_playing_handball_tone2;
+ 1f93e-1f3fd-200d-2642-fe0f: man_playing_handball_tone3;
+ 1f93e-1f3fe-200d-2642-fe0f: man_playing_handball_tone4;
+ 1f93e-1f3ff-200d-2642-fe0f: man_playing_handball_tone5;
+ 1f3cc: person_golfing;
+ 1f3cc-1f3fb: person_golfing_tone1;
+ 1f3cc-1f3fc: person_golfing_tone2;
+ 1f3cc-1f3fd: person_golfing_tone3;
+ 1f3cc-1f3fe: person_golfing_tone4;
+ 1f3cc-1f3ff: person_golfing_tone5;
+ 1f3cc-fe0f-200d-2640-fe0f: woman_golfing;
+ 1f3cc-1f3fb-200d-2640-fe0f: woman_golfing_tone1;
+ 1f3cc-1f3fc-200d-2640-fe0f: woman_golfing_tone2;
+ 1f3cc-1f3fd-200d-2640-fe0f: woman_golfing_tone3;
+ 1f3cc-1f3fe-200d-2640-fe0f: woman_golfing_tone4;
+ 1f3cc-1f3ff-200d-2640-fe0f: woman_golfing_tone5;
+ 1f3cc-fe0f-200d-2642-fe0f: man_golfing;
+ 1f3cc-1f3fb-200d-2642-fe0f: man_golfing_tone1;
+ 1f3cc-1f3fc-200d-2642-fe0f: man_golfing_tone2;
+ 1f3cc-1f3fd-200d-2642-fe0f: man_golfing_tone3;
+ 1f3cc-1f3fe-200d-2642-fe0f: man_golfing_tone4;
+ 1f3cc-1f3ff-200d-2642-fe0f: man_golfing_tone5;
+ 1f3c7: horse_racing;
+ 1f3c7-1f3fb: horse_racing_tone1;
+ 1f3c7-1f3fc: horse_racing_tone2;
+ 1f3c7-1f3fd: horse_racing_tone3;
+ 1f3c7-1f3fe: horse_racing_tone4;
+ 1f3c7-1f3ff: horse_racing_tone5;
+ 1f9d8: person_in_lotus_position;
+ 1f9d8-1f3fb: person_in_lotus_position_tone1;
+ 1f9d8-1f3fc: person_in_lotus_position_tone2;
+ 1f9d8-1f3fd: person_in_lotus_position_tone3;
+ 1f9d8-1f3fe: person_in_lotus_position_tone4;
+ 1f9d8-1f3ff: person_in_lotus_position_tone5;
+ 1f9d8-200d-2640-fe0f: woman_in_lotus_position;
+ 1f9d8-1f3fb-200d-2640-fe0f: woman_in_lotus_position_tone1;
+ 1f9d8-1f3fc-200d-2640-fe0f: woman_in_lotus_position_tone2;
+ 1f9d8-1f3fd-200d-2640-fe0f: woman_in_lotus_position_tone3;
+ 1f9d8-1f3fe-200d-2640-fe0f: woman_in_lotus_position_tone4;
+ 1f9d8-1f3ff-200d-2640-fe0f: woman_in_lotus_position_tone5;
+ 1f9d8-200d-2642-fe0f: man_in_lotus_position;
+ 1f9d8-1f3fb-200d-2642-fe0f: man_in_lotus_position_tone1;
+ 1f9d8-1f3fc-200d-2642-fe0f: man_in_lotus_position_tone2;
+ 1f9d8-1f3fd-200d-2642-fe0f: man_in_lotus_position_tone3;
+ 1f9d8-1f3fe-200d-2642-fe0f: man_in_lotus_position_tone4;
+ 1f9d8-1f3ff-200d-2642-fe0f: man_in_lotus_position_tone5;
+ 1f3c4: person_surfing;
+ 1f3c4-1f3fb: person_surfing_tone1;
+ 1f3c4-1f3fc: person_surfing_tone2;
+ 1f3c4-1f3fd: person_surfing_tone3;
+ 1f3c4-1f3fe: person_surfing_tone4;
+ 1f3c4-1f3ff: person_surfing_tone5;
+ 1f3c4-200d-2640-fe0f: woman_surfing;
+ 1f3c4-1f3fb-200d-2640-fe0f: woman_surfing_tone1;
+ 1f3c4-1f3fc-200d-2640-fe0f: woman_surfing_tone2;
+ 1f3c4-1f3fd-200d-2640-fe0f: woman_surfing_tone3;
+ 1f3c4-1f3fe-200d-2640-fe0f: woman_surfing_tone4;
+ 1f3c4-1f3ff-200d-2640-fe0f: woman_surfing_tone5;
+ 1f3c4-200d-2642-fe0f: man_surfing;
+ 1f3c4-1f3fb-200d-2642-fe0f: man_surfing_tone1;
+ 1f3c4-1f3fc-200d-2642-fe0f: man_surfing_tone2;
+ 1f3c4-1f3fd-200d-2642-fe0f: man_surfing_tone3;
+ 1f3c4-1f3fe-200d-2642-fe0f: man_surfing_tone4;
+ 1f3c4-1f3ff-200d-2642-fe0f: man_surfing_tone5;
+ 1f3ca: person_swimming;
+ 1f3ca-1f3fb: person_swimming_tone1;
+ 1f3ca-1f3fc: person_swimming_tone2;
+ 1f3ca-1f3fd: person_swimming_tone3;
+ 1f3ca-1f3fe: person_swimming_tone4;
+ 1f3ca-1f3ff: person_swimming_tone5;
+ 1f3ca-200d-2640-fe0f: woman_swimming;
+ 1f3ca-1f3fb-200d-2640-fe0f: woman_swimming_tone1;
+ 1f3ca-1f3fc-200d-2640-fe0f: woman_swimming_tone2;
+ 1f3ca-1f3fd-200d-2640-fe0f: woman_swimming_tone3;
+ 1f3ca-1f3fe-200d-2640-fe0f: woman_swimming_tone4;
+ 1f3ca-1f3ff-200d-2640-fe0f: woman_swimming_tone5;
+ 1f3ca-200d-2642-fe0f: man_swimming;
+ 1f3ca-1f3fb-200d-2642-fe0f: man_swimming_tone1;
+ 1f3ca-1f3fc-200d-2642-fe0f: man_swimming_tone2;
+ 1f3ca-1f3fd-200d-2642-fe0f: man_swimming_tone3;
+ 1f3ca-1f3fe-200d-2642-fe0f: man_swimming_tone4;
+ 1f3ca-1f3ff-200d-2642-fe0f: man_swimming_tone5;
+ 1f93d: person_playing_water_polo;
+ 1f93d-1f3fb: person_playing_water_polo_tone1;
+ 1f93d-1f3fc: person_playing_water_polo_tone2;
+ 1f93d-1f3fd: person_playing_water_polo_tone3;
+ 1f93d-1f3fe: person_playing_water_polo_tone4;
+ 1f93d-1f3ff: person_playing_water_polo_tone5;
+ 1f93d-200d-2640-fe0f: woman_playing_water_polo;
+ 1f93d-1f3fb-200d-2640-fe0f: woman_playing_water_polo_tone1;
+ 1f93d-1f3fc-200d-2640-fe0f: woman_playing_water_polo_tone2;
+ 1f93d-1f3fd-200d-2640-fe0f: woman_playing_water_polo_tone3;
+ 1f93d-1f3fe-200d-2640-fe0f: woman_playing_water_polo_tone4;
+ 1f93d-1f3ff-200d-2640-fe0f: woman_playing_water_polo_tone5;
+ 1f93d-200d-2642-fe0f: man_playing_water_polo;
+ 1f93d-1f3fb-200d-2642-fe0f: man_playing_water_polo_tone1;
+ 1f93d-1f3fc-200d-2642-fe0f: man_playing_water_polo_tone2;
+ 1f93d-1f3fd-200d-2642-fe0f: man_playing_water_polo_tone3;
+ 1f93d-1f3fe-200d-2642-fe0f: man_playing_water_polo_tone4;
+ 1f93d-1f3ff-200d-2642-fe0f: man_playing_water_polo_tone5;
+ 1f6a3: person_rowing_boat;
+ 1f6a3-1f3fb: person_rowing_boat_tone1;
+ 1f6a3-1f3fc: person_rowing_boat_tone2;
+ 1f6a3-1f3fd: person_rowing_boat_tone3;
+ 1f6a3-1f3fe: person_rowing_boat_tone4;
+ 1f6a3-1f3ff: person_rowing_boat_tone5;
+ 1f6a3-200d-2640-fe0f: woman_rowing_boat;
+ 1f6a3-1f3fb-200d-2640-fe0f: woman_rowing_boat_tone1;
+ 1f6a3-1f3fc-200d-2640-fe0f: woman_rowing_boat_tone2;
+ 1f6a3-1f3fd-200d-2640-fe0f: woman_rowing_boat_tone3;
+ 1f6a3-1f3fe-200d-2640-fe0f: woman_rowing_boat_tone4;
+ 1f6a3-1f3ff-200d-2640-fe0f: woman_rowing_boat_tone5;
+ 1f6a3-200d-2642-fe0f: man_rowing_boat;
+ 1f6a3-1f3fb-200d-2642-fe0f: man_rowing_boat_tone1;
+ 1f6a3-1f3fc-200d-2642-fe0f: man_rowing_boat_tone2;
+ 1f6a3-1f3fd-200d-2642-fe0f: man_rowing_boat_tone3;
+ 1f6a3-1f3fe-200d-2642-fe0f: man_rowing_boat_tone4;
+ 1f6a3-1f3ff-200d-2642-fe0f: man_rowing_boat_tone5;
+ 1f9d7: person_climbing;
+ 1f9d7-1f3fb: person_climbing_tone1;
+ 1f9d7-1f3fc: person_climbing_tone2;
+ 1f9d7-1f3fd: person_climbing_tone3;
+ 1f9d7-1f3fe: person_climbing_tone4;
+ 1f9d7-1f3ff: person_climbing_tone5;
+ 1f9d7-200d-2640-fe0f: woman_climbing;
+ 1f9d7-1f3fb-200d-2640-fe0f: woman_climbing_tone1;
+ 1f9d7-1f3fc-200d-2640-fe0f: woman_climbing_tone2;
+ 1f9d7-1f3fd-200d-2640-fe0f: woman_climbing_tone3;
+ 1f9d7-1f3fe-200d-2640-fe0f: woman_climbing_tone4;
+ 1f9d7-1f3ff-200d-2640-fe0f: woman_climbing_tone5;
+ 1f9d7-200d-2642-fe0f: man_climbing;
+ 1f9d7-1f3fb-200d-2642-fe0f: man_climbing_tone1;
+ 1f9d7-1f3fc-200d-2642-fe0f: man_climbing_tone2;
+ 1f9d7-1f3fd-200d-2642-fe0f: man_climbing_tone3;
+ 1f9d7-1f3fe-200d-2642-fe0f: man_climbing_tone4;
+ 1f9d7-1f3ff-200d-2642-fe0f: man_climbing_tone5;
+ 1f6b5: person_mountain_biking;
+ 1f6b5-1f3fb: person_mountain_biking_tone1;
+ 1f6b5-1f3fc: person_mountain_biking_tone2;
+ 1f6b5-1f3fd: person_mountain_biking_tone3;
+ 1f6b5-1f3fe: person_mountain_biking_tone4;
+ 1f6b5-1f3ff: person_mountain_biking_tone5;
+ 1f6b5-200d-2640-fe0f: woman_mountain_biking;
+ 1f6b5-1f3fb-200d-2640-fe0f: woman_mountain_biking_tone1;
+ 1f6b5-1f3fc-200d-2640-fe0f: woman_mountain_biking_tone2;
+ 1f6b5-1f3fd-200d-2640-fe0f: woman_mountain_biking_tone3;
+ 1f6b5-1f3fe-200d-2640-fe0f: woman_mountain_biking_tone4;
+ 1f6b5-1f3ff-200d-2640-fe0f: woman_mountain_biking_tone5;
+ 1f6b5-200d-2642-fe0f: man_mountain_biking;
+ 1f6b5-1f3fb-200d-2642-fe0f: man_mountain_biking_tone1;
+ 1f6b5-1f3fc-200d-2642-fe0f: man_mountain_biking_tone2;
+ 1f6b5-1f3fd-200d-2642-fe0f: man_mountain_biking_tone3;
+ 1f6b5-1f3fe-200d-2642-fe0f: man_mountain_biking_tone4;
+ 1f6b5-1f3ff-200d-2642-fe0f: man_mountain_biking_tone5;
+ 1f6b4: person_biking;
+ 1f6b4-1f3fb: person_biking_tone1;
+ 1f6b4-1f3fc: person_biking_tone2;
+ 1f6b4-1f3fd: person_biking_tone3;
+ 1f6b4-1f3fe: person_biking_tone4;
+ 1f6b4-1f3ff: person_biking_tone5;
+ 1f6b4-200d-2640-fe0f: woman_biking;
+ 1f6b4-1f3fb-200d-2640-fe0f: woman_biking_tone1;
+ 1f6b4-1f3fc-200d-2640-fe0f: woman_biking_tone2;
+ 1f6b4-1f3fd-200d-2640-fe0f: woman_biking_tone3;
+ 1f6b4-1f3fe-200d-2640-fe0f: woman_biking_tone4;
+ 1f6b4-1f3ff-200d-2640-fe0f: woman_biking_tone5;
+ 1f6b4-200d-2642-fe0f: man_biking;
+ 1f6b4-1f3fb-200d-2642-fe0f: man_biking_tone1;
+ 1f6b4-1f3fc-200d-2642-fe0f: man_biking_tone2;
+ 1f6b4-1f3fd-200d-2642-fe0f: man_biking_tone3;
+ 1f6b4-1f3fe-200d-2642-fe0f: man_biking_tone4;
+ 1f6b4-1f3ff-200d-2642-fe0f: man_biking_tone5;
+ 1f3c6: trophy;
+ 1f947: first_place;
+ 1f948: second_place;
+ 1f949: third_place;
+ 1f3c5: medal;
+ 1f396: military_medal;
+ 1f3f5: rosette;
+ 1f397: reminder_ribbon;
+ 1f3ab: ticket;
+ 1f39f: tickets;
+ 1f3aa: circus_tent;
+ 1f939: person_juggling;
+ 1f939-1f3fb: person_juggling_tone1;
+ 1f939-1f3fc: person_juggling_tone2;
+ 1f939-1f3fd: person_juggling_tone3;
+ 1f939-1f3fe: person_juggling_tone4;
+ 1f939-1f3ff: person_juggling_tone5;
+ 1f939-200d-2640-fe0f: woman_juggling;
+ 1f939-1f3fb-200d-2640-fe0f: woman_juggling_tone1;
+ 1f939-1f3fc-200d-2640-fe0f: woman_juggling_tone2;
+ 1f939-1f3fd-200d-2640-fe0f: woman_juggling_tone3;
+ 1f939-1f3fe-200d-2640-fe0f: woman_juggling_tone4;
+ 1f939-1f3ff-200d-2640-fe0f: woman_juggling_tone5;
+ 1f939-200d-2642-fe0f: man_juggling;
+ 1f939-1f3fb-200d-2642-fe0f: man_juggling_tone1;
+ 1f939-1f3fc-200d-2642-fe0f: man_juggling_tone2;
+ 1f939-1f3fd-200d-2642-fe0f: man_juggling_tone3;
+ 1f939-1f3fe-200d-2642-fe0f: man_juggling_tone4;
+ 1f939-1f3ff-200d-2642-fe0f: man_juggling_tone5;
+ 1f3ad: performing_arts;
+ 1f3a8: art;
+ 1f3ac: clapper;
+ 1f3a4: microphone;
+ 1f3a7: headphones;
+ 1f3bc: musical_score;
+ 1f3b9: musical_keyboard;
+ 1f941: drum;
+ 1f3b7: saxophone;
+ 1f3ba: trumpet;
+ 1fa95: banjo;
+ 1f3b8: guitar;
+ 1f3bb: violin;
+ 1f3b2: game_die;
+ 265f: chess_pawn;
+ 1f3af: dart;
+ 1fa81: kite;
+ 1fa80: yo_yo;
+ 1f3b3: bowling;
+ 1f3ae: video_game;
+ 1f3b0: slot_machine;
+ 1f9e9: jigsaw;
+ 231a: watch;
+ 1f4f1: iphone;
+ 1f4f2: calling;
+ 1f4bb: computer;
+ 1f5a5: desktop;
+ 1f5a8: printer;
+ 1f5b1: mouse_three_button;
+ 1f5b2: trackball;
+ 1f579: joystick;
+ 1f5dc: compression;
+ 1f4bd: minidisc;
+ 1f4be: floppy_disk;
+ 1f4bf: cd;
+ 1f4c0: dvd;
+ 1f4fc: vhs;
+ 1f4f7: camera;
+ 1f4f8: camera_with_flash;
+ 1f4f9: video_camera;
+ 1f3a5: movie_camera;
+ 1f4fd: projector;
+ 1f39e: film_frames;
+ 1f4de: telephone_receiver;
+ 260e: telephone;
+ 1f4df: pager;
+ 1f4e0: fax;
+ 1f4fa: tv;
+ 1f4fb: radio;
+ 1f399: microphone2;
+ 1f39a: level_slider;
+ 1f39b: control_knobs;
+ 1f9ed: compass;
+ 23f1: stopwatch;
+ 23f2: timer;
+ 23f0: alarm_clock;
+ 1f570: clock;
+ 231b: hourglass;
+ 23f3: hourglass_flowing_sand;
+ 1f4e1: satellite;
+ 1f50b: battery;
+ 1f50c: electric_plug;
+ 1f4a1: bulb;
+ 1f526: flashlight;
+ 1f56f: candle;
+ 1f9ef: fire_extinguisher;
+ 1f6e2: oil;
+ 1f4b8: money_with_wings;
+ 1f4b5: dollar;
+ 1f4b4: yen;
+ 1f4b6: euro;
+ 1f4b7: pound;
+ 1f4b0: moneybag;
+ 1f4b3: credit_card;
+ 1f48e: gem;
+ 1f9f0: toolbox;
+ 1f527: wrench;
+ 1f528: hammer;
+ 1f6e0: tools;
+ 26cf: pick;
+ 1f529: nut_and_bolt;
+ 1f9f1: bricks;
+ 26d3: chains;
+ 1f9f2: magnet;
+ 1f52b: gun;
+ 1f4a3: bomb;
+ 1f9e8: firecracker;
+ 1fa93: axe;
+ 1fa92: razor;
+ 1f52a: knife;
+ 1f5e1: dagger;
+ 1f6e1: shield;
+ 1f6ac: smoking;
+ 26b0: coffin;
+ 26b1: urn;
+ 1f3fa: amphora;
+ 1fa94: diya_lamp;
+ 1f52e: crystal_ball;
+ 1f4ff: prayer_beads;
+ 1f9ff: nazar_amulet;
+ 1f488: barber;
+ 1f52d: telescope;
+ 1f52c: microscope;
+ 1f573: hole;
+ 1f9af: probing_cane;
+ 1fa7a: stethoscope;
+ 1fa79: adhesive_bandage;
+ 1f48a: pill;
+ 1f489: syringe;
+ 1fa78: drop_of_blood;
+ 1f9ec: dna;
+ 1f9a0: microbe;
+ 1f9eb: petri_dish;
+ 1f9ea: test_tube;
+ 1f321: thermometer;
+ 1fa91: chair;
+ 1f9f9: broom;
+ 1f9fa: basket;
+ 1f9fb: roll_of_paper;
+ 1f6bd: toilet;
+ 1f6b0: potable_water;
+ 1f6bf: shower;
+ 1f6c1: bathtub;
+ 1f6c0: bath;
+ 1f6c0-1f3fb: bath_tone1;
+ 1f6c0-1f3fc: bath_tone2;
+ 1f6c0-1f3fd: bath_tone3;
+ 1f6c0-1f3fe: bath_tone4;
+ 1f6c0-1f3ff: bath_tone5;
+ 1f9fc: soap;
+ 1f9fd: sponge;
+ 1f9f4: squeeze_bottle;
+ 1f6ce: bellhop;
+ 1f511: key;
+ 1f5dd: key2;
+ 1f6aa: door;
+ 1f6cb: couch;
+ 1f6cf: bed;
+ 1f6cc: sleeping_accommodation;
+ 1f6cc-1f3fb: person_in_bed_tone1;
+ 1f6cc-1f3fc: person_in_bed_tone2;
+ 1f6cc-1f3fd: person_in_bed_tone3;
+ 1f6cc-1f3fe: person_in_bed_tone4;
+ 1f6cc-1f3ff: person_in_bed_tone5;
+ 1f9f8: teddy_bear;
+ 1f5bc: frame_photo;
+ 1f6cd: shopping_bags;
+ 1f6d2: shopping_cart;
+ 1f381: gift;
+ 1f388: balloon;
+ 1f38f: flags;
+ 1f380: ribbon;
+ 1f38a: confetti_ball;
+ 1f389: tada;
+ 1f38e: dolls;
+ 1f3ee: izakaya_lantern;
+ 1f390: wind_chime;
+ 1f9e7: red_envelope;
+ 1f4e9: envelope_with_arrow;
+ 1f4e8: incoming_envelope;
+ 1f4e7: e-mail;
+ 1f48c: love_letter;
+ 1f4e5: inbox_tray;
+ 1f4e4: outbox_tray;
+ 1f4e6: package;
+ 1f3f7: label;
+ 1f4ea: mailbox_closed;
+ 1f4eb: mailbox;
+ 1f4ec: mailbox_with_mail;
+ 1f4ed: mailbox_with_no_mail;
+ 1f4ee: postbox;
+ 1f4ef: postal_horn;
+ 1f4dc: scroll;
+ 1f4c3: page_with_curl;
+ 1f4c4: page_facing_up;
+ 1f4d1: bookmark_tabs;
+ 1f9fe: receipt;
+ 1f4ca: bar_chart;
+ 1f4c8: chart_with_upwards_trend;
+ 1f4c9: chart_with_downwards_trend;
+ 1f5d2: notepad_spiral;
+ 1f5d3: calendar_spiral;
+ 1f4c6: calendar;
+ 1f4c5: date;
+ 1f5d1: wastebasket;
+ 1f4c7: card_index;
+ 1f5c3: card_box;
+ 1f5f3: ballot_box;
+ 1f5c4: file_cabinet;
+ 1f4cb: clipboard;
+ 1f4c1: file_folder;
+ 1f4c2: open_file_folder;
+ 1f5c2: dividers;
+ 1f5de: newspaper2;
+ 1f4f0: newspaper;
+ 1f4d3: notebook;
+ 1f4d4: notebook_with_decorative_cover;
+ 1f4d2: ledger;
+ 1f4d5: closed_book;
+ 1f4d7: green_book;
+ 1f4d8: blue_book;
+ 1f4d9: orange_book;
+ 1f4da: books;
+ 1f4d6: book;
+ 1f516: bookmark;
+ 1f9f7: safety_pin;
+ 1f517: link;
+ 1f4ce: paperclip;
+ 1f587: paperclips;
+ 1f4d0: triangular_ruler;
+ 1f4cf: straight_ruler;
+ 1f9ee: abacus;
+ 1f4cc: pushpin;
+ 1f4cd: round_pushpin;
+ 1f58a: pen_ballpoint;
+ 1f58b: pen_fountain;
+ 1f58c: paintbrush;
+ 1f58d: crayon;
+ 1f4dd: pencil;
+ 270f: pencil2;
+ 1f50d: mag;
+ 1f50e: mag_right;
+ 1f50f: lock_with_ink_pen;
+ 1f510: closed_lock_with_key;
+ 1f512: lock;
+ 1f513: unlock;
+ 1f436: dog;
+ 1f431: cat;
+ 1f42d: mouse;
+ 1f439: hamster;
+ 1f430: rabbit;
+ 1f98a: fox;
+ 1f43b: bear;
+ 1f43c: panda_face;
+ 1f428: koala;
+ 1f42f: tiger;
+ 1f981: lion_face;
+ 1f42e: cow;
+ 1f437: pig;
+ 1f43d: pig_nose;
+ 1f438: frog;
+ 1f435: monkey_face;
+ 1f648: see_no_evil;
+ 1f649: hear_no_evil;
+ 1f64a: speak_no_evil;
+ 1f412: monkey;
+ 1f414: chicken;
+ 1f427: penguin;
+ 1f426: bird;
+ 1f424: baby_chick;
+ 1f423: hatching_chick;
+ 1f425: hatched_chick;
+ 1f986: duck;
+ 1f985: eagle;
+ 1f989: owl;
+ 1f987: bat;
+ 1f43a: wolf;
+ 1f417: boar;
+ 1f434: horse;
+ 1f984: unicorn;
+ 1f41d: bee;
+ 1f41b: bug;
+ 1f98b: butterfly;
+ 1f40c: snail;
+ 1f41a: shell;
+ 1f41e: beetle;
+ 1f41c: ant;
+ 1f99f: mosquito;
+ 1f997: cricket;
+ 1f577: spider;
+ 1f578: spider_web;
+ 1f982: scorpion;
+ 1f422: turtle;
+ 1f40d: snake;
+ 1f98e: lizard;
+ 1f996: t_rex;
+ 1f995: sauropod;
+ 1f419: octopus;
+ 1f991: squid;
+ 1f990: shrimp;
+ 1f99e: lobster;
+ 1f9aa: oyster;
+ 1f980: crab;
+ 1f421: blowfish;
+ 1f420: tropical_fish;
+ 1f41f: fish;
+ 1f42c: dolphin;
+ 1f433: whale;
+ 1f40b: whale2;
+ 1f988: shark;
+ 1f40a: crocodile;
+ 1f405: tiger2;
+ 1f406: leopard;
+ 1f993: zebra;
+ 1f98d: gorilla;
+ 1f9a7: orangutan;
+ 1f418: elephant;
+ 1f99b: hippopotamus;
+ 1f98f: rhino;
+ 1f42a: dromedary_camel;
+ 1f42b: camel;
+ 1f992: giraffe;
+ 1f998: kangaroo;
+ 1f403: water_buffalo;
+ 1f402: ox;
+ 1f404: cow2;
+ 1f40e: racehorse;
+ 1f416: pig2;
+ 1f40f: ram;
+ 1f999: llama;
+ 1f411: sheep;
+ 1f410: goat;
+ 1f98c: deer;
+ 1f415: dog2;
+ 1f9ae: guide_dog;
+ 1f415-200d-1f9ba: service_dog;
+ 1f429: poodle;
+ 1f408: cat2;
+ 1f413: rooster;
+ 1f983: turkey;
+ 1f99a: peacock;
+ 1f99c: parrot;
+ 1f9a2: swan;
+ 1f9a9: flamingo;
+ 1f54a: dove;
+ 1f407: rabbit2;
+ 1f9a5: sloth;
+ 1f9a6: otter;
+ 1f9a8: skunk;
+ 1f99d: raccoon;
+ 1f9a1: badger;
+ 1f401: mouse2;
+ 1f400: rat;
+ 1f43f: chipmunk;
+ 1f994: hedgehog;
+ 1f43e: feet;
+ 1f409: dragon;
+ 1f432: dragon_face;
+ 1f335: cactus;
+ 1f384: christmas_tree;
+ 1f332: evergreen_tree;
+ 1f333: deciduous_tree;
+ 1f334: palm_tree;
+ 1f331: seedling;
+ 1f33f: herb;
+ 1f340: four_leaf_clover;
+ 1f38d: bamboo;
+ 1f38b: tanabata_tree;
+ 1f343: leaves;
+ 1f342: fallen_leaf;
+ 1f341: maple_leaf;
+ 1f344: mushroom;
+ 1f33e: ear_of_rice;
+ 1f490: bouquet;
+ 1f337: tulip;
+ 1f339: rose;
+ 1f940: wilted_rose;
+ 1f33a: hibiscus;
+ 1f338: cherry_blossom;
+ 1f33c: blossom;
+ 1f33b: sunflower;
+ 1f31e: sun_with_face;
+ 1f31d: full_moon_with_face;
+ 1f31b: first_quarter_moon_with_face;
+ 1f31c: last_quarter_moon_with_face;
+ 1f31a: new_moon_with_face;
+ 1f315: full_moon;
+ 1f316: waning_gibbous_moon;
+ 1f317: last_quarter_moon;
+ 1f318: waning_crescent_moon;
+ 1f311: new_moon;
+ 1f312: waxing_crescent_moon;
+ 1f313: first_quarter_moon;
+ 1f314: waxing_gibbous_moon;
+ 1f319: crescent_moon;
+ 1f30e: earth_americas;
+ 1f30d: earth_africa;
+ 1f30f: earth_asia;
+ 1fa90: ringed_planet;
+ 1f4ab: dizzy;
+ 2b50: star;
+ 1f31f: star2;
+ 26a1: zap;
+ 1f4a5: boom;
+ 1f525: fire;
+ 1f32a: cloud_tornado;
+ 1f308: rainbow;
+ 1f324: white_sun_small_cloud;
+ 26c5: partly_sunny;
+ 1f325: white_sun_cloud;
+ 1f326: white_sun_rain_cloud;
+ 1f327: cloud_rain;
+ 26c8: thunder_cloud_rain;
+ 1f329: cloud_lightning;
+ 1f328: cloud_snow;
+ 26c4: snowman;
+ 1f32c: wind_blowing_face;
+ 1f4a8: dash;
+ 1f4a7: droplet;
+ 1f4a6: sweat_drops;
+ 1f30a: ocean;
+ 1f32b: fog;
+ 1f34f: green_apple;
+ 1f34e: apple;
+ 1f350: pear;
+ 1f34a: tangerine;
+ 1f34b: lemon;
+ 1f34c: banana;
+ 1f349: watermelon;
+ 1f347: grapes;
+ 1f353: strawberry;
+ 1f348: melon;
+ 1f352: cherries;
+ 1f351: peach;
+ 1f96d: mango;
+ 1f34d: pineapple;
+ 1f965: coconut;
+ 1f95d: kiwi;
+ 1f345: tomato;
+ 1f346: eggplant;
+ 1f951: avocado;
+ 1f966: broccoli;
+ 1f96c: leafy_green;
+ 1f952: cucumber;
+ 1f336: hot_pepper;
+ 1f33d: corn;
+ 1f955: carrot;
+ 1f9c5: onion;
+ 1f9c4: garlic;
+ 1f954: potato;
+ 1f360: sweet_potato;
+ 1f950: croissant;
+ 1f96f: bagel;
+ 1f35e: bread;
+ 1f956: french_bread;
+ 1f968: pretzel;
+ 1f9c0: cheese;
+ 1f95a: egg;
+ 1f373: cooking;
+ 1f95e: pancakes;
+ 1f9c7: waffle;
+ 1f953: bacon;
+ 1f969: cut_of_meat;
+ 1f357: poultry_leg;
+ 1f356: meat_on_bone;
+ 1f32d: hotdog;
+ 1f354: hamburger;
+ 1f35f: fries;
+ 1f355: pizza;
+ 1f96a: sandwich;
+ 1f9c6: falafel;
+ 1f959: stuffed_flatbread;
+ 1f32e: taco;
+ 1f32f: burrito;
+ 1f957: salad;
+ 1f958: shallow_pan_of_food;
+ 1f96b: canned_food;
+ 1f35d: spaghetti;
+ 1f35c: ramen;
+ 1f372: stew;
+ 1f35b: curry;
+ 1f363: sushi;
+ 1f371: bento;
+ 1f95f: dumpling;
+ 1f364: fried_shrimp;
+ 1f359: rice_ball;
+ 1f35a: rice;
+ 1f358: rice_cracker;
+ 1f365: fish_cake;
+ 1f960: fortune_cookie;
+ 1f96e: moon_cake;
+ 1f362: oden;
+ 1f361: dango;
+ 1f367: shaved_ice;
+ 1f368: ice_cream;
+ 1f366: icecream;
+ 1f967: pie;
+ 1f9c1: cupcake;
+ 1f370: cake;
+ 1f382: birthday;
+ 1f36e: custard;
+ 1f36d: lollipop;
+ 1f36c: candy;
+ 1f36b: chocolate_bar;
+ 1f37f: popcorn;
+ 1f369: doughnut;
+ 1f36a: cookie;
+ 1f330: chestnut;
+ 1f95c: peanuts;
+ 1f36f: honey_pot;
+ 1f9c8: butter;
+ 1f95b: milk;
+ 1f37c: baby_bottle;
+ 1f375: tea;
+ 1f9c9: mate;
+ 1f964: cup_with_straw;
+ 1f9c3: beverage_box;
+ 1f9ca: ice_cube;
+ 1f376: sake;
+ 1f37a: beer;
+ 1f37b: beers;
+ 1f942: champagne_glass;
+ 1f377: wine_glass;
+ 1f943: tumbler_glass;
+ 1f378: cocktail;
+ 1f379: tropical_drink;
+ 1f37e: champagne;
+ 1f944: spoon;
+ 1f374: fork_and_knife;
+ 1f37d: fork_knife_plate;
+ 1f963: bowl_with_spoon;
+ 1f961: takeout_box;
+ 1f962: chopsticks;
+ 1f9c2: salt;
+ 1f60a: blush;
+ 1f607: innocent;
+ 1f642: slight_smile;
+ 1f643: upside_down;
+ 1f609: wink;
+ 1f600: grinning;
+ 1f603: smiley;
+ 1f604: smile;
+ 1f601: grin;
+ 1f606: laughing;
+ 1f605: sweat_smile;
+ 1f602: joy;
+ 1f923: rofl;
+ 263a: relaxed;
+ 1f60c: relieved;
+ 1f60d: heart_eyes;
+ 1f970: smiling_face_with_3_hearts;
+ 1f618: kissing_heart;
+ 1f617: kissing;
+ 1f619: kissing_smiling_eyes;
+ 1f61a: kissing_closed_eyes;
+ 1f60b: yum;
+ 1f61b: stuck_out_tongue;
+ 1f61d: stuck_out_tongue_closed_eyes;
+ 1f61c: stuck_out_tongue_winking_eye;
+ 1f92a: zany_face;
+ 1f928: face_with_raised_eyebrow;
+ 1f9d0: face_with_monocle;
+ 1f913: nerd;
+ 1f60e: sunglasses;
+ 1f929: star_struck;
+ 1f973: partying_face;
+ 1f60f: smirk;
+ 1f612: unamused;
+ 1f61e: disappointed;
+ 1f614: pensive;
+ 1f61f: worried;
+ 1f615: confused;
+ 1f641: slight_frown;
+ 1f623: persevere;
+ 1f616: confounded;
+ 1f62b: tired_face;
+ 1f629: weary;
+ 1f971: yawning_face;
+ 1f97a: pleading_face;
+ 1f622: cry;
+ 1f62d: sob;
+ 1f624: triumph;
+ 1f620: angry;
+ 1f621: rage;
+ 1f92c: face_with_symbols_over_mouth;
+ 1f92f: exploding_head;
+ 1f633: flushed;
+ 1f975: hot_face;
+ 1f976: cold_face;
+ 1f631: scream;
+ 1f628: fearful;
+ 1f630: cold_sweat;
+ 1f625: disappointed_relieved;
+ 1f613: sweat;
+ 1f917: hugging;
+ 1f914: thinking;
+ 1f92d: face_with_hand_over_mouth;
+ 1f92b: shushing_face;
+ 1f925: lying_face;
+ 1f636: no_mouth;
+ 1f610: neutral_face;
+ 1f611: expressionless;
+ 1f62c: grimacing;
+ 1f644: rolling_eyes;
+ 1f62f: hushed;
+ 1f626: frowning;
+ 1f627: anguished;
+ 1f62e: open_mouth;
+ 1f632: astonished;
+ 1f634: sleeping;
+ 1f924: drooling_face;
+ 1f62a: sleepy;
+ 1f635: dizzy_face;
+ 1f910: zipper_mouth;
+ 1f974: woozy_face;
+ 1f922: nauseated_face;
+ 1f92e: face_vomiting;
+ 1f927: sneezing_face;
+ 1f637: mask;
+ 1f912: thermometer_face;
+ 1f915: head_bandage;
+ 1f911: money_mouth;
+ 1f920: cowboy;
+ 1f608: smiling_imp;
+ 1f47f: imp;
+ 1f479: japanese_ogre;
+ 1f47a: japanese_goblin;
+ 1f921: clown;
+ 1f4a9: poop;
+ 1f47b: ghost;
+ 1f480: skull;
+ 1f47d: alien;
+ 1f47e: space_invader;
+ 1f916: robot;
+ 1f383: jack_o_lantern;
+ 1f63a: smiley_cat;
+ 1f638: smile_cat;
+ 1f639: joy_cat;
+ 1f63b: heart_eyes_cat;
+ 1f63c: smirk_cat;
+ 1f63d: kissing_cat;
+ 1f640: scream_cat;
+ 1f63f: crying_cat_face;
+ 1f63e: pouting_cat;
+ 1f91d: handshake;
+ 1f932: palms_up_together;
+ 1f932-1f3fb: palms_up_together_tone1;
+ 1f932-1f3fc: palms_up_together_tone2;
+ 1f932-1f3fd: palms_up_together_tone3;
+ 1f932-1f3fe: palms_up_together_tone4;
+ 1f932-1f3ff: palms_up_together_tone5;
+ 1f450: open_hands;
+ 1f450-1f3fb: open_hands_tone1;
+ 1f450-1f3fc: open_hands_tone2;
+ 1f450-1f3fd: open_hands_tone3;
+ 1f450-1f3fe: open_hands_tone4;
+ 1f450-1f3ff: open_hands_tone5;
+ 1f64c: raised_hands;
+ 1f64c-1f3fb: raised_hands_tone1;
+ 1f64c-1f3fc: raised_hands_tone2;
+ 1f64c-1f3fd: raised_hands_tone3;
+ 1f64c-1f3fe: raised_hands_tone4;
+ 1f64c-1f3ff: raised_hands_tone5;
+ 1f44f: clap;
+ 1f44f-1f3fb: clap_tone1;
+ 1f44f-1f3fc: clap_tone2;
+ 1f44f-1f3fd: clap_tone3;
+ 1f44f-1f3fe: clap_tone4;
+ 1f44f-1f3ff: clap_tone5;
+ 1f44d: thumbsup;
+ 1f44d-1f3fb: thumbsup_tone1;
+ 1f44d-1f3fc: thumbsup_tone2;
+ 1f44d-1f3fd: thumbsup_tone3;
+ 1f44d-1f3fe: thumbsup_tone4;
+ 1f44d-1f3ff: thumbsup_tone5;
+ 1f44e: thumbsdown;
+ 1f44e-1f3fb: thumbsdown_tone1;
+ 1f44e-1f3fc: thumbsdown_tone2;
+ 1f44e-1f3fd: thumbsdown_tone3;
+ 1f44e-1f3fe: thumbsdown_tone4;
+ 1f44e-1f3ff: thumbsdown_tone5;
+ 1f44a: punch;
+ 1f44a-1f3fb: punch_tone1;
+ 1f44a-1f3fc: punch_tone2;
+ 1f44a-1f3fd: punch_tone3;
+ 1f44a-1f3fe: punch_tone4;
+ 1f44a-1f3ff: punch_tone5;
+ 270a: fist;
+ 270a-1f3fb: fist_tone1;
+ 270a-1f3fc: fist_tone2;
+ 270a-1f3fd: fist_tone3;
+ 270a-1f3fe: fist_tone4;
+ 270a-1f3ff: fist_tone5;
+ 1f91b: left_facing_fist;
+ 1f91b-1f3fb: left_facing_fist_tone1;
+ 1f91b-1f3fc: left_facing_fist_tone2;
+ 1f91b-1f3fd: left_facing_fist_tone3;
+ 1f91b-1f3fe: left_facing_fist_tone4;
+ 1f91b-1f3ff: left_facing_fist_tone5;
+ 1f91c: right_facing_fist;
+ 1f91c-1f3fb: right_facing_fist_tone1;
+ 1f91c-1f3fc: right_facing_fist_tone2;
+ 1f91c-1f3fd: right_facing_fist_tone3;
+ 1f91c-1f3fe: right_facing_fist_tone4;
+ 1f91c-1f3ff: right_facing_fist_tone5;
+ 1f91e: fingers_crossed;
+ 1f91e-1f3fb: fingers_crossed_tone1;
+ 1f91e-1f3fc: fingers_crossed_tone2;
+ 1f91e-1f3fd: fingers_crossed_tone3;
+ 1f91e-1f3fe: fingers_crossed_tone4;
+ 1f91e-1f3ff: fingers_crossed_tone5;
+ 270c: v;
+ 270c-1f3fb: v_tone1;
+ 270c-1f3fc: v_tone2;
+ 270c-1f3fd: v_tone3;
+ 270c-1f3fe: v_tone4;
+ 270c-1f3ff: v_tone5;
+ 1f91f: love_you_gesture;
+ 1f91f-1f3fb: love_you_gesture_tone1;
+ 1f91f-1f3fc: love_you_gesture_tone2;
+ 1f91f-1f3fd: love_you_gesture_tone3;
+ 1f91f-1f3fe: love_you_gesture_tone4;
+ 1f91f-1f3ff: love_you_gesture_tone5;
+ 1f918: metal;
+ 1f918-1f3fb: metal_tone1;
+ 1f918-1f3fc: metal_tone2;
+ 1f918-1f3fd: metal_tone3;
+ 1f918-1f3fe: metal_tone4;
+ 1f918-1f3ff: metal_tone5;
+ 1f44c: ok_hand;
+ 1f44c-1f3fb: ok_hand_tone1;
+ 1f44c-1f3fc: ok_hand_tone2;
+ 1f44c-1f3fd: ok_hand_tone3;
+ 1f44c-1f3fe: ok_hand_tone4;
+ 1f44c-1f3ff: ok_hand_tone5;
+ 1f90f: pinching_hand;
+ 1f90f-1f3fb: pinching_hand_tone1;
+ 1f90f-1f3fc: pinching_hand_tone2;
+ 1f90f-1f3fd: pinching_hand_tone3;
+ 1f90f-1f3fe: pinching_hand_tone4;
+ 1f90f-1f3ff: pinching_hand_tone5;
+ 1f448: point_left;
+ 1f448-1f3fb: point_left_tone1;
+ 1f448-1f3fc: point_left_tone2;
+ 1f448-1f3fd: point_left_tone3;
+ 1f448-1f3fe: point_left_tone4;
+ 1f448-1f3ff: point_left_tone5;
+ 1f449: point_right;
+ 1f449-1f3fb: point_right_tone1;
+ 1f449-1f3fc: point_right_tone2;
+ 1f449-1f3fd: point_right_tone3;
+ 1f449-1f3fe: point_right_tone4;
+ 1f449-1f3ff: point_right_tone5;
+ 1f446: point_up_2;
+ 1f446-1f3fb: point_up_2_tone1;
+ 1f446-1f3fc: point_up_2_tone2;
+ 1f446-1f3fd: point_up_2_tone3;
+ 1f446-1f3fe: point_up_2_tone4;
+ 1f446-1f3ff: point_up_2_tone5;
+ 1f447: point_down;
+ 1f447-1f3fb: point_down_tone1;
+ 1f447-1f3fc: point_down_tone2;
+ 1f447-1f3fd: point_down_tone3;
+ 1f447-1f3fe: point_down_tone4;
+ 1f447-1f3ff: point_down_tone5;
+ 261d: point_up;
+ 261d-1f3fb: point_up_tone1;
+ 261d-1f3fc: point_up_tone2;
+ 261d-1f3fd: point_up_tone3;
+ 261d-1f3fe: point_up_tone4;
+ 261d-1f3ff: point_up_tone5;
+ 270b: raised_hand;
+ 270b-1f3fb: raised_hand_tone1;
+ 270b-1f3fc: raised_hand_tone2;
+ 270b-1f3fd: raised_hand_tone3;
+ 270b-1f3fe: raised_hand_tone4;
+ 270b-1f3ff: raised_hand_tone5;
+ 1f91a: raised_back_of_hand;
+ 1f91a-1f3fb: raised_back_of_hand_tone1;
+ 1f91a-1f3fc: raised_back_of_hand_tone2;
+ 1f91a-1f3fd: raised_back_of_hand_tone3;
+ 1f91a-1f3fe: raised_back_of_hand_tone4;
+ 1f91a-1f3ff: raised_back_of_hand_tone5;
+ 1f590: hand_splayed;
+ 1f590-1f3fb: hand_splayed_tone1;
+ 1f590-1f3fc: hand_splayed_tone2;
+ 1f590-1f3fd: hand_splayed_tone3;
+ 1f590-1f3fe: hand_splayed_tone4;
+ 1f590-1f3ff: hand_splayed_tone5;
+ 1f596: vulcan;
+ 1f596-1f3fb: vulcan_tone1;
+ 1f596-1f3fc: vulcan_tone2;
+ 1f596-1f3fd: vulcan_tone3;
+ 1f596-1f3fe: vulcan_tone4;
+ 1f596-1f3ff: vulcan_tone5;
+ 1f44b: wave;
+ 1f44b-1f3fb: wave_tone1;
+ 1f44b-1f3fc: wave_tone2;
+ 1f44b-1f3fd: wave_tone3;
+ 1f44b-1f3fe: wave_tone4;
+ 1f44b-1f3ff: wave_tone5;
+ 1f919: call_me;
+ 1f919-1f3fb: call_me_tone1;
+ 1f919-1f3fc: call_me_tone2;
+ 1f919-1f3fd: call_me_tone3;
+ 1f919-1f3fe: call_me_tone4;
+ 1f919-1f3ff: call_me_tone5;
+ 1f4aa: muscle;
+ 1f4aa-1f3fb: muscle_tone1;
+ 1f4aa-1f3fc: muscle_tone2;
+ 1f4aa-1f3fd: muscle_tone3;
+ 1f4aa-1f3fe: muscle_tone4;
+ 1f4aa-1f3ff: muscle_tone5;
+ 1f9be: mechanical_arm;
+ 1f595: middle_finger;
+ 1f595-1f3fb: middle_finger_tone1;
+ 1f595-1f3fc: middle_finger_tone2;
+ 1f595-1f3fd: middle_finger_tone3;
+ 1f595-1f3fe: middle_finger_tone4;
+ 1f595-1f3ff: middle_finger_tone5;
+ 270d: writing_hand;
+ 270d-1f3fb: writing_hand_tone1;
+ 270d-1f3fc: writing_hand_tone2;
+ 270d-1f3fd: writing_hand_tone3;
+ 270d-1f3fe: writing_hand_tone4;
+ 270d-1f3ff: writing_hand_tone5;
+ 1f64f: pray;
+ 1f64f-1f3fb: pray_tone1;
+ 1f64f-1f3fc: pray_tone2;
+ 1f64f-1f3fd: pray_tone3;
+ 1f64f-1f3fe: pray_tone4;
+ 1f64f-1f3ff: pray_tone5;
+ 1f9b6: foot;
+ 1f9b6-1f3fb: foot_tone1;
+ 1f9b6-1f3fc: foot_tone2;
+ 1f9b6-1f3fd: foot_tone3;
+ 1f9b6-1f3fe: foot_tone4;
+ 1f9b6-1f3ff: foot_tone5;
+ 1f9b5: leg;
+ 1f9b5-1f3fb: leg_tone1;
+ 1f9b5-1f3fc: leg_tone2;
+ 1f9b5-1f3fd: leg_tone3;
+ 1f9b5-1f3fe: leg_tone4;
+ 1f9b5-1f3ff: leg_tone5;
+ 1f9bf: mechanical_leg;
+ 1f484: lipstick;
+ 1f48b: kiss;
+ 1f444: lips;
+ 1f445: tongue;
+ 1f9b7: tooth;
+ 1f9b4: bone;
+ 1f442: ear;
+ 1f442-1f3fb: ear_tone1;
+ 1f442-1f3fc: ear_tone2;
+ 1f442-1f3fd: ear_tone3;
+ 1f442-1f3fe: ear_tone4;
+ 1f442-1f3ff: ear_tone5;
+ 1f9bb: ear_with_hearing_aid;
+ 1f9bb-1f3fb: ear_with_hearing_aid_tone1;
+ 1f9bb-1f3fc: ear_with_hearing_aid_tone2;
+ 1f9bb-1f3fd: ear_with_hearing_aid_tone3;
+ 1f9bb-1f3fe: ear_with_hearing_aid_tone4;
+ 1f9bb-1f3ff: ear_with_hearing_aid_tone5;
+ 1f443: nose;
+ 1f443-1f3fb: nose_tone1;
+ 1f443-1f3fc: nose_tone2;
+ 1f443-1f3fd: nose_tone3;
+ 1f443-1f3fe: nose_tone4;
+ 1f443-1f3ff: nose_tone5;
+ 1f463: footprints;
+ 1f441: eye;
+ 1f440: eyes;
+ 1f9e0: brain;
+ 1f5e3: speaking_head;
+ 1f464: bust_in_silhouette;
+ 1f465: busts_in_silhouette;
+ 1f476: baby;
+ 1f476-1f3fb: baby_tone1;
+ 1f476-1f3fc: baby_tone2;
+ 1f476-1f3fd: baby_tone3;
+ 1f476-1f3fe: baby_tone4;
+ 1f476-1f3ff: baby_tone5;
+ 1f467: girl;
+ 1f467-1f3fb: girl_tone1;
+ 1f467-1f3fc: girl_tone2;
+ 1f467-1f3fd: girl_tone3;
+ 1f467-1f3fe: girl_tone4;
+ 1f467-1f3ff: girl_tone5;
+ 1f9d2: child;
+ 1f9d2-1f3fb: child_tone1;
+ 1f9d2-1f3fc: child_tone2;
+ 1f9d2-1f3fd: child_tone3;
+ 1f9d2-1f3fe: child_tone4;
+ 1f9d2-1f3ff: child_tone5;
+ 1f466: boy;
+ 1f466-1f3fb: boy_tone1;
+ 1f466-1f3fc: boy_tone2;
+ 1f466-1f3fd: boy_tone3;
+ 1f466-1f3fe: boy_tone4;
+ 1f466-1f3ff: boy_tone5;
+ 1f469: woman;
+ 1f469-1f3fb: woman_tone1;
+ 1f469-1f3fc: woman_tone2;
+ 1f469-1f3fd: woman_tone3;
+ 1f469-1f3fe: woman_tone4;
+ 1f469-1f3ff: woman_tone5;
+ 1f9d1: adult;
+ 1f9d1-1f3fb: adult_tone1;
+ 1f9d1-1f3fc: adult_tone2;
+ 1f9d1-1f3fd: adult_tone3;
+ 1f9d1-1f3fe: adult_tone4;
+ 1f9d1-1f3ff: adult_tone5;
+ 1f468: man;
+ 1f468-1f3fb: man_tone1;
+ 1f468-1f3fc: man_tone2;
+ 1f468-1f3fd: man_tone3;
+ 1f468-1f3fe: man_tone4;
+ 1f468-1f3ff: man_tone5;
+ 1f469-200d-1f9b1: woman_curly_haired;
+ 1f469-1f3fb-200d-1f9b1: woman_curly_haired_tone1;
+ 1f469-1f3fc-200d-1f9b1: woman_curly_haired_tone2;
+ 1f469-1f3fd-200d-1f9b1: woman_curly_haired_tone3;
+ 1f469-1f3fe-200d-1f9b1: woman_curly_haired_tone4;
+ 1f469-1f3ff-200d-1f9b1: woman_curly_haired_tone5;
+ 1f468-200d-1f9b1: man_curly_haired;
+ 1f468-1f3fb-200d-1f9b1: man_curly_haired_tone1;
+ 1f468-1f3fc-200d-1f9b1: man_curly_haired_tone2;
+ 1f468-1f3fd-200d-1f9b1: man_curly_haired_tone3;
+ 1f468-1f3fe-200d-1f9b1: man_curly_haired_tone4;
+ 1f468-1f3ff-200d-1f9b1: man_curly_haired_tone5;
+ 1f469-200d-1f9b0: woman_red_haired;
+ 1f469-1f3fb-200d-1f9b0: woman_red_haired_tone1;
+ 1f469-1f3fc-200d-1f9b0: woman_red_haired_tone2;
+ 1f469-1f3fd-200d-1f9b0: woman_red_haired_tone3;
+ 1f469-1f3fe-200d-1f9b0: woman_red_haired_tone4;
+ 1f469-1f3ff-200d-1f9b0: woman_red_haired_tone5;
+ 1f468-200d-1f9b0: man_red_haired;
+ 1f468-1f3fb-200d-1f9b0: man_red_haired_tone1;
+ 1f468-1f3fc-200d-1f9b0: man_red_haired_tone2;
+ 1f468-1f3fd-200d-1f9b0: man_red_haired_tone3;
+ 1f468-1f3fe-200d-1f9b0: man_red_haired_tone4;
+ 1f468-1f3ff-200d-1f9b0: man_red_haired_tone5;
+ 1f471-200d-2640-fe0f: blond-haired_woman;
+ 1f471-1f3fb-200d-2640-fe0f: blond-haired_woman_tone1;
+ 1f471-1f3fc-200d-2640-fe0f: blond-haired_woman_tone2;
+ 1f471-1f3fd-200d-2640-fe0f: blond-haired_woman_tone3;
+ 1f471-1f3fe-200d-2640-fe0f: blond-haired_woman_tone4;
+ 1f471-1f3ff-200d-2640-fe0f: blond-haired_woman_tone5;
+ 1f471: blond_haired_person;
+ 1f471-1f3fb: blond_haired_person_tone1;
+ 1f471-1f3fc: blond_haired_person_tone2;
+ 1f471-1f3fd: blond_haired_person_tone3;
+ 1f471-1f3fe: blond_haired_person_tone4;
+ 1f471-1f3ff: blond_haired_person_tone5;
+ 1f471-200d-2642-fe0f: blond-haired_man;
+ 1f471-1f3fb-200d-2642-fe0f: blond-haired_man_tone1;
+ 1f471-1f3fc-200d-2642-fe0f: blond-haired_man_tone2;
+ 1f471-1f3fd-200d-2642-fe0f: blond-haired_man_tone3;
+ 1f471-1f3fe-200d-2642-fe0f: blond-haired_man_tone4;
+ 1f471-1f3ff-200d-2642-fe0f: blond-haired_man_tone5;
+ 1f469-200d-1f9b3: woman_white_haired;
+ 1f469-1f3fb-200d-1f9b3: woman_white_haired_tone1;
+ 1f469-1f3fc-200d-1f9b3: woman_white_haired_tone2;
+ 1f469-1f3fd-200d-1f9b3: woman_white_haired_tone3;
+ 1f469-1f3fe-200d-1f9b3: woman_white_haired_tone4;
+ 1f469-1f3ff-200d-1f9b3: woman_white_haired_tone5;
+ 1f468-200d-1f9b3: man_white_haired;
+ 1f468-1f3fb-200d-1f9b3: man_white_haired_tone1;
+ 1f468-1f3fc-200d-1f9b3: man_white_haired_tone2;
+ 1f468-1f3fd-200d-1f9b3: man_white_haired_tone3;
+ 1f468-1f3fe-200d-1f9b3: man_white_haired_tone4;
+ 1f468-1f3ff-200d-1f9b3: man_white_haired_tone5;
+ 1f469-200d-1f9b2: woman_bald;
+ 1f469-1f3fb-200d-1f9b2: woman_bald_tone1;
+ 1f469-1f3fc-200d-1f9b2: woman_bald_tone2;
+ 1f469-1f3fd-200d-1f9b2: woman_bald_tone3;
+ 1f469-1f3fe-200d-1f9b2: woman_bald_tone4;
+ 1f469-1f3ff-200d-1f9b2: woman_bald_tone5;
+ 1f468-200d-1f9b2: man_bald;
+ 1f468-1f3fb-200d-1f9b2: man_bald_tone1;
+ 1f468-1f3fc-200d-1f9b2: man_bald_tone2;
+ 1f468-1f3fd-200d-1f9b2: man_bald_tone3;
+ 1f468-1f3fe-200d-1f9b2: man_bald_tone4;
+ 1f468-1f3ff-200d-1f9b2: man_bald_tone5;
+ 1f9d4: bearded_person;
+ 1f9d4-1f3fb: bearded_person_tone1;
+ 1f9d4-1f3fc: bearded_person_tone2;
+ 1f9d4-1f3fd: bearded_person_tone3;
+ 1f9d4-1f3fe: bearded_person_tone4;
+ 1f9d4-1f3ff: bearded_person_tone5;
+ 1f475: older_woman;
+ 1f475-1f3fb: older_woman_tone1;
+ 1f475-1f3fc: older_woman_tone2;
+ 1f475-1f3fd: older_woman_tone3;
+ 1f475-1f3fe: older_woman_tone4;
+ 1f475-1f3ff: older_woman_tone5;
+ 1f9d3: older_adult;
+ 1f9d3-1f3fb: older_adult_tone1;
+ 1f9d3-1f3fc: older_adult_tone2;
+ 1f9d3-1f3fd: older_adult_tone3;
+ 1f9d3-1f3fe: older_adult_tone4;
+ 1f9d3-1f3ff: older_adult_tone5;
+ 1f474: older_man;
+ 1f474-1f3fb: older_man_tone1;
+ 1f474-1f3fc: older_man_tone2;
+ 1f474-1f3fd: older_man_tone3;
+ 1f474-1f3fe: older_man_tone4;
+ 1f474-1f3ff: older_man_tone5;
+ 1f472: man_with_chinese_cap;
+ 1f472-1f3fb: man_with_chinese_cap_tone1;
+ 1f472-1f3fc: man_with_chinese_cap_tone2;
+ 1f472-1f3fd: man_with_chinese_cap_tone3;
+ 1f472-1f3fe: man_with_chinese_cap_tone4;
+ 1f472-1f3ff: man_with_chinese_cap_tone5;
+ 1f473: person_wearing_turban;
+ 1f473-1f3fb: person_wearing_turban_tone1;
+ 1f473-1f3fc: person_wearing_turban_tone2;
+ 1f473-1f3fd: person_wearing_turban_tone3;
+ 1f473-1f3fe: person_wearing_turban_tone4;
+ 1f473-1f3ff: person_wearing_turban_tone5;
+ 1f473-200d-2640-fe0f: woman_wearing_turban;
+ 1f473-1f3fb-200d-2640-fe0f: woman_wearing_turban_tone1;
+ 1f473-1f3fc-200d-2640-fe0f: woman_wearing_turban_tone2;
+ 1f473-1f3fd-200d-2640-fe0f: woman_wearing_turban_tone3;
+ 1f473-1f3fe-200d-2640-fe0f: woman_wearing_turban_tone4;
+ 1f473-1f3ff-200d-2640-fe0f: woman_wearing_turban_tone5;
+ 1f473-200d-2642-fe0f: man_wearing_turban;
+ 1f473-1f3fb-200d-2642-fe0f: man_wearing_turban_tone1;
+ 1f473-1f3fc-200d-2642-fe0f: man_wearing_turban_tone2;
+ 1f473-1f3fd-200d-2642-fe0f: man_wearing_turban_tone3;
+ 1f473-1f3fe-200d-2642-fe0f: man_wearing_turban_tone4;
+ 1f473-1f3ff-200d-2642-fe0f: man_wearing_turban_tone5;
+ 1f9d5: woman_with_headscarf;
+ 1f9d5-1f3fb: woman_with_headscarf_tone1;
+ 1f9d5-1f3fc: woman_with_headscarf_tone2;
+ 1f9d5-1f3fd: woman_with_headscarf_tone3;
+ 1f9d5-1f3fe: woman_with_headscarf_tone4;
+ 1f9d5-1f3ff: woman_with_headscarf_tone5;
+ 1f46e: police_officer;
+ 1f46e-1f3fb: police_officer_tone1;
+ 1f46e-1f3fc: police_officer_tone2;
+ 1f46e-1f3fd: police_officer_tone3;
+ 1f46e-1f3fe: police_officer_tone4;
+ 1f46e-1f3ff: police_officer_tone5;
+ 1f46e-200d-2640-fe0f: woman_police_officer;
+ 1f46e-1f3fb-200d-2640-fe0f: woman_police_officer_tone1;
+ 1f46e-1f3fc-200d-2640-fe0f: woman_police_officer_tone2;
+ 1f46e-1f3fd-200d-2640-fe0f: woman_police_officer_tone3;
+ 1f46e-1f3fe-200d-2640-fe0f: woman_police_officer_tone4;
+ 1f46e-1f3ff-200d-2640-fe0f: woman_police_officer_tone5;
+ 1f46e-200d-2642-fe0f: man_police_officer;
+ 1f46e-1f3fb-200d-2642-fe0f: man_police_officer_tone1;
+ 1f46e-1f3fc-200d-2642-fe0f: man_police_officer_tone2;
+ 1f46e-1f3fd-200d-2642-fe0f: man_police_officer_tone3;
+ 1f46e-1f3fe-200d-2642-fe0f: man_police_officer_tone4;
+ 1f46e-1f3ff-200d-2642-fe0f: man_police_officer_tone5;
+ 1f477: construction_worker;
+ 1f477-1f3fb: construction_worker_tone1;
+ 1f477-1f3fc: construction_worker_tone2;
+ 1f477-1f3fd: construction_worker_tone3;
+ 1f477-1f3fe: construction_worker_tone4;
+ 1f477-1f3ff: construction_worker_tone5;
+ 1f477-200d-2640-fe0f: woman_construction_worker;
+ 1f477-1f3fb-200d-2640-fe0f: woman_construction_worker_tone1;
+ 1f477-1f3fc-200d-2640-fe0f: woman_construction_worker_tone2;
+ 1f477-1f3fd-200d-2640-fe0f: woman_construction_worker_tone3;
+ 1f477-1f3fe-200d-2640-fe0f: woman_construction_worker_tone4;
+ 1f477-1f3ff-200d-2640-fe0f: woman_construction_worker_tone5;
+ 1f477-200d-2642-fe0f: man_construction_worker;
+ 1f477-1f3fb-200d-2642-fe0f: man_construction_worker_tone1;
+ 1f477-1f3fc-200d-2642-fe0f: man_construction_worker_tone2;
+ 1f477-1f3fd-200d-2642-fe0f: man_construction_worker_tone3;
+ 1f477-1f3fe-200d-2642-fe0f: man_construction_worker_tone4;
+ 1f477-1f3ff-200d-2642-fe0f: man_construction_worker_tone5;
+ 1f482: guard;
+ 1f482-1f3fb: guard_tone1;
+ 1f482-1f3fc: guard_tone2;
+ 1f482-1f3fd: guard_tone3;
+ 1f482-1f3fe: guard_tone4;
+ 1f482-1f3ff: guard_tone5;
+ 1f482-200d-2640-fe0f: woman_guard;
+ 1f482-1f3fb-200d-2640-fe0f: woman_guard_tone1;
+ 1f482-1f3fc-200d-2640-fe0f: woman_guard_tone2;
+ 1f482-1f3fd-200d-2640-fe0f: woman_guard_tone3;
+ 1f482-1f3fe-200d-2640-fe0f: woman_guard_tone4;
+ 1f482-1f3ff-200d-2640-fe0f: woman_guard_tone5;
+ 1f482-200d-2642-fe0f: man_guard;
+ 1f482-1f3fb-200d-2642-fe0f: man_guard_tone1;
+ 1f482-1f3fc-200d-2642-fe0f: man_guard_tone2;
+ 1f482-1f3fd-200d-2642-fe0f: man_guard_tone3;
+ 1f482-1f3fe-200d-2642-fe0f: man_guard_tone4;
+ 1f482-1f3ff-200d-2642-fe0f: man_guard_tone5;
+ 1f575: detective;
+ 1f575-1f3fb: detective_tone1;
+ 1f575-1f3fc: detective_tone2;
+ 1f575-1f3fd: detective_tone3;
+ 1f575-1f3fe: detective_tone4;
+ 1f575-1f3ff: detective_tone5;
+ 1f575-fe0f-200d-2640-fe0f: woman_detective;
+ 1f575-1f3fb-200d-2640-fe0f: woman_detective_tone1;
+ 1f575-1f3fc-200d-2640-fe0f: woman_detective_tone2;
+ 1f575-1f3fd-200d-2640-fe0f: woman_detective_tone3;
+ 1f575-1f3fe-200d-2640-fe0f: woman_detective_tone4;
+ 1f575-1f3ff-200d-2640-fe0f: woman_detective_tone5;
+ 1f575-fe0f-200d-2642-fe0f: man_detective;
+ 1f575-1f3fb-200d-2642-fe0f: man_detective_tone1;
+ 1f575-1f3fc-200d-2642-fe0f: man_detective_tone2;
+ 1f575-1f3fd-200d-2642-fe0f: man_detective_tone3;
+ 1f575-1f3fe-200d-2642-fe0f: man_detective_tone4;
+ 1f575-1f3ff-200d-2642-fe0f: man_detective_tone5;
+ 1f469-200d-2695-fe0f: woman_health_worker;
+ 1f469-1f3fb-200d-2695-fe0f: woman_health_worker_tone1;
+ 1f469-1f3fc-200d-2695-fe0f: woman_health_worker_tone2;
+ 1f469-1f3fd-200d-2695-fe0f: woman_health_worker_tone3;
+ 1f469-1f3fe-200d-2695-fe0f: woman_health_worker_tone4;
+ 1f469-1f3ff-200d-2695-fe0f: woman_health_worker_tone5;
+ 1f468-200d-2695-fe0f: man_health_worker;
+ 1f468-1f3fb-200d-2695-fe0f: man_health_worker_tone1;
+ 1f468-1f3fc-200d-2695-fe0f: man_health_worker_tone2;
+ 1f468-1f3fd-200d-2695-fe0f: man_health_worker_tone3;
+ 1f468-1f3fe-200d-2695-fe0f: man_health_worker_tone4;
+ 1f468-1f3ff-200d-2695-fe0f: man_health_worker_tone5;
+ 1f469-200d-1f33e: woman_farmer;
+ 1f469-1f3fb-200d-1f33e: woman_farmer_tone1;
+ 1f469-1f3fc-200d-1f33e: woman_farmer_tone2;
+ 1f469-1f3fd-200d-1f33e: woman_farmer_tone3;
+ 1f469-1f3fe-200d-1f33e: woman_farmer_tone4;
+ 1f469-1f3ff-200d-1f33e: woman_farmer_tone5;
+ 1f468-200d-1f33e: man_farmer;
+ 1f468-1f3fb-200d-1f33e: man_farmer_tone1;
+ 1f468-1f3fc-200d-1f33e: man_farmer_tone2;
+ 1f468-1f3fd-200d-1f33e: man_farmer_tone3;
+ 1f468-1f3fe-200d-1f33e: man_farmer_tone4;
+ 1f468-1f3ff-200d-1f33e: man_farmer_tone5;
+ 1f469-200d-1f373: woman_cook;
+ 1f469-1f3fb-200d-1f373: woman_cook_tone1;
+ 1f469-1f3fc-200d-1f373: woman_cook_tone2;
+ 1f469-1f3fd-200d-1f373: woman_cook_tone3;
+ 1f469-1f3fe-200d-1f373: woman_cook_tone4;
+ 1f469-1f3ff-200d-1f373: woman_cook_tone5;
+ 1f468-200d-1f373: man_cook;
+ 1f468-1f3fb-200d-1f373: man_cook_tone1;
+ 1f468-1f3fc-200d-1f373: man_cook_tone2;
+ 1f468-1f3fd-200d-1f373: man_cook_tone3;
+ 1f468-1f3fe-200d-1f373: man_cook_tone4;
+ 1f468-1f3ff-200d-1f373: man_cook_tone5;
+ 1f469-200d-1f393: woman_student;
+ 1f469-1f3fb-200d-1f393: woman_student_tone1;
+ 1f469-1f3fc-200d-1f393: woman_student_tone2;
+ 1f469-1f3fd-200d-1f393: woman_student_tone3;
+ 1f469-1f3fe-200d-1f393: woman_student_tone4;
+ 1f469-1f3ff-200d-1f393: woman_student_tone5;
+ 1f468-200d-1f393: man_student;
+ 1f468-1f3fb-200d-1f393: man_student_tone1;
+ 1f468-1f3fc-200d-1f393: man_student_tone2;
+ 1f468-1f3fd-200d-1f393: man_student_tone3;
+ 1f468-1f3fe-200d-1f393: man_student_tone4;
+ 1f468-1f3ff-200d-1f393: man_student_tone5;
+ 1f469-200d-1f3a4: woman_singer;
+ 1f469-1f3fb-200d-1f3a4: woman_singer_tone1;
+ 1f469-1f3fc-200d-1f3a4: woman_singer_tone2;
+ 1f469-1f3fd-200d-1f3a4: woman_singer_tone3;
+ 1f469-1f3fe-200d-1f3a4: woman_singer_tone4;
+ 1f469-1f3ff-200d-1f3a4: woman_singer_tone5;
+ 1f468-200d-1f3a4: man_singer;
+ 1f468-1f3fb-200d-1f3a4: man_singer_tone1;
+ 1f468-1f3fc-200d-1f3a4: man_singer_tone2;
+ 1f468-1f3fd-200d-1f3a4: man_singer_tone3;
+ 1f468-1f3fe-200d-1f3a4: man_singer_tone4;
+ 1f468-1f3ff-200d-1f3a4: man_singer_tone5;
+ 1f469-200d-1f3eb: woman_teacher;
+ 1f469-1f3fb-200d-1f3eb: woman_teacher_tone1;
+ 1f469-1f3fc-200d-1f3eb: woman_teacher_tone2;
+ 1f469-1f3fd-200d-1f3eb: woman_teacher_tone3;
+ 1f469-1f3fe-200d-1f3eb: woman_teacher_tone4;
+ 1f469-1f3ff-200d-1f3eb: woman_teacher_tone5;
+ 1f468-200d-1f3eb: man_teacher;
+ 1f468-1f3fb-200d-1f3eb: man_teacher_tone1;
+ 1f468-1f3fc-200d-1f3eb: man_teacher_tone2;
+ 1f468-1f3fd-200d-1f3eb: man_teacher_tone3;
+ 1f468-1f3fe-200d-1f3eb: man_teacher_tone4;
+ 1f468-1f3ff-200d-1f3eb: man_teacher_tone5;
+ 1f469-200d-1f3ed: woman_factory_worker;
+ 1f469-1f3fb-200d-1f3ed: woman_factory_worker_tone1;
+ 1f469-1f3fc-200d-1f3ed: woman_factory_worker_tone2;
+ 1f469-1f3fd-200d-1f3ed: woman_factory_worker_tone3;
+ 1f469-1f3fe-200d-1f3ed: woman_factory_worker_tone4;
+ 1f469-1f3ff-200d-1f3ed: woman_factory_worker_tone5;
+ 1f468-200d-1f3ed: man_factory_worker;
+ 1f468-1f3fb-200d-1f3ed: man_factory_worker_tone1;
+ 1f468-1f3fc-200d-1f3ed: man_factory_worker_tone2;
+ 1f468-1f3fd-200d-1f3ed: man_factory_worker_tone3;
+ 1f468-1f3fe-200d-1f3ed: man_factory_worker_tone4;
+ 1f468-1f3ff-200d-1f3ed: man_factory_worker_tone5;
+ 1f469-200d-1f4bb: woman_technologist;
+ 1f469-1f3fb-200d-1f4bb: woman_technologist_tone1;
+ 1f469-1f3fc-200d-1f4bb: woman_technologist_tone2;
+ 1f469-1f3fd-200d-1f4bb: woman_technologist_tone3;
+ 1f469-1f3fe-200d-1f4bb: woman_technologist_tone4;
+ 1f469-1f3ff-200d-1f4bb: woman_technologist_tone5;
+ 1f468-200d-1f4bb: man_technologist;
+ 1f468-1f3fb-200d-1f4bb: man_technologist_tone1;
+ 1f468-1f3fc-200d-1f4bb: man_technologist_tone2;
+ 1f468-1f3fd-200d-1f4bb: man_technologist_tone3;
+ 1f468-1f3fe-200d-1f4bb: man_technologist_tone4;
+ 1f468-1f3ff-200d-1f4bb: man_technologist_tone5;
+ 1f469-200d-1f4bc: woman_office_worker;
+ 1f469-1f3fb-200d-1f4bc: woman_office_worker_tone1;
+ 1f469-1f3fc-200d-1f4bc: woman_office_worker_tone2;
+ 1f469-1f3fd-200d-1f4bc: woman_office_worker_tone3;
+ 1f469-1f3fe-200d-1f4bc: woman_office_worker_tone4;
+ 1f469-1f3ff-200d-1f4bc: woman_office_worker_tone5;
+ 1f468-200d-1f4bc: man_office_worker;
+ 1f468-1f3fb-200d-1f4bc: man_office_worker_tone1;
+ 1f468-1f3fc-200d-1f4bc: man_office_worker_tone2;
+ 1f468-1f3fd-200d-1f4bc: man_office_worker_tone3;
+ 1f468-1f3fe-200d-1f4bc: man_office_worker_tone4;
+ 1f468-1f3ff-200d-1f4bc: man_office_worker_tone5;
+ 1f469-200d-1f527: woman_mechanic;
+ 1f469-1f3fb-200d-1f527: woman_mechanic_tone1;
+ 1f469-1f3fc-200d-1f527: woman_mechanic_tone2;
+ 1f469-1f3fd-200d-1f527: woman_mechanic_tone3;
+ 1f469-1f3fe-200d-1f527: woman_mechanic_tone4;
+ 1f469-1f3ff-200d-1f527: woman_mechanic_tone5;
+ 1f468-200d-1f527: man_mechanic;
+ 1f468-1f3fb-200d-1f527: man_mechanic_tone1;
+ 1f468-1f3fc-200d-1f527: man_mechanic_tone2;
+ 1f468-1f3fd-200d-1f527: man_mechanic_tone3;
+ 1f468-1f3fe-200d-1f527: man_mechanic_tone4;
+ 1f468-1f3ff-200d-1f527: man_mechanic_tone5;
+ 1f469-200d-1f52c: woman_scientist;
+ 1f469-1f3fb-200d-1f52c: woman_scientist_tone1;
+ 1f469-1f3fc-200d-1f52c: woman_scientist_tone2;
+ 1f469-1f3fd-200d-1f52c: woman_scientist_tone3;
+ 1f469-1f3fe-200d-1f52c: woman_scientist_tone4;
+ 1f469-1f3ff-200d-1f52c: woman_scientist_tone5;
+ 1f468-200d-1f52c: man_scientist;
+ 1f468-1f3fb-200d-1f52c: man_scientist_tone1;
+ 1f468-1f3fc-200d-1f52c: man_scientist_tone2;
+ 1f468-1f3fd-200d-1f52c: man_scientist_tone3;
+ 1f468-1f3fe-200d-1f52c: man_scientist_tone4;
+ 1f468-1f3ff-200d-1f52c: man_scientist_tone5;
+ 1f469-200d-1f3a8: woman_artist;
+ 1f469-1f3fb-200d-1f3a8: woman_artist_tone1;
+ 1f469-1f3fc-200d-1f3a8: woman_artist_tone2;
+ 1f469-1f3fd-200d-1f3a8: woman_artist_tone3;
+ 1f469-1f3fe-200d-1f3a8: woman_artist_tone4;
+ 1f469-1f3ff-200d-1f3a8: woman_artist_tone5;
+ 1f468-200d-1f3a8: man_artist;
+ 1f468-1f3fb-200d-1f3a8: man_artist_tone1;
+ 1f468-1f3fc-200d-1f3a8: man_artist_tone2;
+ 1f468-1f3fd-200d-1f3a8: man_artist_tone3;
+ 1f468-1f3fe-200d-1f3a8: man_artist_tone4;
+ 1f468-1f3ff-200d-1f3a8: man_artist_tone5;
+ 1f469-200d-1f692: woman_firefighter;
+ 1f469-1f3fb-200d-1f692: woman_firefighter_tone1;
+ 1f469-1f3fc-200d-1f692: woman_firefighter_tone2;
+ 1f469-1f3fd-200d-1f692: woman_firefighter_tone3;
+ 1f469-1f3fe-200d-1f692: woman_firefighter_tone4;
+ 1f469-1f3ff-200d-1f692: woman_firefighter_tone5;
+ 1f468-200d-1f692: man_firefighter;
+ 1f468-1f3fb-200d-1f692: man_firefighter_tone1;
+ 1f468-1f3fc-200d-1f692: man_firefighter_tone2;
+ 1f468-1f3fd-200d-1f692: man_firefighter_tone3;
+ 1f468-1f3fe-200d-1f692: man_firefighter_tone4;
+ 1f468-1f3ff-200d-1f692: man_firefighter_tone5;
+ 1f469-200d-2708-fe0f: woman_pilot;
+ 1f469-1f3fb-200d-2708-fe0f: woman_pilot_tone1;
+ 1f469-1f3fc-200d-2708-fe0f: woman_pilot_tone2;
+ 1f469-1f3fd-200d-2708-fe0f: woman_pilot_tone3;
+ 1f469-1f3fe-200d-2708-fe0f: woman_pilot_tone4;
+ 1f469-1f3ff-200d-2708-fe0f: woman_pilot_tone5;
+ 1f468-200d-2708-fe0f: man_pilot;
+ 1f468-1f3fb-200d-2708-fe0f: man_pilot_tone1;
+ 1f468-1f3fc-200d-2708-fe0f: man_pilot_tone2;
+ 1f468-1f3fd-200d-2708-fe0f: man_pilot_tone3;
+ 1f468-1f3fe-200d-2708-fe0f: man_pilot_tone4;
+ 1f468-1f3ff-200d-2708-fe0f: man_pilot_tone5;
+ 1f469-200d-1f680: woman_astronaut;
+ 1f469-1f3fb-200d-1f680: woman_astronaut_tone1;
+ 1f469-1f3fc-200d-1f680: woman_astronaut_tone2;
+ 1f469-1f3fd-200d-1f680: woman_astronaut_tone3;
+ 1f469-1f3fe-200d-1f680: woman_astronaut_tone4;
+ 1f469-1f3ff-200d-1f680: woman_astronaut_tone5;
+ 1f468-200d-1f680: man_astronaut;
+ 1f468-1f3fb-200d-1f680: man_astronaut_tone1;
+ 1f468-1f3fc-200d-1f680: man_astronaut_tone2;
+ 1f468-1f3fd-200d-1f680: man_astronaut_tone3;
+ 1f468-1f3fe-200d-1f680: man_astronaut_tone4;
+ 1f468-1f3ff-200d-1f680: man_astronaut_tone5;
+ 1f469-200d-2696-fe0f: woman_judge;
+ 1f469-1f3fb-200d-2696-fe0f: woman_judge_tone1;
+ 1f469-1f3fc-200d-2696-fe0f: woman_judge_tone2;
+ 1f469-1f3fd-200d-2696-fe0f: woman_judge_tone3;
+ 1f469-1f3fe-200d-2696-fe0f: woman_judge_tone4;
+ 1f469-1f3ff-200d-2696-fe0f: woman_judge_tone5;
+ 1f468-200d-2696-fe0f: man_judge;
+ 1f468-1f3fb-200d-2696-fe0f: man_judge_tone1;
+ 1f468-1f3fc-200d-2696-fe0f: man_judge_tone2;
+ 1f468-1f3fd-200d-2696-fe0f: man_judge_tone3;
+ 1f468-1f3fe-200d-2696-fe0f: man_judge_tone4;
+ 1f468-1f3ff-200d-2696-fe0f: man_judge_tone5;
+ 1f470: bride_with_veil;
+ 1f470-1f3fb: bride_with_veil_tone1;
+ 1f470-1f3fc: bride_with_veil_tone2;
+ 1f470-1f3fd: bride_with_veil_tone3;
+ 1f470-1f3fe: bride_with_veil_tone4;
+ 1f470-1f3ff: bride_with_veil_tone5;
+ 1f935: man_in_tuxedo;
+ 1f935-1f3fb: man_in_tuxedo_tone1;
+ 1f935-1f3fc: man_in_tuxedo_tone2;
+ 1f935-1f3fd: man_in_tuxedo_tone3;
+ 1f935-1f3fe: man_in_tuxedo_tone4;
+ 1f935-1f3ff: man_in_tuxedo_tone5;
+ 1f478: princess;
+ 1f478-1f3fb: princess_tone1;
+ 1f478-1f3fc: princess_tone2;
+ 1f478-1f3fd: princess_tone3;
+ 1f478-1f3fe: princess_tone4;
+ 1f478-1f3ff: princess_tone5;
+ 1f934: prince;
+ 1f934-1f3fb: prince_tone1;
+ 1f934-1f3fc: prince_tone2;
+ 1f934-1f3fd: prince_tone3;
+ 1f934-1f3fe: prince_tone4;
+ 1f934-1f3ff: prince_tone5;
+ 1f9b8: superhero;
+ 1f9b8-1f3fb: superhero_tone1;
+ 1f9b8-1f3fc: superhero_tone2;
+ 1f9b8-1f3fd: superhero_tone3;
+ 1f9b8-1f3fe: superhero_tone4;
+ 1f9b8-1f3ff: superhero_tone5;
+ 1f9b8-200d-2640-fe0f: woman_superhero;
+ 1f9b8-1f3fb-200d-2640-fe0f: woman_superhero_tone1;
+ 1f9b8-1f3fc-200d-2640-fe0f: woman_superhero_tone2;
+ 1f9b8-1f3fd-200d-2640-fe0f: woman_superhero_tone3;
+ 1f9b8-1f3fe-200d-2640-fe0f: woman_superhero_tone4;
+ 1f9b8-1f3ff-200d-2640-fe0f: woman_superhero_tone5;
+ 1f9b8-200d-2642-fe0f: man_superhero;
+ 1f9b8-1f3fb-200d-2642-fe0f: man_superhero_tone1;
+ 1f9b8-1f3fc-200d-2642-fe0f: man_superhero_tone2;
+ 1f9b8-1f3fd-200d-2642-fe0f: man_superhero_tone3;
+ 1f9b8-1f3fe-200d-2642-fe0f: man_superhero_tone4;
+ 1f9b8-1f3ff-200d-2642-fe0f: man_superhero_tone5;
+ 1f9b9: supervillain;
+ 1f9b9-1f3fb: supervillain_tone1;
+ 1f9b9-1f3fc: supervillain_tone2;
+ 1f9b9-1f3fd: supervillain_tone3;
+ 1f9b9-1f3fe: supervillain_tone4;
+ 1f9b9-1f3ff: supervillain_tone5;
+ 1f9b9-200d-2640-fe0f: woman_supervillain;
+ 1f9b9-1f3fb-200d-2640-fe0f: woman_supervillain_tone1;
+ 1f9b9-1f3fc-200d-2640-fe0f: woman_supervillain_tone2;
+ 1f9b9-1f3fd-200d-2640-fe0f: woman_supervillain_tone3;
+ 1f9b9-1f3fe-200d-2640-fe0f: woman_supervillain_tone4;
+ 1f9b9-1f3ff-200d-2640-fe0f: woman_supervillain_tone5;
+ 1f9b9-200d-2642-fe0f: man_supervillain;
+ 1f9b9-1f3fb-200d-2642-fe0f: man_supervillain_tone1;
+ 1f9b9-1f3fc-200d-2642-fe0f: man_supervillain_tone2;
+ 1f9b9-1f3fd-200d-2642-fe0f: man_supervillain_tone3;
+ 1f9b9-1f3fe-200d-2642-fe0f: man_supervillain_tone4;
+ 1f9b9-1f3ff-200d-2642-fe0f: man_supervillain_tone5;
+ 1f936: mrs_claus;
+ 1f936-1f3fb: mrs_claus_tone1;
+ 1f936-1f3fc: mrs_claus_tone2;
+ 1f936-1f3fd: mrs_claus_tone3;
+ 1f936-1f3fe: mrs_claus_tone4;
+ 1f936-1f3ff: mrs_claus_tone5;
+ 1f385: santa;
+ 1f385-1f3fb: santa_tone1;
+ 1f385-1f3fc: santa_tone2;
+ 1f385-1f3fd: santa_tone3;
+ 1f385-1f3fe: santa_tone4;
+ 1f385-1f3ff: santa_tone5;
+ 1f9d9: mage;
+ 1f9d9-1f3fb: mage_tone1;
+ 1f9d9-1f3fc: mage_tone2;
+ 1f9d9-1f3fd: mage_tone3;
+ 1f9d9-1f3fe: mage_tone4;
+ 1f9d9-1f3ff: mage_tone5;
+ 1f9d9-200d-2640-fe0f: woman_mage;
+ 1f9d9-1f3fb-200d-2640-fe0f: woman_mage_tone1;
+ 1f9d9-1f3fc-200d-2640-fe0f: woman_mage_tone2;
+ 1f9d9-1f3fd-200d-2640-fe0f: woman_mage_tone3;
+ 1f9d9-1f3fe-200d-2640-fe0f: woman_mage_tone4;
+ 1f9d9-1f3ff-200d-2640-fe0f: woman_mage_tone5;
+ 1f9d9-200d-2642-fe0f: man_mage;
+ 1f9d9-1f3fb-200d-2642-fe0f: man_mage_tone1;
+ 1f9d9-1f3fc-200d-2642-fe0f: man_mage_tone2;
+ 1f9d9-1f3fd-200d-2642-fe0f: man_mage_tone3;
+ 1f9d9-1f3fe-200d-2642-fe0f: man_mage_tone4;
+ 1f9d9-1f3ff-200d-2642-fe0f: man_mage_tone5;
+ 1f9dd: elf;
+ 1f9dd-1f3fb: elf_tone1;
+ 1f9dd-1f3fc: elf_tone2;
+ 1f9dd-1f3fd: elf_tone3;
+ 1f9dd-1f3fe: elf_tone4;
+ 1f9dd-1f3ff: elf_tone5;
+ 1f9dd-200d-2640-fe0f: woman_elf;
+ 1f9dd-1f3fb-200d-2640-fe0f: woman_elf_tone1;
+ 1f9dd-1f3fc-200d-2640-fe0f: woman_elf_tone2;
+ 1f9dd-1f3fd-200d-2640-fe0f: woman_elf_tone3;
+ 1f9dd-1f3fe-200d-2640-fe0f: woman_elf_tone4;
+ 1f9dd-1f3ff-200d-2640-fe0f: woman_elf_tone5;
+ 1f9dd-200d-2642-fe0f: man_elf;
+ 1f9dd-1f3fb-200d-2642-fe0f: man_elf_tone1;
+ 1f9dd-1f3fc-200d-2642-fe0f: man_elf_tone2;
+ 1f9dd-1f3fd-200d-2642-fe0f: man_elf_tone3;
+ 1f9dd-1f3fe-200d-2642-fe0f: man_elf_tone4;
+ 1f9dd-1f3ff-200d-2642-fe0f: man_elf_tone5;
+ 1f9db: vampire;
+ 1f9db-1f3fb: vampire_tone1;
+ 1f9db-1f3fc: vampire_tone2;
+ 1f9db-1f3fd: vampire_tone3;
+ 1f9db-1f3fe: vampire_tone4;
+ 1f9db-1f3ff: vampire_tone5;
+ 1f9db-200d-2640-fe0f: woman_vampire;
+ 1f9db-1f3fb-200d-2640-fe0f: woman_vampire_tone1;
+ 1f9db-1f3fc-200d-2640-fe0f: woman_vampire_tone2;
+ 1f9db-1f3fd-200d-2640-fe0f: woman_vampire_tone3;
+ 1f9db-1f3fe-200d-2640-fe0f: woman_vampire_tone4;
+ 1f9db-1f3ff-200d-2640-fe0f: woman_vampire_tone5;
+ 1f9db-200d-2642-fe0f: man_vampire;
+ 1f9db-1f3fb-200d-2642-fe0f: man_vampire_tone1;
+ 1f9db-1f3fc-200d-2642-fe0f: man_vampire_tone2;
+ 1f9db-1f3fd-200d-2642-fe0f: man_vampire_tone3;
+ 1f9db-1f3fe-200d-2642-fe0f: man_vampire_tone4;
+ 1f9db-1f3ff-200d-2642-fe0f: man_vampire_tone5;
+ 1f9df: zombie;
+ 1f9df-200d-2640-fe0f: woman_zombie;
+ 1f9df-200d-2642-fe0f: man_zombie;
+ 1f9de: genie;
+ 1f9de-200d-2640-fe0f: woman_genie;
+ 1f9de-200d-2642-fe0f: man_genie;
+ 1f9dc: merperson;
+ 1f9dc-1f3fb: merperson_tone1;
+ 1f9dc-1f3fc: merperson_tone2;
+ 1f9dc-1f3fd: merperson_tone3;
+ 1f9dc-1f3fe: merperson_tone4;
+ 1f9dc-1f3ff: merperson_tone5;
+ 1f9dc-200d-2640-fe0f: mermaid;
+ 1f9dc-1f3fb-200d-2640-fe0f: mermaid_tone1;
+ 1f9dc-1f3fc-200d-2640-fe0f: mermaid_tone2;
+ 1f9dc-1f3fd-200d-2640-fe0f: mermaid_tone3;
+ 1f9dc-1f3fe-200d-2640-fe0f: mermaid_tone4;
+ 1f9dc-1f3ff-200d-2640-fe0f: mermaid_tone5;
+ 1f9dc-200d-2642-fe0f: merman;
+ 1f9dc-1f3fb-200d-2642-fe0f: merman_tone1;
+ 1f9dc-1f3fc-200d-2642-fe0f: merman_tone2;
+ 1f9dc-1f3fd-200d-2642-fe0f: merman_tone3;
+ 1f9dc-1f3fe-200d-2642-fe0f: merman_tone4;
+ 1f9dc-1f3ff-200d-2642-fe0f: merman_tone5;
+ 1f9da: fairy;
+ 1f9da-1f3fb: fairy_tone1;
+ 1f9da-1f3fc: fairy_tone2;
+ 1f9da-1f3fd: fairy_tone3;
+ 1f9da-1f3fe: fairy_tone4;
+ 1f9da-1f3ff: fairy_tone5;
+ 1f9da-200d-2640-fe0f: woman_fairy;
+ 1f9da-1f3fb-200d-2640-fe0f: woman_fairy_tone1;
+ 1f9da-1f3fc-200d-2640-fe0f: woman_fairy_tone2;
+ 1f9da-1f3fd-200d-2640-fe0f: woman_fairy_tone3;
+ 1f9da-1f3fe-200d-2640-fe0f: woman_fairy_tone4;
+ 1f9da-1f3ff-200d-2640-fe0f: woman_fairy_tone5;
+ 1f9da-200d-2642-fe0f: man_fairy;
+ 1f9da-1f3fb-200d-2642-fe0f: man_fairy_tone1;
+ 1f9da-1f3fc-200d-2642-fe0f: man_fairy_tone2;
+ 1f9da-1f3fd-200d-2642-fe0f: man_fairy_tone3;
+ 1f9da-1f3fe-200d-2642-fe0f: man_fairy_tone4;
+ 1f9da-1f3ff-200d-2642-fe0f: man_fairy_tone5;
+ 1f47c: angel;
+ 1f47c-1f3fb: angel_tone1;
+ 1f47c-1f3fc: angel_tone2;
+ 1f47c-1f3fd: angel_tone3;
+ 1f47c-1f3fe: angel_tone4;
+ 1f47c-1f3ff: angel_tone5;
+ 1f930: pregnant_woman;
+ 1f930-1f3fb: pregnant_woman_tone1;
+ 1f930-1f3fc: pregnant_woman_tone2;
+ 1f930-1f3fd: pregnant_woman_tone3;
+ 1f930-1f3fe: pregnant_woman_tone4;
+ 1f930-1f3ff: pregnant_woman_tone5;
+ 1f931: breast_feeding;
+ 1f931-1f3fb: breast_feeding_tone1;
+ 1f931-1f3fc: breast_feeding_tone2;
+ 1f931-1f3fd: breast_feeding_tone3;
+ 1f931-1f3fe: breast_feeding_tone4;
+ 1f931-1f3ff: breast_feeding_tone5;
+ 1f647: person_bowing;
+ 1f647-1f3fb: person_bowing_tone1;
+ 1f647-1f3fc: person_bowing_tone2;
+ 1f647-1f3fd: person_bowing_tone3;
+ 1f647-1f3fe: person_bowing_tone4;
+ 1f647-1f3ff: person_bowing_tone5;
+ 1f647-200d-2640-fe0f: woman_bowing;
+ 1f647-1f3fb-200d-2640-fe0f: woman_bowing_tone1;
+ 1f647-1f3fc-200d-2640-fe0f: woman_bowing_tone2;
+ 1f647-1f3fd-200d-2640-fe0f: woman_bowing_tone3;
+ 1f647-1f3fe-200d-2640-fe0f: woman_bowing_tone4;
+ 1f647-1f3ff-200d-2640-fe0f: woman_bowing_tone5;
+ 1f647-200d-2642-fe0f: man_bowing;
+ 1f647-1f3fb-200d-2642-fe0f: man_bowing_tone1;
+ 1f647-1f3fc-200d-2642-fe0f: man_bowing_tone2;
+ 1f647-1f3fd-200d-2642-fe0f: man_bowing_tone3;
+ 1f647-1f3fe-200d-2642-fe0f: man_bowing_tone4;
+ 1f647-1f3ff-200d-2642-fe0f: man_bowing_tone5;
+ 1f481: person_tipping_hand;
+ 1f481-1f3fb: person_tipping_hand_tone1;
+ 1f481-1f3fc: person_tipping_hand_tone2;
+ 1f481-1f3fd: person_tipping_hand_tone3;
+ 1f481-1f3fe: person_tipping_hand_tone4;
+ 1f481-1f3ff: person_tipping_hand_tone5;
+ 1f481-200d-2640-fe0f: woman_tipping_hand;
+ 1f481-1f3fb-200d-2640-fe0f: woman_tipping_hand_tone1;
+ 1f481-1f3fc-200d-2640-fe0f: woman_tipping_hand_tone2;
+ 1f481-1f3fd-200d-2640-fe0f: woman_tipping_hand_tone3;
+ 1f481-1f3fe-200d-2640-fe0f: woman_tipping_hand_tone4;
+ 1f481-1f3ff-200d-2640-fe0f: woman_tipping_hand_tone5;
+ 1f481-200d-2642-fe0f: man_tipping_hand;
+ 1f481-1f3fb-200d-2642-fe0f: man_tipping_hand_tone1;
+ 1f481-1f3fc-200d-2642-fe0f: man_tipping_hand_tone2;
+ 1f481-1f3fd-200d-2642-fe0f: man_tipping_hand_tone3;
+ 1f481-1f3fe-200d-2642-fe0f: man_tipping_hand_tone4;
+ 1f481-1f3ff-200d-2642-fe0f: man_tipping_hand_tone5;
+ 1f645: person_gesturing_no;
+ 1f645-1f3fb: person_gesturing_no_tone1;
+ 1f645-1f3fc: person_gesturing_no_tone2;
+ 1f645-1f3fd: person_gesturing_no_tone3;
+ 1f645-1f3fe: person_gesturing_no_tone4;
+ 1f645-1f3ff: person_gesturing_no_tone5;
+ 1f645-200d-2640-fe0f: woman_gesturing_no;
+ 1f645-1f3fb-200d-2640-fe0f: woman_gesturing_no_tone1;
+ 1f645-1f3fc-200d-2640-fe0f: woman_gesturing_no_tone2;
+ 1f645-1f3fd-200d-2640-fe0f: woman_gesturing_no_tone3;
+ 1f645-1f3fe-200d-2640-fe0f: woman_gesturing_no_tone4;
+ 1f645-1f3ff-200d-2640-fe0f: woman_gesturing_no_tone5;
+ 1f645-200d-2642-fe0f: man_gesturing_no;
+ 1f645-1f3fb-200d-2642-fe0f: man_gesturing_no_tone1;
+ 1f645-1f3fc-200d-2642-fe0f: man_gesturing_no_tone2;
+ 1f645-1f3fd-200d-2642-fe0f: man_gesturing_no_tone3;
+ 1f645-1f3fe-200d-2642-fe0f: man_gesturing_no_tone4;
+ 1f645-1f3ff-200d-2642-fe0f: man_gesturing_no_tone5;
+ 1f646: person_gesturing_ok;
+ 1f646-1f3fb: person_gesturing_ok_tone1;
+ 1f646-1f3fc: person_gesturing_ok_tone2;
+ 1f646-1f3fd: person_gesturing_ok_tone3;
+ 1f646-1f3fe: person_gesturing_ok_tone4;
+ 1f646-1f3ff: person_gesturing_ok_tone5;
+ 1f646-200d-2640-fe0f: woman_gesturing_ok;
+ 1f646-1f3fb-200d-2640-fe0f: woman_gesturing_ok_tone1;
+ 1f646-1f3fc-200d-2640-fe0f: woman_gesturing_ok_tone2;
+ 1f646-1f3fd-200d-2640-fe0f: woman_gesturing_ok_tone3;
+ 1f646-1f3fe-200d-2640-fe0f: woman_gesturing_ok_tone4;
+ 1f646-1f3ff-200d-2640-fe0f: woman_gesturing_ok_tone5;
+ 1f646-200d-2642-fe0f: man_gesturing_ok;
+ 1f646-1f3fb-200d-2642-fe0f: man_gesturing_ok_tone1;
+ 1f646-1f3fc-200d-2642-fe0f: man_gesturing_ok_tone2;
+ 1f646-1f3fd-200d-2642-fe0f: man_gesturing_ok_tone3;
+ 1f646-1f3fe-200d-2642-fe0f: man_gesturing_ok_tone4;
+ 1f646-1f3ff-200d-2642-fe0f: man_gesturing_ok_tone5;
+ 1f64b: person_raising_hand;
+ 1f64b-1f3fb: person_raising_hand_tone1;
+ 1f64b-1f3fc: person_raising_hand_tone2;
+ 1f64b-1f3fd: person_raising_hand_tone3;
+ 1f64b-1f3fe: person_raising_hand_tone4;
+ 1f64b-1f3ff: person_raising_hand_tone5;
+ 1f64b-200d-2640-fe0f: woman_raising_hand;
+ 1f64b-1f3fb-200d-2640-fe0f: woman_raising_hand_tone1;
+ 1f64b-1f3fc-200d-2640-fe0f: woman_raising_hand_tone2;
+ 1f64b-1f3fd-200d-2640-fe0f: woman_raising_hand_tone3;
+ 1f64b-1f3fe-200d-2640-fe0f: woman_raising_hand_tone4;
+ 1f64b-1f3ff-200d-2640-fe0f: woman_raising_hand_tone5;
+ 1f64b-200d-2642-fe0f: man_raising_hand;
+ 1f64b-1f3fb-200d-2642-fe0f: man_raising_hand_tone1;
+ 1f64b-1f3fc-200d-2642-fe0f: man_raising_hand_tone2;
+ 1f64b-1f3fd-200d-2642-fe0f: man_raising_hand_tone3;
+ 1f64b-1f3fe-200d-2642-fe0f: man_raising_hand_tone4;
+ 1f64b-1f3ff-200d-2642-fe0f: man_raising_hand_tone5;
+ 1f9cf: deaf_person;
+ 1f9cf-1f3fb: deaf_person_tone1;
+ 1f9cf-1f3fc: deaf_person_tone2;
+ 1f9cf-1f3fd: deaf_person_tone3;
+ 1f9cf-1f3fe: deaf_person_tone4;
+ 1f9cf-1f3ff: deaf_person_tone5;
+ 1f9cf-200d-2640-fe0f: deaf_woman;
+ 1f9cf-1f3fb-200d-2640-fe0f: deaf_woman_tone1;
+ 1f9cf-1f3fc-200d-2640-fe0f: deaf_woman_tone2;
+ 1f9cf-1f3fd-200d-2640-fe0f: deaf_woman_tone3;
+ 1f9cf-1f3fe-200d-2640-fe0f: deaf_woman_tone4;
+ 1f9cf-1f3ff-200d-2640-fe0f: deaf_woman_tone5;
+ 1f9cf-200d-2642-fe0f: deaf_man;
+ 1f9cf-1f3fb-200d-2642-fe0f: deaf_man_tone1;
+ 1f9cf-1f3fc-200d-2642-fe0f: deaf_man_tone2;
+ 1f9cf-1f3fd-200d-2642-fe0f: deaf_man_tone3;
+ 1f9cf-1f3fe-200d-2642-fe0f: deaf_man_tone4;
+ 1f9cf-1f3ff-200d-2642-fe0f: deaf_man_tone5;
+ 1f926: person_facepalming;
+ 1f926-1f3fb: person_facepalming_tone1;
+ 1f926-1f3fc: person_facepalming_tone2;
+ 1f926-1f3fd: person_facepalming_tone3;
+ 1f926-1f3fe: person_facepalming_tone4;
+ 1f926-1f3ff: person_facepalming_tone5;
+ 1f926-200d-2640-fe0f: woman_facepalming;
+ 1f926-1f3fb-200d-2640-fe0f: woman_facepalming_tone1;
+ 1f926-1f3fc-200d-2640-fe0f: woman_facepalming_tone2;
+ 1f926-1f3fd-200d-2640-fe0f: woman_facepalming_tone3;
+ 1f926-1f3fe-200d-2640-fe0f: woman_facepalming_tone4;
+ 1f926-1f3ff-200d-2640-fe0f: woman_facepalming_tone5;
+ 1f926-200d-2642-fe0f: man_facepalming;
+ 1f926-1f3fb-200d-2642-fe0f: man_facepalming_tone1;
+ 1f926-1f3fc-200d-2642-fe0f: man_facepalming_tone2;
+ 1f926-1f3fd-200d-2642-fe0f: man_facepalming_tone3;
+ 1f926-1f3fe-200d-2642-fe0f: man_facepalming_tone4;
+ 1f926-1f3ff-200d-2642-fe0f: man_facepalming_tone5;
+ 1f937: person_shrugging;
+ 1f937-1f3fb: person_shrugging_tone1;
+ 1f937-1f3fc: person_shrugging_tone2;
+ 1f937-1f3fd: person_shrugging_tone3;
+ 1f937-1f3fe: person_shrugging_tone4;
+ 1f937-1f3ff: person_shrugging_tone5;
+ 1f937-200d-2640-fe0f: woman_shrugging;
+ 1f937-1f3fb-200d-2640-fe0f: woman_shrugging_tone1;
+ 1f937-1f3fc-200d-2640-fe0f: woman_shrugging_tone2;
+ 1f937-1f3fd-200d-2640-fe0f: woman_shrugging_tone3;
+ 1f937-1f3fe-200d-2640-fe0f: woman_shrugging_tone4;
+ 1f937-1f3ff-200d-2640-fe0f: woman_shrugging_tone5;
+ 1f937-200d-2642-fe0f: man_shrugging;
+ 1f937-1f3fb-200d-2642-fe0f: man_shrugging_tone1;
+ 1f937-1f3fc-200d-2642-fe0f: man_shrugging_tone2;
+ 1f937-1f3fd-200d-2642-fe0f: man_shrugging_tone3;
+ 1f937-1f3fe-200d-2642-fe0f: man_shrugging_tone4;
+ 1f937-1f3ff-200d-2642-fe0f: man_shrugging_tone5;
+ 1f64e: person_pouting;
+ 1f64e-1f3fb: person_pouting_tone1;
+ 1f64e-1f3fc: person_pouting_tone2;
+ 1f64e-1f3fd: person_pouting_tone3;
+ 1f64e-1f3fe: person_pouting_tone4;
+ 1f64e-1f3ff: person_pouting_tone5;
+ 1f64e-200d-2640-fe0f: woman_pouting;
+ 1f64e-1f3fb-200d-2640-fe0f: woman_pouting_tone1;
+ 1f64e-1f3fc-200d-2640-fe0f: woman_pouting_tone2;
+ 1f64e-1f3fd-200d-2640-fe0f: woman_pouting_tone3;
+ 1f64e-1f3fe-200d-2640-fe0f: woman_pouting_tone4;
+ 1f64e-1f3ff-200d-2640-fe0f: woman_pouting_tone5;
+ 1f64e-200d-2642-fe0f: man_pouting;
+ 1f64e-1f3fb-200d-2642-fe0f: man_pouting_tone1;
+ 1f64e-1f3fc-200d-2642-fe0f: man_pouting_tone2;
+ 1f64e-1f3fd-200d-2642-fe0f: man_pouting_tone3;
+ 1f64e-1f3fe-200d-2642-fe0f: man_pouting_tone4;
+ 1f64e-1f3ff-200d-2642-fe0f: man_pouting_tone5;
+ 1f64d: person_frowning;
+ 1f64d-1f3fb: person_frowning_tone1;
+ 1f64d-1f3fc: person_frowning_tone2;
+ 1f64d-1f3fd: person_frowning_tone3;
+ 1f64d-1f3fe: person_frowning_tone4;
+ 1f64d-1f3ff: person_frowning_tone5;
+ 1f64d-200d-2640-fe0f: woman_frowning;
+ 1f64d-1f3fb-200d-2640-fe0f: woman_frowning_tone1;
+ 1f64d-1f3fc-200d-2640-fe0f: woman_frowning_tone2;
+ 1f64d-1f3fd-200d-2640-fe0f: woman_frowning_tone3;
+ 1f64d-1f3fe-200d-2640-fe0f: woman_frowning_tone4;
+ 1f64d-1f3ff-200d-2640-fe0f: woman_frowning_tone5;
+ 1f64d-200d-2642-fe0f: man_frowning;
+ 1f64d-1f3fb-200d-2642-fe0f: man_frowning_tone1;
+ 1f64d-1f3fc-200d-2642-fe0f: man_frowning_tone2;
+ 1f64d-1f3fd-200d-2642-fe0f: man_frowning_tone3;
+ 1f64d-1f3fe-200d-2642-fe0f: man_frowning_tone4;
+ 1f64d-1f3ff-200d-2642-fe0f: man_frowning_tone5;
+ 1f487: person_getting_haircut;
+ 1f487-1f3fb: person_getting_haircut_tone1;
+ 1f487-1f3fc: person_getting_haircut_tone2;
+ 1f487-1f3fd: person_getting_haircut_tone3;
+ 1f487-1f3fe: person_getting_haircut_tone4;
+ 1f487-1f3ff: person_getting_haircut_tone5;
+ 1f487-200d-2640-fe0f: woman_getting_haircut;
+ 1f487-1f3fb-200d-2640-fe0f: woman_getting_haircut_tone1;
+ 1f487-1f3fc-200d-2640-fe0f: woman_getting_haircut_tone2;
+ 1f487-1f3fd-200d-2640-fe0f: woman_getting_haircut_tone3;
+ 1f487-1f3fe-200d-2640-fe0f: woman_getting_haircut_tone4;
+ 1f487-1f3ff-200d-2640-fe0f: woman_getting_haircut_tone5;
+ 1f487-200d-2642-fe0f: man_getting_haircut;
+ 1f487-1f3fb-200d-2642-fe0f: man_getting_haircut_tone1;
+ 1f487-1f3fc-200d-2642-fe0f: man_getting_haircut_tone2;
+ 1f487-1f3fd-200d-2642-fe0f: man_getting_haircut_tone3;
+ 1f487-1f3fe-200d-2642-fe0f: man_getting_haircut_tone4;
+ 1f487-1f3ff-200d-2642-fe0f: man_getting_haircut_tone5;
+ 1f486: person_getting_massage;
+ 1f486-1f3fb: person_getting_massage_tone1;
+ 1f486-1f3fc: person_getting_massage_tone2;
+ 1f486-1f3fd: person_getting_massage_tone3;
+ 1f486-1f3fe: person_getting_massage_tone4;
+ 1f486-1f3ff: person_getting_massage_tone5;
+ 1f486-200d-2640-fe0f: woman_getting_face_massage;
+ 1f486-1f3fb-200d-2640-fe0f: woman_getting_face_massage_tone1;
+ 1f486-1f3fc-200d-2640-fe0f: woman_getting_face_massage_tone2;
+ 1f486-1f3fd-200d-2640-fe0f: woman_getting_face_massage_tone3;
+ 1f486-1f3fe-200d-2640-fe0f: woman_getting_face_massage_tone4;
+ 1f486-1f3ff-200d-2640-fe0f: woman_getting_face_massage_tone5;
+ 1f486-200d-2642-fe0f: man_getting_face_massage;
+ 1f486-1f3fb-200d-2642-fe0f: man_getting_face_massage_tone1;
+ 1f486-1f3fc-200d-2642-fe0f: man_getting_face_massage_tone2;
+ 1f486-1f3fd-200d-2642-fe0f: man_getting_face_massage_tone3;
+ 1f486-1f3fe-200d-2642-fe0f: man_getting_face_massage_tone4;
+ 1f486-1f3ff-200d-2642-fe0f: man_getting_face_massage_tone5;
+ 1f9d6: person_in_steamy_room;
+ 1f9d6-1f3fb: person_in_steamy_room_tone1;
+ 1f9d6-1f3fc: person_in_steamy_room_tone2;
+ 1f9d6-1f3fd: person_in_steamy_room_tone3;
+ 1f9d6-1f3fe: person_in_steamy_room_tone4;
+ 1f9d6-1f3ff: person_in_steamy_room_tone5;
+ 1f9d6-200d-2640-fe0f: woman_in_steamy_room;
+ 1f9d6-1f3fb-200d-2640-fe0f: woman_in_steamy_room_tone1;
+ 1f9d6-1f3fc-200d-2640-fe0f: woman_in_steamy_room_tone2;
+ 1f9d6-1f3fd-200d-2640-fe0f: woman_in_steamy_room_tone3;
+ 1f9d6-1f3fe-200d-2640-fe0f: woman_in_steamy_room_tone4;
+ 1f9d6-1f3ff-200d-2640-fe0f: woman_in_steamy_room_tone5;
+ 1f9d6-200d-2642-fe0f: man_in_steamy_room;
+ 1f9d6-1f3fb-200d-2642-fe0f: man_in_steamy_room_tone1;
+ 1f9d6-1f3fc-200d-2642-fe0f: man_in_steamy_room_tone2;
+ 1f9d6-1f3fd-200d-2642-fe0f: man_in_steamy_room_tone3;
+ 1f9d6-1f3fe-200d-2642-fe0f: man_in_steamy_room_tone4;
+ 1f9d6-1f3ff-200d-2642-fe0f: man_in_steamy_room_tone5;
+ 1f485: nail_care;
+ 1f485-1f3fb: nail_care_tone1;
+ 1f485-1f3fc: nail_care_tone2;
+ 1f485-1f3fd: nail_care_tone3;
+ 1f485-1f3fe: nail_care_tone4;
+ 1f485-1f3ff: nail_care_tone5;
+ 1f933: selfie;
+ 1f933-1f3fb: selfie_tone1;
+ 1f933-1f3fc: selfie_tone2;
+ 1f933-1f3fd: selfie_tone3;
+ 1f933-1f3fe: selfie_tone4;
+ 1f933-1f3ff: selfie_tone5;
+ 1f483: dancer;
+ 1f483-1f3fb: dancer_tone1;
+ 1f483-1f3fc: dancer_tone2;
+ 1f483-1f3fd: dancer_tone3;
+ 1f483-1f3fe: dancer_tone4;
+ 1f483-1f3ff: dancer_tone5;
+ 1f57a: man_dancing;
+ 1f57a-1f3fb: man_dancing_tone1;
+ 1f57a-1f3fc: man_dancing_tone2;
+ 1f57a-1f3fd: man_dancing_tone3;
+ 1f57a-1f3ff: man_dancing_tone5;
+ 1f57a-1f3fe: man_dancing_tone4;
+ 1f46f: people_with_bunny_ears_partying;
+ 1f46f-200d-2640-fe0f: women_with_bunny_ears_partying;
+ 1f46f-200d-2642-fe0f: men_with_bunny_ears_partying;
+ 1f574: levitate;
+ 1f574-1f3fb: levitate_tone1;
+ 1f574-1f3fc: levitate_tone2;
+ 1f574-1f3fd: levitate_tone3;
+ 1f574-1f3fe: levitate_tone4;
+ 1f574-1f3ff: levitate_tone5;
+ 1f6b6: person_walking;
+ 1f6b6-1f3fb: person_walking_tone1;
+ 1f6b6-1f3fc: person_walking_tone2;
+ 1f6b6-1f3fd: person_walking_tone3;
+ 1f6b6-1f3fe: person_walking_tone4;
+ 1f6b6-1f3ff: person_walking_tone5;
+ 1f6b6-200d-2640-fe0f: woman_walking;
+ 1f6b6-1f3fb-200d-2640-fe0f: woman_walking_tone1;
+ 1f6b6-1f3fc-200d-2640-fe0f: woman_walking_tone2;
+ 1f6b6-1f3fd-200d-2640-fe0f: woman_walking_tone3;
+ 1f6b6-1f3fe-200d-2640-fe0f: woman_walking_tone4;
+ 1f6b6-1f3ff-200d-2640-fe0f: woman_walking_tone5;
+ 1f6b6-200d-2642-fe0f: man_walking;
+ 1f6b6-1f3fb-200d-2642-fe0f: man_walking_tone1;
+ 1f6b6-1f3fc-200d-2642-fe0f: man_walking_tone2;
+ 1f6b6-1f3fd-200d-2642-fe0f: man_walking_tone3;
+ 1f6b6-1f3fe-200d-2642-fe0f: man_walking_tone4;
+ 1f6b6-1f3ff-200d-2642-fe0f: man_walking_tone5;
+ 1f3c3: person_running;
+ 1f3c3-1f3fb: person_running_tone1;
+ 1f3c3-1f3fc: person_running_tone2;
+ 1f3c3-1f3fd: person_running_tone3;
+ 1f3c3-1f3fe: person_running_tone4;
+ 1f3c3-1f3ff: person_running_tone5;
+ 1f3c3-200d-2640-fe0f: woman_running;
+ 1f3c3-1f3fb-200d-2640-fe0f: woman_running_tone1;
+ 1f3c3-1f3fc-200d-2640-fe0f: woman_running_tone2;
+ 1f3c3-1f3fd-200d-2640-fe0f: woman_running_tone3;
+ 1f3c3-1f3fe-200d-2640-fe0f: woman_running_tone4;
+ 1f3c3-1f3ff-200d-2640-fe0f: woman_running_tone5;
+ 1f3c3-200d-2642-fe0f: man_running;
+ 1f3c3-1f3fb-200d-2642-fe0f: man_running_tone1;
+ 1f3c3-1f3fc-200d-2642-fe0f: man_running_tone2;
+ 1f3c3-1f3fd-200d-2642-fe0f: man_running_tone3;
+ 1f3c3-1f3fe-200d-2642-fe0f: man_running_tone4;
+ 1f3c3-1f3ff-200d-2642-fe0f: man_running_tone5;
+ 1f9cd: person_standing;
+ 1f9cd-1f3fb: person_standing_tone1;
+ 1f9cd-1f3fc: person_standing_tone2;
+ 1f9cd-1f3fd: person_standing_tone3;
+ 1f9cd-1f3fe: person_standing_tone4;
+ 1f9cd-1f3ff: person_standing_tone5;
+ 1f9cd-200d-2640-fe0f: woman_standing;
+ 1f9cd-1f3fb-200d-2640-fe0f: woman_standing_tone1;
+ 1f9cd-1f3fc-200d-2640-fe0f: woman_standing_tone2;
+ 1f9cd-1f3fd-200d-2640-fe0f: woman_standing_tone3;
+ 1f9cd-1f3fe-200d-2640-fe0f: woman_standing_tone4;
+ 1f9cd-1f3ff-200d-2640-fe0f: woman_standing_tone5;
+ 1f9cd-200d-2642-fe0f: man_standing;
+ 1f9cd-1f3fb-200d-2642-fe0f: man_standing_tone1;
+ 1f9cd-1f3fc-200d-2642-fe0f: man_standing_tone2;
+ 1f9cd-1f3fd-200d-2642-fe0f: man_standing_tone3;
+ 1f9cd-1f3fe-200d-2642-fe0f: man_standing_tone4;
+ 1f9cd-1f3ff-200d-2642-fe0f: man_standing_tone5;
+ 1f9ce: person_kneeling;
+ 1f9ce-1f3fb: person_kneeling_tone1;
+ 1f9ce-1f3fc: person_kneeling_tone2;
+ 1f9ce-1f3fd: person_kneeling_tone3;
+ 1f9ce-1f3fe: person_kneeling_tone4;
+ 1f9ce-1f3ff: person_kneeling_tone5;
+ 1f9ce-200d-2640-fe0f: woman_kneeling;
+ 1f9ce-1f3fb-200d-2640-fe0f: woman_kneeling_tone1;
+ 1f9ce-1f3fc-200d-2640-fe0f: woman_kneeling_tone2;
+ 1f9ce-1f3fd-200d-2640-fe0f: woman_kneeling_tone3;
+ 1f9ce-1f3fe-200d-2640-fe0f: woman_kneeling_tone4;
+ 1f9ce-1f3ff-200d-2640-fe0f: woman_kneeling_tone5;
+ 1f9ce-200d-2642-fe0f: man_kneeling;
+ 1f9ce-1f3fb-200d-2642-fe0f: man_kneeling_tone1;
+ 1f9ce-1f3fc-200d-2642-fe0f: man_kneeling_tone2;
+ 1f9ce-1f3fd-200d-2642-fe0f: man_kneeling_tone3;
+ 1f9ce-1f3fe-200d-2642-fe0f: man_kneeling_tone4;
+ 1f9ce-1f3ff-200d-2642-fe0f: man_kneeling_tone5;
+ 1f469-200d-1f9af: woman_with_probing_cane;
+ 1f469-1f3fb-200d-1f9af: woman_with_probing_cane_tone1;
+ 1f469-1f3fc-200d-1f9af: woman_with_probing_cane_tone2;
+ 1f469-1f3fd-200d-1f9af: woman_with_probing_cane_tone3;
+ 1f469-1f3fe-200d-1f9af: woman_with_probing_cane_tone4;
+ 1f469-1f3ff-200d-1f9af: woman_with_probing_cane_tone5;
+ 1f468-200d-1f9af: man_with_probing_cane;
+ 1f468-1f3fb-200d-1f9af: man_with_probing_cane_tone1;
+ 1f468-1f3fc-200d-1f9af: man_with_probing_cane_tone2;
+ 1f468-1f3fd-200d-1f9af: man_with_probing_cane_tone3;
+ 1f468-1f3fe-200d-1f9af: man_with_probing_cane_tone4;
+ 1f468-1f3ff-200d-1f9af: man_with_probing_cane_tone5;
+ 1f469-200d-1f9bc: woman_in_motorized_wheelchair;
+ 1f469-1f3fb-200d-1f9bc: woman_in_motorized_wheelchair_tone1;
+ 1f469-1f3fc-200d-1f9bc: woman_in_motorized_wheelchair_tone2;
+ 1f469-1f3fd-200d-1f9bc: woman_in_motorized_wheelchair_tone3;
+ 1f469-1f3fe-200d-1f9bc: woman_in_motorized_wheelchair_tone4;
+ 1f469-1f3ff-200d-1f9bc: woman_in_motorized_wheelchair_tone5;
+ 1f468-200d-1f9bc: man_in_motorized_wheelchair;
+ 1f468-1f3fb-200d-1f9bc: man_in_motorized_wheelchair_tone1;
+ 1f468-1f3fc-200d-1f9bc: man_in_motorized_wheelchair_tone2;
+ 1f468-1f3fd-200d-1f9bc: man_in_motorized_wheelchair_tone3;
+ 1f468-1f3fe-200d-1f9bc: man_in_motorized_wheelchair_tone4;
+ 1f468-1f3ff-200d-1f9bc: man_in_motorized_wheelchair_tone5;
+ 1f469-200d-1f9bd: woman_in_manual_wheelchair;
+ 1f469-1f3fb-200d-1f9bd: woman_in_manual_wheelchair_tone1;
+ 1f469-1f3fc-200d-1f9bd: woman_in_manual_wheelchair_tone2;
+ 1f469-1f3fd-200d-1f9bd: woman_in_manual_wheelchair_tone3;
+ 1f469-1f3fe-200d-1f9bd: woman_in_manual_wheelchair_tone4;
+ 1f469-1f3ff-200d-1f9bd: woman_in_manual_wheelchair_tone5;
+ 1f468-200d-1f9bd: man_in_manual_wheelchair;
+ 1f468-1f3fb-200d-1f9bd: man_in_manual_wheelchair_tone1;
+ 1f468-1f3fc-200d-1f9bd: man_in_manual_wheelchair_tone2;
+ 1f468-1f3fd-200d-1f9bd: man_in_manual_wheelchair_tone3;
+ 1f468-1f3fe-200d-1f9bd: man_in_manual_wheelchair_tone4;
+ 1f468-1f3ff-200d-1f9bd: man_in_manual_wheelchair_tone5;
+ 1f9d1-200d-1f91d-200d-1f9d1: people_holding_hands;
+ 1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone1;
+ 1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone2;
+ 1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone2_tone1;
+ 1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd: people_holding_hands_tone3;
+ 1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone3_tone1;
+ 1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone3_tone2;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe: people_holding_hands_tone4;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone4_tone1;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone4_tone2;
+ 1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd: people_holding_hands_tone4_tone3;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff: people_holding_hands_tone5;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb: people_holding_hands_tone5_tone1;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc: people_holding_hands_tone5_tone2;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd: people_holding_hands_tone5_tone3;
+ 1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe: people_holding_hands_tone5_tone4;
+ 1f46b: couple;
+ 1f46b-1f3fb: woman_and_man_holding_hands_tone1;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone1_tone2;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone1_tone3;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone1_tone4;
+ 1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone1_tone5;
+ 1f46b-1f3fc: woman_and_man_holding_hands_tone2;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone2_tone1;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone2_tone3;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone2_tone4;
+ 1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone2_tone5;
+ 1f46b-1f3fd: woman_and_man_holding_hands_tone3;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone3_tone1;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone3_tone2;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone3_tone4;
+ 1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone3_tone5;
+ 1f46b-1f3fe: woman_and_man_holding_hands_tone4;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone4_tone1;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone4_tone2;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone4_tone3;
+ 1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff: woman_and_man_holding_hands_tone4_tone5;
+ 1f46b-1f3ff: woman_and_man_holding_hands_tone5;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb: woman_and_man_holding_hands_tone5_tone1;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc: woman_and_man_holding_hands_tone5_tone2;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd: woman_and_man_holding_hands_tone5_tone3;
+ 1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe: woman_and_man_holding_hands_tone5_tone4;
+ 1f46d: two_women_holding_hands;
+ 1f46d-1f3fb: women_holding_hands_tone1;
+ 1f46d-1f3fc: women_holding_hands_tone2;
+ 1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone2_tone1;
+ 1f46d-1f3fd: women_holding_hands_tone3;
+ 1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone3_tone1;
+ 1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc: women_holding_hands_tone3_tone2;
+ 1f46d-1f3fe: women_holding_hands_tone4;
+ 1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone4_tone1;
+ 1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc: women_holding_hands_tone4_tone2;
+ 1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd: women_holding_hands_tone4_tone3;
+ 1f46d-1f3ff: women_holding_hands_tone5;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb: women_holding_hands_tone5_tone1;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc: women_holding_hands_tone5_tone2;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd: women_holding_hands_tone5_tone3;
+ 1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe: women_holding_hands_tone5_tone4;
+ 1f46c: two_men_holding_hands;
+ 1f46c-1f3fb: men_holding_hands_tone1;
+ 1f46c-1f3fc: men_holding_hands_tone2;
+ 1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone2_tone1;
+ 1f46c-1f3fd: men_holding_hands_tone3;
+ 1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone3_tone1;
+ 1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc: men_holding_hands_tone3_tone2;
+ 1f46c-1f3fe: men_holding_hands_tone4;
+ 1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone4_tone1;
+ 1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc: men_holding_hands_tone4_tone2;
+ 1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd: men_holding_hands_tone4_tone3;
+ 1f46c-1f3ff: men_holding_hands_tone5;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb: men_holding_hands_tone5_tone1;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc: men_holding_hands_tone5_tone2;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd: men_holding_hands_tone5_tone3;
+ 1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe: men_holding_hands_tone5_tone4;
+ 1f491: couple_with_heart;
+ 1f469-200d-2764-fe0f-200d-1f468: couple_with_heart_woman_man;
+ 1f469-200d-2764-fe0f-200d-1f469: couple_ww;
+ 1f468-200d-2764-fe0f-200d-1f468: couple_mm;
+ 1f48f: couplekiss;
+ 1f469-200d-2764-fe0f-200d-1f48b-200d-1f468: kiss_woman_man;
+ 1f469-200d-2764-fe0f-200d-1f48b-200d-1f469: kiss_ww;
+ 1f468-200d-2764-fe0f-200d-1f48b-200d-1f468: kiss_mm;
+ 1f46a: family;
+ 1f468-200d-1f469-200d-1f466: family_man_woman_boy;
+ 1f468-200d-1f469-200d-1f467: family_mwg;
+ 1f468-200d-1f469-200d-1f467-200d-1f466: family_mwgb;
+ 1f468-200d-1f469-200d-1f466-200d-1f466: family_mwbb;
+ 1f468-200d-1f469-200d-1f467-200d-1f467: family_mwgg;
+ 1f469-200d-1f469-200d-1f466: family_wwb;
+ 1f469-200d-1f469-200d-1f467: family_wwg;
+ 1f469-200d-1f469-200d-1f467-200d-1f466: family_wwgb;
+ 1f469-200d-1f469-200d-1f466-200d-1f466: family_wwbb;
+ 1f469-200d-1f469-200d-1f467-200d-1f467: family_wwgg;
+ 1f468-200d-1f468-200d-1f466: family_mmb;
+ 1f468-200d-1f468-200d-1f467: family_mmg;
+ 1f468-200d-1f468-200d-1f467-200d-1f466: family_mmgb;
+ 1f468-200d-1f468-200d-1f466-200d-1f466: family_mmbb;
+ 1f468-200d-1f468-200d-1f467-200d-1f467: family_mmgg;
+ 1f469-200d-1f466: family_woman_boy;
+ 1f469-200d-1f467: family_woman_girl;
+ 1f469-200d-1f467-200d-1f466: family_woman_girl_boy;
+ 1f469-200d-1f466-200d-1f466: family_woman_boy_boy;
+ 1f469-200d-1f467-200d-1f467: family_woman_girl_girl;
+ 1f468-200d-1f466: family_man_boy;
+ 1f468-200d-1f467: family_man_girl;
+ 1f468-200d-1f467-200d-1f466: family_man_girl_boy;
+ 1f468-200d-1f466-200d-1f466: family_man_boy_boy;
+ 1f468-200d-1f467-200d-1f467: family_man_girl_girl;
+ 1f9f6: yarn;
+ 1f9f5: thread;
+ 1f9e5: coat;
+ 1f97c: lab_coat;
+ 1f9ba: safety_vest;
+ 1f45a: womans_clothes;
+ 1f455: shirt;
+ 1f456: jeans;
+ 1fa73: shorts;
+ 1f454: necktie;
+ 1f457: dress;
+ 1f459: bikini;
+ 1fa71: one_piece_swimsuit;
+ 1f458: kimono;
+ 1f97b: sari;
+ 1f97f: womans_flat_shoe;
+ 1f460: high_heel;
+ 1f461: sandal;
+ 1f462: boot;
+ 1fa70: ballet_shoes;
+ 1f45e: mans_shoe;
+ 1f45f: athletic_shoe;
+ 1f97e: hiking_boot;
+ 1fa72: briefs;
+ 1f9e6: socks;
+ 1f9e4: gloves;
+ 1f9e3: scarf;
+ 1f3a9: tophat;
+ 1f9e2: billed_cap;
+ 1f452: womans_hat;
+ 1f393: mortar_board;
+ 26d1: helmet_with_cross;
+ 1f451: crown;
+ 1f48d: ring;
+ 1f45d: pouch;
+ 1f45b: purse;
+ 1f45c: handbag;
+ 1f4bc: briefcase;
+ 1f392: school_satchel;
+ 1f9f3: luggage;
+ 1f453: eyeglasses;
+ 1f576: dark_sunglasses;
+ 1f97d: goggles;
+ 1f93f: diving_mask;
+ 1f302: closed_umbrella;
+ 1f9b1: curly_haired;
+ 1f9b0: red_haired;
+ 1f9b3: white_haired;
+ 1f9b2: bald;
+ 1f697: red_car;
+ 1f695: taxi;
+ 1f699: blue_car;
+ 1f68c: bus;
+ 1f68e: trolleybus;
+ 1f3ce: race_car;
+ 1f693: police_car;
+ 1f691: ambulance;
+ 1f692: fire_engine;
+ 1f690: minibus;
+ 1f69a: truck;
+ 1f69b: articulated_lorry;
+ 1f69c: tractor;
+ 1f6fa: auto_rickshaw;
+ 1f6f5: motor_scooter;
+ 1f3cd: motorcycle;
+ 1f6f4: scooter;
+ 1f6b2: bike;
+ 1f9bc: motorized_wheelchair;
+ 1f9bd: manual_wheelchair;
+ 1f6a8: rotating_light;
+ 1f694: oncoming_police_car;
+ 1f68d: oncoming_bus;
+ 1f698: oncoming_automobile;
+ 1f696: oncoming_taxi;
+ 1f6a1: aerial_tramway;
+ 1f6a0: mountain_cableway;
+ 1f69f: suspension_railway;
+ 1f683: railway_car;
+ 1f68b: train;
+ 1f69e: mountain_railway;
+ 1f69d: monorail;
+ 1f684: bullettrain_side;
+ 1f685: bullettrain_front;
+ 1f688: light_rail;
+ 1f682: steam_locomotive;
+ 1f686: train2;
+ 1f687: metro;
+ 1f68a: tram;
+ 1f689: station;
+ 1f6eb: airplane_departure;
+ 1f6ec: airplane_arriving;
+ 1f6e9: airplane_small;
+ 1f4ba: seat;
+ 1f6f0: satellite_orbital;
+ 1f680: rocket;
+ 1f6f8: flying_saucer;
+ 1f681: helicopter;
+ 1f6f6: canoe;
+ 26f5: sailboat;
+ 1f6a4: speedboat;
+ 1f6e5: motorboat;
+ 1f6f3: cruise_ship;
+ 26f4: ferry;
+ 1f6a2: ship;
+ 26fd: fuelpump;
+ 1f6a7: construction;
+ 1f6a6: vertical_traffic_light;
+ 1f6a5: traffic_light;
+ 1f68f: busstop;
+ 1f5fa: map;
+ 1f5ff: moyai;
+ 1f5fd: statue_of_liberty;
+ 1f5fc: tokyo_tower;
+ 1f3f0: european_castle;
+ 1f3ef: japanese_castle;
+ 1f3df: stadium;
+ 1f3a1: ferris_wheel;
+ 1f3a2: roller_coaster;
+ 1f3a0: carousel_horse;
+ 26f2: fountain;
+ 26f1: beach_umbrella;
+ 1f3d6: beach;
+ 1f3dd: island;
+ 1f3dc: desert;
+ 1f30b: volcano;
+ 26f0: mountain;
+ 1f3d4: mountain_snow;
+ 1f5fb: mount_fuji;
+ 1f3d5: camping;
+ 26fa: tent;
+ 1f3e0: house;
+ 1f3e1: house_with_garden;
+ 1f3d8: homes;
+ 1f3da: house_abandoned;
+ 1f3d7: construction_site;
+ 1f3ed: factory;
+ 1f3e2: office;
+ 1f3ec: department_store;
+ 1f3e3: post_office;
+ 1f3e4: european_post_office;
+ 1f3e5: hospital;
+ 1f3e6: bank;
+ 1f3e8: hotel;
+ 1f3ea: convenience_store;
+ 1f3eb: school;
+ 1f3e9: love_hotel;
+ 1f492: wedding;
+ 1f3db: classical_building;
+ 26ea: church;
+ 1f54c: mosque;
+ 1f6d5: hindu_temple;
+ 1f54d: synagogue;
+ 1f54b: kaaba;
+ 26e9: shinto_shrine;
+ 1f6e4: railway_track;
+ 1f6e3: motorway;
+ 1f5fe: japan;
+ 1f391: rice_scene;
+ 1f3de: park;
+ 1f305: sunrise;
+ 1f304: sunrise_over_mountains;
+ 1f320: stars;
+ 1f387: sparkler;
+ 1f386: fireworks;
+ 1f307: city_sunset;
+ 1f306: city_dusk;
+ 1f3d9: cityscape;
+ 1f303: night_with_stars;
+ 1f30c: milky_way;
+ 1f309: bridge_at_night;
+ 1f301: foggy;
+ 1f1ff: regional_indicator_z;
+ 1f1fe: regional_indicator_y;
+ 1f1fd: regional_indicator_x;
+ 1f1fc: regional_indicator_w;
+ 1f1fb: regional_indicator_v;
+ 1f1fa: regional_indicator_u;
+ 1f1f9: regional_indicator_t;
+ 1f1f8: regional_indicator_s;
+ 1f1f7: regional_indicator_r;
+ 1f1f6: regional_indicator_q;
+ 1f1f5: regional_indicator_p;
+ 1f1f4: regional_indicator_o;
+ 1f1f3: regional_indicator_n;
+ 1f1f2: regional_indicator_m;
+ 1f1f1: regional_indicator_l;
+ 1f1f0: regional_indicator_k;
+ 1f1ef: regional_indicator_j;
+ 1f1ee: regional_indicator_i;
+ 1f1ed: regional_indicator_h;
+ 1f1ec: regional_indicator_g;
+ 1f1eb: regional_indicator_f;
+ 1f1ea: regional_indicator_e;
+ 1f1e9: regional_indicator_d;
+ 1f1e8: regional_indicator_c;
+ 1f1e7: regional_indicator_b;
+ 1f1e6: regional_indicator_a;
+ 1f3f3: flag_white;
+ 1f3f4: flag_black;
+ 1f3c1: checkered_flag;
+ 1f6a9: triangular_flag_on_post;
+ 1f3f3-fe0f-200d-1f308: rainbow_flag;
+ 1f3f4-200d-2620-fe0f: pirate_flag;
+ 1f1e6-1f1eb: flag_af;
+ 1f1e6-1f1fd: flag_ax;
+ 1f1e6-1f1f1: flag_al;
+ 1f1e9-1f1ff: flag_dz;
+ 1f1e6-1f1f8: flag_as;
+ 1f1e6-1f1e9: flag_ad;
+ 1f1e6-1f1f4: flag_ao;
+ 1f1e6-1f1ee: flag_ai;
+ 1f1e6-1f1f6: flag_aq;
+ 1f1e6-1f1ec: flag_ag;
+ 1f1e6-1f1f7: flag_ar;
+ 1f1e6-1f1f2: flag_am;
+ 1f1e6-1f1fc: flag_aw;
+ 1f1e6-1f1fa: flag_au;
+ 1f1e6-1f1f9: flag_at;
+ 1f1e6-1f1ff: flag_az;
+ 1f1e7-1f1f8: flag_bs;
+ 1f1e7-1f1ed: flag_bh;
+ 1f1e7-1f1e9: flag_bd;
+ 1f1e7-1f1e7: flag_bb;
+ 1f1e7-1f1fe: flag_by;
+ 1f1e7-1f1ea: flag_be;
+ 1f1e7-1f1ff: flag_bz;
+ 1f1e7-1f1ef: flag_bj;
+ 1f1e7-1f1f2: flag_bm;
+ 1f1e7-1f1f9: flag_bt;
+ 1f1e7-1f1f4: flag_bo;
+ 1f1e7-1f1e6: flag_ba;
+ 1f1e7-1f1fc: flag_bw;
+ 1f1e7-1f1f7: flag_br;
+ 1f1ee-1f1f4: flag_io;
+ 1f1fb-1f1ec: flag_vg;
+ 1f1e7-1f1f3: flag_bn;
+ 1f1e7-1f1ec: flag_bg;
+ 1f1e7-1f1eb: flag_bf;
+ 1f1e7-1f1ee: flag_bi;
+ 1f1f0-1f1ed: flag_kh;
+ 1f1e8-1f1f2: flag_cm;
+ 1f1e8-1f1e6: flag_ca;
+ 1f1ee-1f1e8: flag_ic;
+ 1f1e8-1f1fb: flag_cv;
+ 1f1e7-1f1f6: flag_bq;
+ 1f1f0-1f1fe: flag_ky;
+ 1f1e8-1f1eb: flag_cf;
+ 1f1f9-1f1e9: flag_td;
+ 1f1e8-1f1f1: flag_cl;
+ 1f1e8-1f1f3: flag_cn;
+ 1f1e8-1f1fd: flag_cx;
+ 1f1e8-1f1e8: flag_cc;
+ 1f1e8-1f1f4: flag_co;
+ 1f1f0-1f1f2: flag_km;
+ 1f1e8-1f1ec: flag_cg;
+ 1f1e8-1f1e9: flag_cd;
+ 1f1e8-1f1f0: flag_ck;
+ 1f1e8-1f1f7: flag_cr;
+ 1f1e8-1f1ee: flag_ci;
+ 1f1ed-1f1f7: flag_hr;
+ 1f1e8-1f1fa: flag_cu;
+ 1f1e8-1f1fc: flag_cw;
+ 1f1e8-1f1fe: flag_cy;
+ 1f1e8-1f1ff: flag_cz;
+ 1f1e9-1f1f0: flag_dk;
+ 1f1e9-1f1ef: flag_dj;
+ 1f1e9-1f1f2: flag_dm;
+ 1f1e9-1f1f4: flag_do;
+ 1f1ea-1f1e8: flag_ec;
+ 1f1ea-1f1ec: flag_eg;
+ 1f1f8-1f1fb: flag_sv;
+ 1f1ec-1f1f6: flag_gq;
+ 1f1ea-1f1f7: flag_er;
+ 1f1ea-1f1ea: flag_ee;
+ 1f1ea-1f1f9: flag_et;
+ 1f1ea-1f1fa: flag_eu;
+ 1f1eb-1f1f0: flag_fk;
+ 1f1eb-1f1f4: flag_fo;
+ 1f1eb-1f1ef: flag_fj;
+ 1f1eb-1f1ee: flag_fi;
+ 1f1eb-1f1f7: flag_fr;
+ 1f1ec-1f1eb: flag_gf;
+ 1f1f5-1f1eb: flag_pf;
+ 1f1f9-1f1eb: flag_tf;
+ 1f1ec-1f1e6: flag_ga;
+ 1f1ec-1f1f2: flag_gm;
+ 1f1ec-1f1ea: flag_ge;
+ 1f1e9-1f1ea: flag_de;
+ 1f1ec-1f1ed: flag_gh;
+ 1f1ec-1f1ee: flag_gi;
+ 1f1ec-1f1f7: flag_gr;
+ 1f1ec-1f1f1: flag_gl;
+ 1f1ec-1f1e9: flag_gd;
+ 1f1ec-1f1f5: flag_gp;
+ 1f1ec-1f1fa: flag_gu;
+ 1f1ec-1f1f9: flag_gt;
+ 1f1ec-1f1ec: flag_gg;
+ 1f1ec-1f1f3: flag_gn;
+ 1f1ec-1f1fc: flag_gw;
+ 1f1ec-1f1fe: flag_gy;
+ 1f1ed-1f1f9: flag_ht;
+ 1f1ed-1f1f3: flag_hn;
+ 1f1ed-1f1f0: flag_hk;
+ 1f1ed-1f1fa: flag_hu;
+ 1f1ee-1f1f8: flag_is;
+ 1f1ee-1f1f3: flag_in;
+ 1f1ee-1f1e9: flag_id;
+ 1f1ee-1f1f7: flag_ir;
+ 1f1ee-1f1f6: flag_iq;
+ 1f1ee-1f1ea: flag_ie;
+ 1f1ee-1f1f2: flag_im;
+ 1f1ee-1f1f1: flag_il;
+ 1f1ee-1f1f9: flag_it;
+ 1f1ef-1f1f2: flag_jm;
+ 1f1ef-1f1f5: flag_jp;
+ 1f38c: crossed_flags;
+ 1f1ef-1f1ea: flag_je;
+ 1f1ef-1f1f4: flag_jo;
+ 1f1f0-1f1ff: flag_kz;
+ 1f1f0-1f1ea: flag_ke;
+ 1f1f0-1f1ee: flag_ki;
+ 1f1fd-1f1f0: flag_xk;
+ 1f1f0-1f1fc: flag_kw;
+ 1f1f0-1f1ec: flag_kg;
+ 1f1f1-1f1e6: flag_la;
+ 1f1f1-1f1fb: flag_lv;
+ 1f1f1-1f1e7: flag_lb;
+ 1f1f1-1f1f8: flag_ls;
+ 1f1f1-1f1f7: flag_lr;
+ 1f1f1-1f1fe: flag_ly;
+ 1f1f1-1f1ee: flag_li;
+ 1f1f1-1f1f9: flag_lt;
+ 1f1f1-1f1fa: flag_lu;
+ 1f1f2-1f1f4: flag_mo;
+ 1f1f2-1f1f0: flag_mk;
+ 1f1f2-1f1ec: flag_mg;
+ 1f1f2-1f1fc: flag_mw;
+ 1f1f2-1f1fe: flag_my;
+ 1f1f2-1f1fb: flag_mv;
+ 1f1f2-1f1f1: flag_ml;
+ 1f1f2-1f1f9: flag_mt;
+ 1f1f2-1f1ed: flag_mh;
+ 1f1f2-1f1f6: flag_mq;
+ 1f1f2-1f1f7: flag_mr;
+ 1f1f2-1f1fa: flag_mu;
+ 1f1fe-1f1f9: flag_yt;
+ 1f1f2-1f1fd: flag_mx;
+ 1f1eb-1f1f2: flag_fm;
+ 1f1f2-1f1e9: flag_md;
+ 1f1f2-1f1e8: flag_mc;
+ 1f1f2-1f1f3: flag_mn;
+ 1f1f2-1f1ea: flag_me;
+ 1f1f2-1f1f8: flag_ms;
+ 1f1f2-1f1e6: flag_ma;
+ 1f1f2-1f1ff: flag_mz;
+ 1f1f2-1f1f2: flag_mm;
+ 1f1f3-1f1e6: flag_na;
+ 1f1f3-1f1f7: flag_nr;
+ 1f1f3-1f1f5: flag_np;
+ 1f1f3-1f1f1: flag_nl;
+ 1f1f3-1f1e8: flag_nc;
+ 1f1f3-1f1ff: flag_nz;
+ 1f1f3-1f1ee: flag_ni;
+ 1f1f3-1f1ea: flag_ne;
+ 1f1f3-1f1ec: flag_ng;
+ 1f1f3-1f1fa: flag_nu;
+ 1f1f3-1f1eb: flag_nf;
+ 1f1f0-1f1f5: flag_kp;
+ 1f1f2-1f1f5: flag_mp;
+ 1f1f3-1f1f4: flag_no;
+ 1f1f4-1f1f2: flag_om;
+ 1f1f5-1f1f0: flag_pk;
+ 1f1f5-1f1fc: flag_pw;
+ 1f1f5-1f1f8: flag_ps;
+ 1f1f5-1f1e6: flag_pa;
+ 1f1f5-1f1ec: flag_pg;
+ 1f1f5-1f1fe: flag_py;
+ 1f1f5-1f1ea: flag_pe;
+ 1f1f5-1f1ed: flag_ph;
+ 1f1f5-1f1f3: flag_pn;
+ 1f1f5-1f1f1: flag_pl;
+ 1f1f5-1f1f9: flag_pt;
+ 1f1f5-1f1f7: flag_pr;
+ 1f1f6-1f1e6: flag_qa;
+ 1f1f7-1f1ea: flag_re;
+ 1f1f7-1f1f4: flag_ro;
+ 1f1f7-1f1fa: flag_ru;
+ 1f1f7-1f1fc: flag_rw;
+ 1f1fc-1f1f8: flag_ws;
+ 1f1f8-1f1f2: flag_sm;
+ 1f1f8-1f1f9: flag_st;
+ 1f1f8-1f1e6: flag_sa;
+ 1f1f8-1f1f3: flag_sn;
+ 1f1f7-1f1f8: flag_rs;
+ 1f1f8-1f1e8: flag_sc;
+ 1f1f8-1f1f1: flag_sl;
+ 1f1f8-1f1ec: flag_sg;
+ 1f1f8-1f1fd: flag_sx;
+ 1f1f8-1f1f0: flag_sk;
+ 1f1f8-1f1ee: flag_si;
+ 1f1ec-1f1f8: flag_gs;
+ 1f1f8-1f1e7: flag_sb;
+ 1f1f8-1f1f4: flag_so;
+ 1f1ff-1f1e6: flag_za;
+ 1f1f0-1f1f7: flag_kr;
+ 1f1f8-1f1f8: flag_ss;
+ 1f1ea-1f1f8: flag_es;
+ 1f1f1-1f1f0: flag_lk;
+ 1f1e7-1f1f1: flag_bl;
+ 1f1f8-1f1ed: flag_sh;
+ 1f1f0-1f1f3: flag_kn;
+ 1f1f1-1f1e8: flag_lc;
+ 1f1f5-1f1f2: flag_pm;
+ 1f1fb-1f1e8: flag_vc;
+ 1f1f8-1f1e9: flag_sd;
+ 1f1f8-1f1f7: flag_sr;
+ 1f1f8-1f1ff: flag_sz;
+ 1f1f8-1f1ea: flag_se;
+ 1f1e8-1f1ed: flag_ch;
+ 1f1f8-1f1fe: flag_sy;
+ 1f1f9-1f1fc: flag_tw;
+ 1f1f9-1f1ef: flag_tj;
+ 1f1f9-1f1ff: flag_tz;
+ 1f1f9-1f1ed: flag_th;
+ 1f1f9-1f1f1: flag_tl;
+ 1f1f9-1f1ec: flag_tg;
+ 1f1f9-1f1f0: flag_tk;
+ 1f1f9-1f1f4: flag_to;
+ 1f1f9-1f1f9: flag_tt;
+ 1f1f9-1f1f3: flag_tn;
+ 1f1f9-1f1f7: flag_tr;
+ 1f1f9-1f1f2: flag_tm;
+ 1f1f9-1f1e8: flag_tc;
+ 1f1fb-1f1ee: flag_vi;
+ 1f1f9-1f1fb: flag_tv;
+ 1f1fa-1f1ec: flag_ug;
+ 1f1fa-1f1e6: flag_ua;
+ 1f1e6-1f1ea: flag_ae;
+ 1f1ec-1f1e7: flag_gb;
+ 1f3f4-e0067-e0062-e0065-e006e-e0067-e007f: england;
+ 1f3f4-e0067-e0062-e0073-e0063-e0074-e007f: scotland;
+ 1f3f4-e0067-e0062-e0077-e006c-e0073-e007f: wales;
+ 1f1fa-1f1f8: flag_us;
+ 1f1fa-1f1fe: flag_uy;
+ 1f1fa-1f1ff: flag_uz;
+ 1f1fb-1f1fa: flag_vu;
+ 1f1fb-1f1e6: flag_va;
+ 1f1fb-1f1ea: flag_ve;
+ 1f1fb-1f1f3: flag_vn;
+ 1f1fc-1f1eb: flag_wf;
+ 1f1ea-1f1ed: flag_eh;
+ 1f1fe-1f1ea: flag_ye;
+ 1f1ff-1f1f2: flag_zm;
+ 1f1ff-1f1fc: flag_zw;
+ 1f1e6-1f1e8: flag_ac;
+ 1f1e7-1f1fb: flag_bv;
+ 1f1e8-1f1f5: flag_cp;
+ 1f1ea-1f1e6: flag_ea;
+ 1f1e9-1f1ec: flag_dg;
+ 1f1ed-1f1f2: flag_hm;
+ 1f1f2-1f1eb: flag_mf;
+ 1f1f8-1f1ef: flag_sj;
+ 1f1f9-1f1e6: flag_ta;
+ 1f1fa-1f1f2: flag_um;
+ 1f1fa-1f1f3: united_nations;
+ 1f3fb: tone1;
+ 1f3fc: tone2;
+ 1f3fd: tone3;
+ 1f3fe: tone4;
+ 1f3ff: tone5;
+};
+
+@size-map: {
+ small: 1;
+ medium: 2;
+ large: 4;
+ big: 5;
+};
+
+each(@size-map, {
+ em[data-emoji].@{key} {
+ font-size: 1.5em * @value;
+ vertical-align: middle;
+ }
+});
+
+each(@emoji-map,{
+ & when (@variationEmojiColons) {
+ em[data-emoji=":@{value}:"]:before {
+ background-image: url("@{emojiPath}@{key}.@{emojiFileType}");
+ }
+ em[data-emoji="@{value}"]:before:extend(em[data-emoji=":@{value}:"]:before) when (@variationEmojiNoColons) {}
+ }
+ em[data-emoji="@{value}"]:before when (@variationEmojiNoColons) and not (@variationEmojiColons) {
+ background-image: url("@{emojiPath}@{key}.@{emojiFileType}");
+ }
+});
diff --git a/assets/semantic/src/themes/twitter/elements/emoji.variables b/assets/semantic/src/themes/twitter/elements/emoji.variables
new file mode 100644
index 0000000..02db3bc
--- /dev/null
+++ b/assets/semantic/src/themes/twitter/elements/emoji.variables
@@ -0,0 +1,18 @@
+/*******************************
+ Emoji
+*******************************/
+
+/*--------------
+ Path
+---------------*/
+@emojiPath: "https://twemoji.maxcdn.com/v/latest/72x72/";
+@emojiFileType: "png";
+
+/*--------------
+ Definition
+---------------*/
+
+/* Emoji Variables */
+@opacity: 1;
+@loadingDuration: 2s;
+@emojiLineHeight: @headerLineHeight;
diff --git a/assets/semantic/tasks/README.md b/assets/semantic/tasks/README.md
new file mode 100644
index 0000000..9a064c2
--- /dev/null
+++ b/assets/semantic/tasks/README.md
@@ -0,0 +1,17 @@
+## Tasks
+
+* Watch - Compile only changed files from source
+* Build - Build all files from source
+* Version - Output version number
+* Install - Run Installer to Set-up Paths
+
+## How to use
+
+These tasks can be imported into your own gulpfile allowing you to avoid using Semantic's build tools
+
+```javascript
+var
+ watch = require('path/to/semantic/tasks/watch')
+;
+gulp.task('watch ui', watch);
+```
diff --git a/assets/semantic/tasks/admin/components/create.js b/assets/semantic/tasks/admin/components/create.js
new file mode 100644
index 0000000..b89dfb1
--- /dev/null
+++ b/assets/semantic/tasks/admin/components/create.js
@@ -0,0 +1,319 @@
+/*******************************
+ Create Component Repos
+*******************************/
+
+/*
+ This will create individual component repositories for each SUI component
+
+ * copy component files from release
+ * create commonjs files as index.js for NPM release
+ * create release notes that filter only items related to component
+ * custom package.json file from template
+ * create bower.json from template
+ * create README from template
+ * create meteor.js file
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ fs = require('fs'),
+ path = require('path'),
+
+ // admin dependencies
+ concatFileNames = require('gulp-concat-filenames'),
+ flatten = require('gulp-flatten'),
+ jsonEditor = require('gulp-json-editor'),
+ plumber = require('gulp-plumber'),
+ rename = require('gulp-rename'),
+ replace = require('gulp-replace'),
+ tap = require('gulp-tap'),
+
+ // config
+ config = require('../../config/user'),
+ release = require('../../config/admin/release'),
+ project = require('../../config/project/release'),
+
+ // shorthand
+ version = project.version,
+ output = config.paths.output
+
+;
+
+
+module.exports = function(callback) {
+ var
+ stream,
+ index,
+ tasks = []
+ ;
+
+ for(index in release.components) {
+
+ var
+ component = release.components[index]
+ ;
+
+ // streams... designed to save time and make coding fun...
+ (function(component) {
+
+ var
+ outputDirectory = path.join(release.outputRoot, component),
+ isJavascript = fs.existsSync(output.compressed + component + '.js'),
+ isCSS = fs.existsSync(output.compressed + component + '.css'),
+ capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
+ packageName = release.packageRoot + component,
+ repoName = release.componentRepoRoot + capitalizedComponent,
+ gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
+ repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
+ concatSettings = {
+ newline : '',
+ root : outputDirectory,
+ prepend : " '",
+ append : "',"
+ },
+ regExp = {
+ match : {
+ // templated values
+ name : '{component}',
+ titleName : '{Component}',
+ version : '{version}',
+ files : '{files}',
+ // release notes
+ spacedVersions : /(###.*\n)\n+(?=###)/gm,
+ spacedLists : /(^- .*\n)\n+(?=^-)/gm,
+ trim : /^\s+|\s+$/g,
+ unrelatedNotes : new RegExp('^((?!(^.*(' + component + ').*$|###.*)).)*$', 'gmi'),
+ whitespace : /\n\s*\n\s*\n/gm,
+ // npm
+ componentExport : /(.*)\$\.fn\.\w+\s*=\s*function\(([^\)]*)\)\s*{/g,
+ componentReference: '$.fn.' + component,
+ settingsExport : /\$\.fn\.\w+\.settings\s*=/g,
+ settingsReference : /\$\.fn\.\w+\.settings/g,
+ trailingComma : /,(?=[^,]*$)/,
+ jQuery : /jQuery/g,
+ },
+ replace : {
+ // readme
+ name : component,
+ titleName : capitalizedComponent,
+ // release notes
+ spacedVersions : '',
+ spacedLists : '$1',
+ trim : '',
+ unrelatedNotes : '',
+ whitespace : '\n\n',
+ // npm
+ componentExport : 'var _module = module;\n$1module.exports = function($2) {',
+ componentReference: '_module.exports',
+ settingsExport : 'module.exports.settings =',
+ settingsReference : '_module.exports.settings',
+ jQuery : 'require("jquery")'
+ }
+ },
+ task = {
+ all : component + ' creating',
+ repo : component + ' create repo',
+ bower : component + ' create bower.json',
+ readme : component + ' create README',
+ npm : component + ' create NPM Module',
+ notes : component + ' create release notes',
+ composer : component + ' create composer.json',
+ package : component + ' create package.json',
+ meteor : component + ' create meteor package.js',
+ },
+ // paths to includable assets
+ manifest = {
+ assets : outputDirectory + '/assets/**/' + component + '?(s).*',
+ component : outputDirectory + '/' + component + '+(.js|.css)'
+ }
+ ;
+
+ // copy dist files into output folder adjusting asset paths
+ function copyDist() {
+ return gulp.src(release.source + component + '.*')
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(replace(release.paths.source, release.paths.output))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // create npm module
+ function createNpmModule() {
+ return gulp.src(release.source + component + '!(*.min|*.map).js')
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(replace(regExp.match.componentExport, regExp.replace.componentExport))
+ .pipe(replace(regExp.match.componentReference, regExp.replace.componentReference))
+ .pipe(replace(regExp.match.settingsExport, regExp.replace.settingsExport))
+ .pipe(replace(regExp.match.settingsReference, regExp.replace.settingsReference))
+ .pipe(replace(regExp.match.jQuery, regExp.replace.jQuery))
+ .pipe(rename('index.js'))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // create readme
+ function createReadme() {
+ return gulp.src(release.templates.readme)
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(replace(regExp.match.name, regExp.replace.name))
+ .pipe(replace(regExp.match.titleName, regExp.replace.titleName))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // extend bower.json
+ function extendBower() {
+ return gulp.src(release.templates.bower)
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(jsonEditor(function(bower) {
+ bower.name = packageName;
+ bower.description = capitalizedComponent + ' - Semantic UI';
+ if(isJavascript) {
+ if(isCSS) {
+ bower.main = [
+ component + '.js',
+ component + '.css'
+ ];
+ }
+ else {
+ bower.main = [
+ component + '.js'
+ ];
+ }
+ bower.dependencies = {
+ jquery: '>=1.8'
+ };
+ }
+ else {
+ bower.main = [
+ component + '.css'
+ ];
+ }
+ return bower;
+ }))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // extend package.json
+ function extendPackage() {
+ return gulp.src(release.templates.package)
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(jsonEditor(function(npm) {
+ if(isJavascript) {
+ npm.dependencies = {
+ jquery: 'x.x.x'
+ };
+ npm.main = 'index.js';
+ }
+ npm.name = packageName;
+ if(version) {
+ npm.version = version;
+ }
+ npm.title = 'Semantic UI - ' + capitalizedComponent;
+ npm.description = 'Single component release of ' + component;
+ npm.repository = {
+ type : 'git',
+ url : gitURL
+ };
+ return npm;
+ }))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // extend composer.json
+ function extendComposer(){
+ return gulp.src(release.templates.composer)
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(jsonEditor(function(composer) {
+ if(isJavascript) {
+ composer.dependencies = {
+ jquery: 'x.x.x'
+ };
+ composer.main = component + '.js';
+ }
+ composer.name = 'semantic/' + component;
+ if(version) {
+ composer.version = version;
+ }
+ composer.description = 'Single component release of ' + component;
+ return composer;
+ }))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // create release notes
+ function createReleaseNotes() {
+ return gulp.src(release.templates.notes)
+ .pipe(plumber())
+ .pipe(flatten())
+ // Remove release notes for lines not mentioning component
+ .pipe(replace(regExp.match.unrelatedNotes, regExp.replace.unrelatedNotes))
+ .pipe(replace(regExp.match.whitespace, regExp.replace.whitespace))
+ .pipe(replace(regExp.match.spacedVersions, regExp.replace.spacedVersions))
+ .pipe(replace(regExp.match.spacedLists, regExp.replace.spacedLists))
+ .pipe(replace(regExp.match.trim, regExp.replace.trim))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ }
+
+ // Creates meteor package.js
+ function createMeteorPackage() {
+ var
+ filenames = ''
+ ;
+ return gulp.src(manifest.component)
+ .pipe(concatFileNames('empty.txt', concatSettings))
+ .pipe(tap(function(file) {
+ filenames += file.contents;
+ }))
+ .on('end', function() {
+ gulp.src(manifest.assets)
+ .pipe(concatFileNames('empty.txt', concatSettings))
+ .pipe(tap(function(file) {
+ filenames += file.contents;
+ }))
+ .on('end', function() {
+ // remove trailing slash
+ filenames = filenames.replace(regExp.match.trailingComma, '').trim();
+ gulp.src(release.templates.meteor.component)
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(replace(regExp.match.name, regExp.replace.name))
+ .pipe(replace(regExp.match.titleName, regExp.replace.titleName))
+ .pipe(replace(regExp.match.version, version))
+ .pipe(replace(regExp.match.files, filenames))
+ .pipe(rename(release.files.meteor))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ })
+ ;
+ })
+ ;
+ }
+
+ tasks.push(gulp.series(
+ copyDist,
+ createNpmModule,
+ extendBower,
+ createReadme,
+ extendPackage,
+ extendComposer,
+ createReleaseNotes,
+ createMeteorPackage
+ ));
+ })(component);
+ }
+
+ gulp.series(...tasks)(callback);
+};
diff --git a/assets/semantic/tasks/admin/components/init.js b/assets/semantic/tasks/admin/components/init.js
new file mode 100644
index 0000000..352045f
--- /dev/null
+++ b/assets/semantic/tasks/admin/components/init.js
@@ -0,0 +1,169 @@
+/*******************************
+ Init Repos
+*******************************/
+
+/*
+
+ This task pulls the latest version of each component from GitHub
+
+ * Creates new repo if doesnt exist (locally & GitHub)
+ * Adds remote it doesnt exists
+ * Pulls latest changes from repo
+
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ del = require('del'),
+ fs = require('fs'),
+ path = require('path'),
+ git = require('gulp-git'),
+ mkdirp = require('mkdirp'),
+
+ // admin files
+ github = require('../../config/admin/github.js'),
+ release = require('../../config/admin/release'),
+ project = require('../../config/project/release'),
+
+
+ // oAuth configuration for GitHub
+ oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
+ ? require('../../config/admin/oauth')
+ : false,
+
+ // shorthand
+ version = project.version
+;
+
+module.exports = function(callback) {
+
+ var
+ index = -1,
+ total = release.components.length,
+ timer,
+ stream,
+ stepRepo
+ ;
+
+ if(!oAuth) {
+ console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
+ return;
+ }
+
+ // Do Git commands synchronously per component, to avoid issues
+ stepRepo = function() {
+
+ index = index + 1;
+
+ if(index >= total) {
+ callback();
+ return;
+ }
+
+ var
+ component = release.components[index],
+ outputDirectory = path.resolve(release.outputRoot + component),
+ capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
+ repoName = release.componentRepoRoot + capitalizedComponent,
+
+ gitOptions = { cwd: outputDirectory },
+ pullOptions = { args: '-q', cwd: outputDirectory, quiet: true },
+ resetOptions = { args: '-q --hard', cwd: outputDirectory, quiet: true },
+
+ gitURL = 'git@github.com:' + release.org + '/' + repoName + '.git',
+ repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
+ localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git'))
+ ;
+
+ console.log('Processing repository: ' + outputDirectory);
+
+ // create folder if doesn't exist
+ if( !fs.existsSync(outputDirectory) ) {
+ mkdirp.sync(outputDirectory);
+ }
+
+ // clean folder
+ if(release.outputRoot.search('../repos') == 0) {
+ console.info('Cleaning dir', outputDirectory);
+ del.sync([outputDirectory + '**/*'], {silent: true, force: true});
+ }
+
+ // set-up local repo
+ function setupRepo() {
+ if(localRepoSetup) {
+ addRemote();
+ }
+ else {
+ initRepo();
+ }
+ }
+
+ function initRepo() {
+ console.info('Initializing repository for ' + component);
+ git.init(gitOptions, function(error) {
+ if(error) {
+ console.error('Error initializing repo', error);
+ }
+ addRemote();
+ });
+ }
+
+ function createRepo() {
+ console.info('Creating GitHub repo ' + repoURL);
+ github.repos.createFromOrg({
+ org : release.org,
+ name : repoName,
+ homepage : release.homepage
+ }, function() {
+ setupRepo();
+ });
+ }
+
+ function addRemote() {
+ console.info('Adding remote origin as ' + gitURL);
+ git.addRemote('origin', gitURL, gitOptions, function(){
+ pullFiles();
+ });
+ }
+
+ function pullFiles() {
+ console.info('Pulling ' + component + ' files');
+ git.pull('origin', 'master', pullOptions, function(error) {
+ resetFiles();
+ });
+ }
+
+ function resetFiles() {
+ console.info('Resetting files to head');
+ git.reset('HEAD', resetOptions, function(error) {
+ nextRepo();
+ });
+ }
+
+ function nextRepo() {
+ //console.log('Sleeping for 1 second...');
+ // avoid rate throttling
+ global.clearTimeout(timer);
+ timer = global.setTimeout(function() {
+ stepRepo()
+ }, 0);
+ }
+
+
+ if(localRepoSetup) {
+ pullFiles();
+ }
+ else {
+ setupRepo();
+ // createRepo() only use to create remote repo (easier to do manually)
+ }
+
+ };
+
+ stepRepo();
+
+
+};
diff --git a/assets/semantic/tasks/admin/components/update.js b/assets/semantic/tasks/admin/components/update.js
new file mode 100644
index 0000000..25c4b29
--- /dev/null
+++ b/assets/semantic/tasks/admin/components/update.js
@@ -0,0 +1,182 @@
+/*******************************
+ Update Repos
+*******************************/
+
+/*
+
+ This task update all SUI individual component repos with new versions of components
+
+ * Commits changes from create repo
+ * Pushes changes to GitHub
+ * Tag new releases if version changed in main repo
+
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ fs = require('fs'),
+ path = require('path'),
+ git = require('gulp-git'),
+
+ // admin files
+ github = require('../../config/admin/github.js'),
+ release = require('../../config/admin/release'),
+ project = require('../../config/project/release'),
+
+
+ // oAuth configuration for GitHub
+ oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
+ ? require('../../config/admin/oauth')
+ : false,
+
+ // shorthand
+ version = project.version
+;
+
+module.exports = function(callback) {
+
+ var
+ index = -1,
+ total = release.components.length,
+ timer,
+ stream,
+ stepRepo
+ ;
+
+ if(!oAuth) {
+ console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
+ return;
+ }
+
+ // Do Git commands synchronously per component, to avoid issues
+ stepRepo = function() {
+
+ index = index + 1;
+ if(index >= total) {
+ callback();
+ return;
+ }
+
+ var
+ component = release.components[index],
+ outputDirectory = path.resolve(path.join(release.outputRoot, component)),
+ capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
+ repoName = release.componentRepoRoot + capitalizedComponent,
+
+ gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
+ repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
+
+ commitArgs = (oAuth.name !== undefined && oAuth.email !== undefined)
+ ? '--author "' + oAuth.name + ' <' + oAuth.email + '>"'
+ : '',
+
+ componentPackage = fs.existsSync(outputDirectory + 'package.json' )
+ ? require(outputDirectory + 'package.json')
+ : false,
+
+ isNewVersion = (version && componentPackage.version != version),
+
+ commitMessage = (isNewVersion)
+ ? 'Updated component to version ' + version
+ : 'Updated files from main repo',
+
+ gitOptions = { cwd: outputDirectory },
+ commitOptions = { args: commitArgs, cwd: outputDirectory },
+ releaseOptions = { tag_name: version, owner: release.org, repo: repoName },
+
+ fileModeOptions = { args : 'config core.fileMode false', cwd: outputDirectory },
+ usernameOptions = { args : 'config user.name "' + oAuth.name + '"', cwd: outputDirectory },
+ emailOptions = { args : 'config user.email "' + oAuth.email + '"', cwd: outputDirectory },
+ versionOptions = { args : 'rev-parse --verify HEAD', cwd: outputDirectory },
+
+ localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git')),
+ canProceed = true
+ ;
+
+
+ console.info('Processing repository:' + outputDirectory);
+
+ function setConfig() {
+ git.exec(fileModeOptions, function() {
+ git.exec(usernameOptions, function () {
+ git.exec(emailOptions, function () {
+ commitFiles();
+ });
+ });
+ });
+ }
+
+
+ // standard path
+ function commitFiles() {
+ // commit files
+ console.info('Committing ' + component + ' files', commitArgs);
+ gulp.src('./', gitOptions)
+ .pipe(git.add(gitOptions))
+ .pipe(git.commit(commitMessage, commitOptions))
+ .on('error', function(error) {
+ // canProceed = false; bug in git commit
+ })
+ .on('finish', function(callback) {
+ if(canProceed) {
+ pushFiles();
+ }
+ else {
+ console.info('Nothing new to commit');
+ nextRepo();
+ }
+ })
+ ;
+ }
+
+ // push changes to remote
+ function pushFiles() {
+ console.info('Pushing files for ' + component);
+ git.push('origin', 'master', { args: '', cwd: outputDirectory }, function(error) {
+ console.info('Push completed successfully');
+ getSHA();
+ });
+ }
+
+ // gets SHA of last commit
+ function getSHA() {
+ git.exec(versionOptions, function(error, version) {
+ version = version.trim();
+ createRelease(version);
+ });
+ }
+
+ // create release on GitHub.com
+ function createRelease(version) {
+ if(version) {
+ releaseOptions.target_commitish = version;
+ }
+ github.repos.createRelease(releaseOptions, function() {
+ nextRepo();
+ });
+ }
+
+ // Steps to next repository
+ function nextRepo() {
+ console.log('Sleeping for 1 second...');
+ // avoid rate throttling
+ global.clearTimeout(timer);
+ timer = global.setTimeout(stepRepo, 100);
+ }
+
+
+ if(localRepoSetup) {
+ setConfig();
+ }
+ else {
+ console.error('Repository must be setup before running update components');
+ }
+
+ };
+
+ stepRepo();
+
+};
diff --git a/assets/semantic/tasks/admin/distributions/create.js b/assets/semantic/tasks/admin/distributions/create.js
new file mode 100644
index 0000000..6d149f6
--- /dev/null
+++ b/assets/semantic/tasks/admin/distributions/create.js
@@ -0,0 +1,208 @@
+/*******************************
+ Create Distributions
+*******************************/
+
+/*
+ This will create individual distribution repositories for each SUI distribution
+
+ * copy distribution files to release
+ * update package.json file
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ fs = require('fs'),
+ path = require('path'),
+ mergeStream = require('merge-stream'),
+
+ // admin dependencies
+ flatten = require('gulp-flatten'),
+ jsonEditor = require('gulp-json-editor'),
+ plumber = require('gulp-plumber'),
+ rename = require('gulp-rename'),
+ replace = require('gulp-replace'),
+
+ // config
+ config = require('../../config/user'),
+ release = require('../../config/admin/release'),
+ project = require('../../config/project/release'),
+
+ // shorthand
+ version = project.version,
+ output = config.paths.output
+
+;
+
+
+module.exports = function(callback) {
+ var
+ stream,
+ index,
+ tasks = []
+ ;
+
+ for(index in release.distributions) {
+
+ var
+ distribution = release.distributions[index]
+ ;
+
+ // streams... designed to save time and make coding fun...
+ (function(distribution) {
+
+ var
+ distLowerCase = distribution.toLowerCase(),
+ outputDirectory = path.join(release.outputRoot, distLowerCase),
+ packageFile = path.join(outputDirectory, release.files.npm),
+ repoName = release.distRepoRoot + distribution,
+ regExp = {
+ match : {
+ files : '{files}',
+ version : '{version}'
+ }
+ },
+ task = {
+ all : distribution + ' copying files',
+ repo : distribution + ' create repo',
+ meteor : distribution + ' create meteor package.js',
+ package : distribution + ' create package.json'
+ },
+ gatherFiles,
+ createList
+ ;
+
+ // get files for meteor
+ gatherFiles = function(dir) {
+ var
+ dir = dir || path.resolve('.'),
+ list = fs.readdirSync(dir),
+ omitted = [
+ '.git',
+ 'node_modules',
+ 'package.js',
+ 'LICENSE',
+ 'README.md',
+ 'package.json',
+ 'bower.json',
+ '.gitignore'
+ ],
+ files = []
+ ;
+ list.forEach(function(file) {
+ var
+ isOmitted = (omitted.indexOf(file) > -1),
+ filePath = path.join(dir, file),
+ stat = fs.statSync(filePath)
+ ;
+ if(!isOmitted) {
+ if(stat && stat.isDirectory()) {
+ files = files.concat(gatherFiles(filePath));
+ }
+ else {
+ files.push(filePath.replace(outputDirectory + path.sep, ''));
+ }
+ }
+ });
+ return files;
+ };
+
+ // spaces out list correctly
+ createList = function(files) {
+ var filenames = '';
+ for(var file in files) {
+ if(file == (files.length - 1) ) {
+ filenames += "'" + files[file] + "'";
+ }
+ else {
+ filenames += "'" + files[file] + "',\n ";
+ }
+ }
+ return filenames;
+ };
+
+ tasks.push(function() {
+ var
+ files = gatherFiles(outputDirectory),
+ filenames = createList(files)
+ ;
+ gulp.src(release.templates.meteor[distLowerCase])
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(replace(regExp.match.version, version))
+ .pipe(replace(regExp.match.files, filenames))
+ .pipe(rename(release.files.meteor))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ });
+
+ if(distribution == 'CSS') {
+ tasks.push(function() {
+ var
+ themes,
+ components,
+ releases
+ ;
+ themes = gulp.src('dist/themes/default/**/*', { base: 'dist/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ components = gulp.src('dist/components/*', { base: 'dist/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ releases = gulp.src('dist/*', { base: 'dist/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ return mergeStream(themes, components, releases);
+ });
+ }
+ else if(distribution == 'LESS') {
+ tasks.push(function() {
+ var
+ definitions,
+ themeImport,
+ themeConfig,
+ siteTheme,
+ themes
+ ;
+ definitions = gulp.src('src/definitions/**/*', { base: 'src/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ themeImport = gulp.src('src/semantic.less', { base: 'src/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ themeImport = gulp.src('src/theme.less', { base: 'src/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ themeConfig = gulp.src('src/theme.config.example', { base: 'src/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ siteTheme = gulp.src('src/_site/**/*', { base: 'src/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ themes = gulp.src('src/themes/**/*', { base: 'src/' })
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ return mergeStream(definitions, themeImport, themeConfig, siteTheme, themes);
+ });
+ }
+
+ // extend package.json
+ tasks.push(function() {
+ return gulp.src(packageFile)
+ .pipe(plumber())
+ .pipe(jsonEditor(function(package) {
+ if(version) {
+ package.version = version;
+ }
+ return package;
+ }))
+ .pipe(gulp.dest(outputDirectory))
+ ;
+ });
+
+ })(distribution);
+ }
+
+ gulp.series(...tasks)(callback);
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/admin/distributions/init.js b/assets/semantic/tasks/admin/distributions/init.js
new file mode 100644
index 0000000..341a1cc
--- /dev/null
+++ b/assets/semantic/tasks/admin/distributions/init.js
@@ -0,0 +1,168 @@
+/*******************************
+ Init Dist Repos
+*******************************/
+
+/*
+
+ This task pulls the latest version of distribution from GitHub
+
+ * Creates new repo if doesnt exist (locally & GitHub)
+ * Adds remote it doesnt exists
+ * Pulls latest changes from repo
+
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ del = require('del'),
+ fs = require('fs'),
+ path = require('path'),
+ git = require('gulp-git'),
+ mkdirp = require('mkdirp'),
+
+ // admin files
+ github = require('../../config/admin/github.js'),
+ release = require('../../config/admin/release'),
+ project = require('../../config/project/release'),
+
+
+ // oAuth configuration for GitHub
+ oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
+ ? require('../../config/admin/oauth')
+ : false,
+
+ // shorthand
+ version = project.version
+;
+
+module.exports = function(callback) {
+
+ var
+ index = -1,
+ total = release.distributions.length,
+ timer,
+ stream,
+ stepRepo
+ ;
+
+ if(!oAuth) {
+ console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
+ return;
+ }
+
+ // Do Git commands synchronously per component, to avoid issues
+ stepRepo = function() {
+
+ index = index + 1;
+
+ if(index >= total) {
+ callback();
+ return;
+ }
+
+ var
+ component = release.distributions[index],
+ lowerCaseComponent = component.toLowerCase(),
+ outputDirectory = path.resolve(release.outputRoot + lowerCaseComponent),
+ repoName = release.distRepoRoot + component,
+
+ gitOptions = { cwd: outputDirectory },
+ pullOptions = { args: '-q', cwd: outputDirectory, quiet: true },
+ resetOptions = { args: '-q --hard', cwd: outputDirectory, quiet: true },
+ gitURL = 'git@github.com:' + release.org + '/' + repoName + '.git',
+ repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
+ localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git'))
+ ;
+
+ console.log('Processing repository: ' + outputDirectory);
+
+ // create folder if doesn't exist
+ if( !fs.existsSync(outputDirectory) ) {
+ mkdirp.sync(outputDirectory);
+ }
+
+ // clean folder
+ if(release.outputRoot.search('../repos') == 0) {
+ console.info('Cleaning dir', outputDirectory);
+ del.sync([outputDirectory + '**/*'], {silent: true, force: true});
+ }
+
+ // set-up local repo
+ function setupRepo() {
+ if(localRepoSetup) {
+ addRemote();
+ }
+ else {
+ initRepo();
+ }
+ }
+
+ function initRepo() {
+ console.info('Initializing repository for ' + component);
+ git.init(gitOptions, function(error) {
+ if(error) {
+ console.error('Error initializing repo', error);
+ }
+ addRemote();
+ });
+ }
+
+ function createRepo() {
+ console.info('Creating GitHub repo ' + repoURL);
+ github.repos.createFromOrg({
+ org : release.org,
+ name : repoName,
+ homepage : release.homepage
+ }, function() {
+ setupRepo();
+ });
+ }
+
+ function addRemote() {
+ console.info('Adding remote origin as ' + gitURL);
+ git.addRemote('origin', gitURL, gitOptions, function(){
+ pullFiles();
+ });
+ }
+
+ function pullFiles() {
+ console.info('Pulling ' + component + ' files');
+ git.pull('origin', 'master', pullOptions, function(error) {
+ resetFiles();
+ });
+ }
+
+ function resetFiles() {
+ console.info('Resetting files to head');
+ git.reset('HEAD', resetOptions, function(error) {
+ nextRepo();
+ });
+ }
+
+ function nextRepo() {
+ //console.log('Sleeping for 1 second...');
+ // avoid rate throttling
+ global.clearTimeout(timer);
+ timer = global.setTimeout(function() {
+ stepRepo()
+ }, 0);
+ }
+
+
+ if(localRepoSetup) {
+ pullFiles();
+ }
+ else {
+ setupRepo();
+ // createRepo() only use to create remote repo (easier to do manually)
+ }
+
+ };
+
+ stepRepo();
+
+
+};
diff --git a/assets/semantic/tasks/admin/distributions/update.js b/assets/semantic/tasks/admin/distributions/update.js
new file mode 100644
index 0000000..1ed2c92
--- /dev/null
+++ b/assets/semantic/tasks/admin/distributions/update.js
@@ -0,0 +1,177 @@
+/*******************************
+ Update Repos
+*******************************/
+
+/*
+
+ This task update all SUI individual distribution repos with new versions of distributions
+
+ * Commits changes from create repo
+ * Pushes changes to GitHub
+ * Tag new releases if version changed in main repo
+
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ fs = require('fs'),
+ path = require('path'),
+ git = require('gulp-git'),
+
+ // admin files
+ github = require('../../config/admin/github.js'),
+ release = require('../../config/admin/release'),
+ project = require('../../config/project/release'),
+
+
+ // oAuth configuration for GitHub
+ oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
+ ? require('../../config/admin/oauth')
+ : false,
+
+ // shorthand
+ version = project.version
+;
+
+module.exports = function(callback) {
+
+ var
+ index = -1,
+ total = release.distributions.length,
+ timer,
+ stream,
+ stepRepo
+ ;
+
+ if(!oAuth) {
+ console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
+ return;
+ }
+
+ // Do Git commands synchronously per distribution, to avoid issues
+ stepRepo = function() {
+
+ index = index + 1;
+ if(index >= total) {
+ callback();
+ return;
+ }
+
+ var
+ distribution = release.distributions[index],
+ outputDirectory = path.resolve(path.join(release.outputRoot, distribution.toLowerCase() )),
+ repoName = release.distRepoRoot + distribution,
+
+ commitArgs = (oAuth.name !== undefined && oAuth.email !== undefined)
+ ? '--author "' + oAuth.name + ' <' + oAuth.email + '>"'
+ : '',
+
+ distributionPackage = fs.existsSync(outputDirectory + 'package.json' )
+ ? require(outputDirectory + 'package.json')
+ : false,
+
+ isNewVersion = (version && distributionPackage.version != version),
+
+ commitMessage = (isNewVersion)
+ ? 'Updated distribution to version ' + version
+ : 'Updated files from main repo',
+
+ gitOptions = { cwd: outputDirectory },
+ commitOptions = { args: commitArgs, cwd: outputDirectory },
+ releaseOptions = { tag_name: version, owner: release.org, repo: repoName },
+
+ fileModeOptions = { args : 'config core.fileMode false', cwd: outputDirectory },
+ usernameOptions = { args : 'config user.name "' + oAuth.name + '"', cwd: outputDirectory },
+ emailOptions = { args : 'config user.email "' + oAuth.email + '"', cwd: outputDirectory },
+ versionOptions = { args : 'rev-parse --verify HEAD', cwd: outputDirectory },
+
+ localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git')),
+ canProceed = true
+ ;
+
+
+ console.info('Processing repository:' + outputDirectory);
+
+ function setConfig() {
+ git.exec(fileModeOptions, function() {
+ git.exec(usernameOptions, function () {
+ git.exec(emailOptions, function () {
+ commitFiles();
+ });
+ });
+ });
+ }
+
+ // standard path
+ function commitFiles() {
+ // commit files
+ console.info('Committing ' + distribution + ' files', commitArgs);
+ gulp.src('./', gitOptions)
+ .pipe(git.add(gitOptions))
+ .pipe(git.commit(commitMessage, commitOptions))
+ .on('error', function(error) {
+ // canProceed = false; bug in git commit
+ })
+ .on('finish', function(callback) {
+ if(canProceed) {
+ pushFiles();
+ }
+ else {
+ console.info('Nothing new to commit');
+ nextRepo();
+ }
+ })
+ ;
+ }
+
+ // push changes to remote
+ function pushFiles() {
+ console.info('Pushing files for ' + distribution);
+ git.push('origin', 'master', { args: '', cwd: outputDirectory }, function(error) {
+ console.info('Push completed successfully');
+ getSHA();
+ });
+ }
+
+ // gets SHA of last commit
+ function getSHA() {
+ git.exec(versionOptions, function(error, version) {
+ version = version.trim();
+ createRelease(version);
+ });
+ }
+
+ // create release on GitHub.com
+ function createRelease(version) {
+ if(version) {
+ releaseOptions.target_commitish = version;
+ }
+ github.repos.createRelease(releaseOptions, function() {
+ nextRepo();
+ });
+ }
+
+ // Steps to next repository
+ function nextRepo() {
+ console.log('Sleeping for 1 second...');
+ // avoid rate throttling
+ global.clearTimeout(timer);
+ timer = global.setTimeout(stepRepo, 100);
+ }
+
+
+ if(localRepoSetup) {
+ setConfig();
+ }
+ else {
+ console.error('Repository must be setup before running update distributions');
+ }
+
+ };
+
+ stepRepo();
+
+};
diff --git a/assets/semantic/tasks/admin/publish.js b/assets/semantic/tasks/admin/publish.js
new file mode 100644
index 0000000..7448f40
--- /dev/null
+++ b/assets/semantic/tasks/admin/publish.js
@@ -0,0 +1,24 @@
+/*******************************
+ * Release All
+ *******************************/
+
+/*
+ This task update all SUI individual component repos with new versions of components
+
+ * Commits changes from create components to GitHub and Tags
+
+*/
+
+var
+ gulp = require('gulp')
+;
+
+/* Release All */
+module.exports = function (callback) {
+
+ gulp.series(
+ 'update distributions', // commit less/css versions to github
+ 'update components', // commit components to github
+ )(callback);
+
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/admin/register.js b/assets/semantic/tasks/admin/register.js
new file mode 100644
index 0000000..66792c1
--- /dev/null
+++ b/assets/semantic/tasks/admin/register.js
@@ -0,0 +1,55 @@
+/*******************************
+ Register PM
+*******************************/
+
+/*
+ Task to register component repos with Package Managers
+ * Registers component with bower
+ * Registers component with NPM
+*/
+
+var
+ // node dependencies
+ process = require('child_process'),
+
+ // config
+ release = require('../config/admin/release'),
+
+ // register components and distributions
+ repos = release.distributions.concat(release.components),
+ total = repos.length,
+ index = -1,
+
+ stream,
+ stepRepo
+;
+
+module.exports = function(callback) {
+
+ console.log('Registering repos with package managers');
+
+ // Do Git commands synchronously per component, to avoid issues
+ stepRepo = function() {
+ index = index + 1;
+ if(index >= total) {
+ callback();
+ return;
+ }
+ var
+ repo = repos[index].toLowerCase(),
+ outputDirectory = release.outputRoot + repo + '/',
+ exec = process.exec,
+ execSettings = {cwd: outputDirectory},
+ updateNPM = 'npm publish;meteor publish;'
+ ;
+
+ /* Register with NPM */
+ exec(updateNPM, execSettings, function(err, stdout, stderr) {
+ console.log(err, stdout, stderr);
+ stepRepo();
+ });
+
+ };
+ stepRepo();
+};
+
diff --git a/assets/semantic/tasks/admin/release.js b/assets/semantic/tasks/admin/release.js
new file mode 100644
index 0000000..19feae5
--- /dev/null
+++ b/assets/semantic/tasks/admin/release.js
@@ -0,0 +1,28 @@
+/*******************************
+ * Release
+ *******************************/
+
+/*
+ This task update all SUI individual component repos with new versions of components
+
+ * Initializes repositories with current versions
+ * Creates local files at ../distributions/ with each repo for release
+
+*/
+
+var
+ gulp = require('gulp')
+;
+
+/* Release All */
+module.exports = function (callback) {
+
+ gulp.series(
+ //'build', // build Semantic
+ 'init distributions', // sync with current github version
+ 'create distributions', // update each repo with changes from master repo
+ 'init components', // sync with current github version
+ 'create components', // update each repo
+ )(callback);
+
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/build.js b/assets/semantic/tasks/build.js
new file mode 100644
index 0000000..9a7fa60
--- /dev/null
+++ b/assets/semantic/tasks/build.js
@@ -0,0 +1,23 @@
+/*******************************
+ * Build Task
+ *******************************/
+
+var
+ // dependencies
+ gulp = require('gulp'),
+
+ // config
+ install = require('./config/project/install')
+;
+
+module.exports = function (callback) {
+
+ console.info('Building Semantic');
+
+ if (!install.isSetup()) {
+ console.error('Cannot find semantic.json. Run "gulp install" to set-up Semantic');
+ return 1;
+ }
+
+ gulp.series('build-css', 'build-javascript', 'build-assets')(callback);
+};
diff --git a/assets/semantic/tasks/build/assets.js b/assets/semantic/tasks/build/assets.js
new file mode 100644
index 0000000..88a1de9
--- /dev/null
+++ b/assets/semantic/tasks/build/assets.js
@@ -0,0 +1,63 @@
+/*******************************
+ Build Task
+ *******************************/
+
+var
+ gulp = require('gulp'),
+
+ // gulp dependencies
+ chmod = require('gulp-chmod'),
+ gulpif = require('gulp-if'),
+ normalize = require('normalize-path'),
+ print = require('gulp-print').default,
+
+ // config
+ config = require('../config/user'),
+ tasks = require('../config/tasks'),
+ install = require('../config/project/install'),
+
+ log = tasks.log
+;
+
+function build(src, config) {
+ return gulp.src(src, {base: config.paths.source.themes})
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
+ .pipe(gulp.dest(config.paths.output.themes))
+ .pipe(print(log.created))
+ ;
+}
+
+function buildAssets(src, config, callback) {
+ if (!install.isSetup()) {
+ console.error('Cannot build assets. Run "gulp install" to set-up Semantic');
+ callback();
+ return;
+ }
+
+ if (callback === undefined) {
+ callback = config;
+ config = src;
+ src = config.paths.source.themes + '/**/assets/**/*.*';
+ }
+
+ // copy assets
+ var assets = () => build(src, config);
+ assets.displayName = "Building Assets";
+
+ gulp.series(assets)(callback);
+}
+
+module.exports = function (callback) {
+ buildAssets(config, callback);
+};
+
+module.exports.watch = function (type, config) {
+ gulp
+ .watch([normalize(config.paths.source.themes + '/**/assets/**/*.*')])
+ .on('all', function (event, path) {
+ console.log('Change in assets detected');
+ return gulp.series((callback) => buildAssets(path, config, callback))();
+ });
+};
+
+module.exports.buildAssets = buildAssets;
\ No newline at end of file
diff --git a/assets/semantic/tasks/build/css.js b/assets/semantic/tasks/build/css.js
new file mode 100644
index 0000000..87daddf
--- /dev/null
+++ b/assets/semantic/tasks/build/css.js
@@ -0,0 +1,267 @@
+/*******************************
+ * Build Task
+ *******************************/
+
+const
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+
+ // gulp dependencies
+ autoprefixer = require('gulp-autoprefixer'),
+ chmod = require('gulp-chmod'),
+ concatCSS = require('gulp-concat-css'),
+ dedupe = require('gulp-dedupe'),
+ flatten = require('gulp-flatten'),
+ gulpif = require('gulp-if'),
+ header = require('gulp-header'),
+ less = require('gulp-less'),
+ minifyCSS = require('gulp-clean-css'),
+ normalize = require('normalize-path'),
+ plumber = require('gulp-plumber'),
+ print = require('gulp-print').default,
+ rename = require('gulp-rename'),
+ replace = require('gulp-replace'),
+ replaceExt = require('replace-ext'),
+ rtlcss = require('gulp-rtlcss'),
+
+ // config
+ config = require('./../config/user'),
+ docsConfig = require('./../config/docs'),
+ tasks = require('../config/tasks'),
+ install = require('../config/project/install'),
+
+ // shorthand
+ globs = config.globs,
+ assets = config.paths.assets,
+
+ banner = tasks.banner,
+ filenames = tasks.filenames,
+ comments = tasks.regExp.comments,
+ log = tasks.log,
+ settings = tasks.settings
+;
+
+/**
+ * Builds the css
+ * @param src
+ * @param type
+ * @param compress
+ * @param config
+ * @param opts
+ * @return {*}
+ */
+function build(src, type, compress, config, opts) {
+ let fileExtension;
+ if (type === 'rtl' && compress) {
+ fileExtension = settings.rename.rtlMinCSS;
+ } else if (type === 'rtl') {
+ fileExtension = settings.rename.rtlCSS;
+ } else if (compress) {
+ fileExtension = settings.rename.minCSS;
+ }
+
+ return gulp.src(src, opts)
+ .pipe(plumber(settings.plumber.less))
+ .pipe(less(settings.less))
+ .pipe(autoprefixer(settings.prefix))
+ .pipe(gulpif(type === 'rtl', rtlcss()))
+ .pipe(replace(comments.variables.in, comments.variables.out))
+ .pipe(replace(comments.license.in, comments.license.out))
+ .pipe(replace(comments.large.in, comments.large.out))
+ .pipe(replace(comments.small.in, comments.small.out))
+ .pipe(replace(comments.tiny.in, comments.tiny.out))
+ .pipe(flatten())
+ .pipe(replace(config.paths.assets.source,
+ compress ? config.paths.assets.compressed : config.paths.assets.uncompressed))
+ .pipe(gulpif(compress, minifyCSS(settings.minify)))
+ .pipe(gulpif(fileExtension, rename(fileExtension)))
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
+ .pipe(gulp.dest(compress ? config.paths.output.compressed : config.paths.output.uncompressed))
+ .pipe(print(log.created))
+ ;
+}
+
+/**
+ * Packages the css files in dist
+ * @param {string} type - type of the css processing (none, rtl, docs)
+ * @param {boolean} compress - should the output be compressed
+ */
+function pack(type, compress) {
+ const output = type === 'docs' ? docsConfig.paths.output : config.paths.output;
+ const ignoredGlobs = type === 'rtl' ? globs.ignoredRTL + '.rtl.css' : globs.ignored + '.css';
+
+ let concatenatedCSS;
+ if (type === 'rtl') {
+ concatenatedCSS = compress ? filenames.concatenatedMinifiedRTLCSS : filenames.concatenatedRTLCSS;
+ } else {
+ concatenatedCSS = compress ? filenames.concatenatedMinifiedCSS : filenames.concatenatedCSS;
+ }
+
+ return gulp.src(output.uncompressed + '/**/' + globs.components + ignoredGlobs)
+ .pipe(plumber())
+ .pipe(dedupe())
+ .pipe(replace(assets.uncompressed, assets.packaged))
+ .pipe(concatCSS(concatenatedCSS, settings.concatCSS))
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
+ .pipe(gulpif(compress, minifyCSS(settings.concatMinify)))
+ .pipe(header(banner, settings.header))
+ .pipe(gulp.dest(output.packaged))
+ .pipe(print(log.created))
+ ;
+}
+
+function buildCSS(src, type, config, opts, callback) {
+ if (!install.isSetup()) {
+ console.error('Cannot build CSS files. Run "gulp install" to set-up Semantic');
+ callback();
+ return;
+ }
+
+ if (callback === undefined) {
+ callback = opts;
+ opts = config;
+ config = type;
+ type = src;
+ src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
+ }
+
+ if (globs.individuals !== undefined && typeof src === 'string') {
+ const individuals = config.globs.individuals.replace('{','');
+ const components = config.globs.components.replace('}',',').concat(individuals);
+
+ src = config.paths.source.definitions + '/**/' + components + '.less';
+ }
+
+ const buildUncompressed = () => build(src, type, false, config, opts);
+ buildUncompressed.displayName = 'Building uncompressed CSS';
+
+ const buildCompressed = () => build(src, type, true, config, opts);
+ buildCompressed.displayName = 'Building compressed CSS';
+
+ const packUncompressed = () => pack(type, false);
+ packUncompressed.displayName = 'Packing uncompressed CSS';
+
+ const packCompressed = () => pack(type, true);
+ packCompressed.displayName = 'Packing compressed CSS';
+
+ gulp.parallel(
+ gulp.series(
+ buildUncompressed,
+ gulp.parallel(packUncompressed, packCompressed)
+ ),
+ gulp.series(buildCompressed)
+ )(callback);
+}
+
+function rtlAndNormal(src, callback) {
+ if (callback === undefined) {
+ callback = src;
+ src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
+ }
+
+ const rtl = (callback) => buildCSS(src, 'rtl', config, {}, callback);
+ rtl.displayName = "CSS Right-To-Left";
+ const css = (callback) => buildCSS(src, 'default', config, {}, callback);
+ css.displayName = "CSS";
+
+ if (config.rtl === true || config.rtl === 'Yes') {
+ rtl(callback);
+ } else if (config.rtl === 'both') {
+ gulp.series(rtl, css)(callback);
+ } else {
+ css(callback);
+ }
+}
+
+function docs(src, callback) {
+ if (callback === undefined) {
+ callback = src;
+ src = config.paths.source.definitions + '/**/' + config.globs.components + '.less';
+ }
+
+ const func = (callback) => buildCSS(src, 'docs', config, {}, callback);
+ func.displayName = "CSS Docs";
+
+ func(callback);
+}
+
+// Default tasks
+module.exports = rtlAndNormal;
+
+// We keep the changed files in an array to call build with all of them at the same time
+let timeout, files = [];
+
+/**
+ * Watch changes in CSS files and call the correct build pipe
+ * @param type
+ * @param config
+ */
+module.exports.watch = function (type, config) {
+ const method = type === 'docs' ? docs : rtlAndNormal;
+
+ // Watch theme.config file
+ gulp.watch([
+ normalize(config.paths.source.config),
+ normalize(config.paths.source.site + '/**/site.variables'),
+ normalize(config.paths.source.themes + '/**/site.variables')
+ ])
+ .on('all', function () {
+ // Clear timeout and reset files
+ timeout && clearTimeout(timeout);
+ files = [];
+ return gulp.series(method)();
+ });
+
+ // Watch any less / overrides / variables files
+ gulp.watch([
+ normalize(config.paths.source.definitions + '/**/*.less'),
+ normalize(config.paths.source.site + '/**/*.{overrides,variables}'),
+ normalize(config.paths.source.themes + '/**/*.{overrides,variables}')
+ ])
+ .on('all', function (event, path) {
+ // We don't handle deleted files yet
+ if (event === 'unlink' || event === 'unlinkDir') {
+ return;
+ }
+
+ // Clear timeout
+ timeout && clearTimeout(timeout);
+
+ // Determine which LESS file has to be recompiled
+ let lessPath;
+ if(path.indexOf('site.variables') !== -1) {
+ return;
+ } else if (path.indexOf(config.paths.source.themes) !== -1) {
+ console.log('Change detected in packaged theme');
+ lessPath = replaceExt(path, '.less');
+ lessPath = lessPath.replace(tasks.regExp.theme, config.paths.source.definitions);
+ } else if (path.indexOf(config.paths.source.site) !== -1) {
+ console.log('Change detected in site theme');
+ lessPath = replaceExt(path, '.less');
+ lessPath = lessPath.replace(config.paths.source.site, config.paths.source.definitions);
+ } else {
+ console.log('Change detected in definition');
+ lessPath = path;
+ }
+
+ // Add file to internal changed files array
+ if (!files.includes(lessPath)) {
+ files.push(lessPath);
+ }
+
+ // Update timeout
+ timeout = setTimeout(() => {
+ // Copy files to build in another array
+ const buildFiles = [...files];
+ // Call method
+ gulp.series((callback) => method(buildFiles, callback))();
+ // Reset internal changed files array
+ files = [];
+ }, 1000);
+ });
+};
+
+// Expose build css method
+module.exports.buildCSS = buildCSS;
\ No newline at end of file
diff --git a/assets/semantic/tasks/build/javascript.js b/assets/semantic/tasks/build/javascript.js
new file mode 100644
index 0000000..8d645b7
--- /dev/null
+++ b/assets/semantic/tasks/build/javascript.js
@@ -0,0 +1,159 @@
+/*******************************
+ Build Task
+ *******************************/
+
+const
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+
+ // gulp dependencies
+ chmod = require('gulp-chmod'),
+ concat = require('gulp-concat'),
+ dedupe = require('gulp-dedupe'),
+ flatten = require('gulp-flatten'),
+ gulpif = require('gulp-if'),
+ header = require('gulp-header'),
+ normalize = require('normalize-path'),
+ plumber = require('gulp-plumber'),
+ print = require('gulp-print').default,
+ rename = require('gulp-rename'),
+ replace = require('gulp-replace'),
+ uglify = require('gulp-uglify'),
+
+ // config
+ config = require('./../config/user'),
+ docsConfig = require('./../config/docs'),
+ tasks = require('../config/tasks'),
+ install = require('../config/project/install'),
+
+ // shorthand
+ globs = config.globs,
+ assets = config.paths.assets,
+
+ banner = tasks.banner,
+ filenames = tasks.filenames,
+ comments = tasks.regExp.comments,
+ log = tasks.log,
+ settings = tasks.settings
+;
+
+/**
+ * Concat and uglify the Javascript files
+ * @param {string|array} src - source files
+ * @param type
+ * @param config
+ * @return {*}
+ */
+function build(src, type, config) {
+ return gulp.src(src)
+ .pipe(plumber())
+ .pipe(flatten())
+ .pipe(replace(comments.license.in, comments.license.out))
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
+ .pipe(gulp.dest(config.paths.output.uncompressed))
+ .pipe(print(log.created))
+ .pipe(uglify(settings.uglify))
+ .pipe(rename(settings.rename.minJS))
+ .pipe(header(banner, settings.header))
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
+ .pipe(gulp.dest(config.paths.output.compressed))
+ .pipe(print(log.created))
+ ;
+}
+
+/**
+ * Packages the Javascript files in dist
+ * @param {string} type - type of the js processing (none, rtl, docs)
+ * @param {boolean} compress - should the output be compressed
+ */
+function pack(type, compress) {
+ const output = type === 'docs' ? docsConfig.paths.output : config.paths.output;
+ const concatenatedJS = compress ? filenames.concatenatedMinifiedJS : filenames.concatenatedJS;
+
+ return gulp.src(output.uncompressed + '/**/' + globs.components + globs.ignored + '.js')
+ .pipe(plumber())
+ .pipe(dedupe())
+ .pipe(replace(assets.uncompressed, assets.packaged))
+ .pipe(concat(concatenatedJS))
+ .pipe(gulpif(compress, uglify(settings.concatUglify)))
+ .pipe(header(banner, settings.header))
+ .pipe(gulpif(config.hasPermissions, chmod(config.parsedPermissions)))
+ .pipe(gulp.dest(output.packaged))
+ .pipe(print(log.created))
+ ;
+}
+
+function buildJS(src, type, config, callback) {
+ if (!install.isSetup()) {
+ console.error('Cannot build Javascript. Run "gulp install" to set-up Semantic');
+ callback();
+ return;
+ }
+
+ if (callback === undefined) {
+ callback = config;
+ config = type;
+ type = src;
+ src = config.paths.source.definitions + '/**/' + config.globs.components + (config.globs.ignored || '') + '.js';
+ }
+
+ if (globs.individuals !== undefined && typeof src === 'string') {
+ const individuals = config.globs.individuals.replace('{','');
+ const components = config.globs.components.replace('}',',').concat(individuals);
+
+ src = config.paths.source.definitions + '/**/' + components + (config.globs.ignored || '') + '.js';
+ }
+
+ // copy source javascript
+ const js = () => build(src, type, config);
+ js.displayName = "Building un/compressed Javascript";
+
+ const packUncompressed = () => pack(type, false);
+ packUncompressed.displayName = 'Packing uncompressed Javascript';
+
+ const packCompressed = () => pack(type, true);
+ packCompressed.displayName = 'Packing compressed Javascript';
+
+ gulp.series(js, gulp.parallel(packUncompressed, packCompressed))(callback);
+}
+
+module.exports = function (callback) {
+ buildJS(false, config, callback);
+};
+
+// We keep the changed files in an array to call build with all of them at the same time
+let timeout, files = [];
+
+module.exports.watch = function (type, config) {
+ gulp
+ .watch([normalize(config.paths.source.definitions + '/**/*.js')])
+ .on('all', function (event, path) {
+ // We don't handle deleted files yet
+ if (event === 'unlink' || event === 'unlinkDir') {
+ return;
+ }
+
+ // Clear timeout
+ timeout && clearTimeout(timeout);
+
+ // Add file to internal changed files array
+ if (!files.includes(path)) {
+ files.push(path);
+ }
+
+ // Update timeout
+ timeout = setTimeout(() => {
+ console.log('Change in javascript detected');
+ // Copy files to build in another array
+ const buildFiles = [...files];
+ // Call method
+ gulp.series((callback) => buildJS(buildFiles, type, config, callback))();
+ // Reset internal changed files array
+ files = [];
+ }, 1000);
+ });
+};
+
+module.exports.buildJS = buildJS;
\ No newline at end of file
diff --git a/assets/semantic/tasks/check-install.js b/assets/semantic/tasks/check-install.js
new file mode 100644
index 0000000..45263c2
--- /dev/null
+++ b/assets/semantic/tasks/check-install.js
@@ -0,0 +1,27 @@
+/*******************************
+ * Check Install
+ *******************************/
+
+var
+ // node dependencies
+ gulp = require('gulp'),
+ console = require('better-console'),
+ isSetup = require('./config/project/install').isSetup,
+
+ install = require('./install'),
+ watch = require('./watch')
+;
+
+// export task
+module.exports = function (callback) {
+
+ setTimeout(function () {
+ if (!isSetup()) {
+ console.log('Starting install...');
+ install(callback);
+ } else {
+ watch(callback);
+ }
+ }, 50); // Delay to allow console.clear to remove messages from check event
+
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/clean.js b/assets/semantic/tasks/clean.js
new file mode 100644
index 0000000..96955b6
--- /dev/null
+++ b/assets/semantic/tasks/clean.js
@@ -0,0 +1,14 @@
+/*******************************
+ Clean Task
+*******************************/
+
+var
+ del = require('del'),
+ config = require('./config/user'),
+ tasks = require('./config/tasks')
+;
+
+// cleans distribution files
+module.exports = function() {
+ return del([config.paths.clean], tasks.settings.del);
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/collections/README.md b/assets/semantic/tasks/collections/README.md
new file mode 100644
index 0000000..914a5a0
--- /dev/null
+++ b/assets/semantic/tasks/collections/README.md
@@ -0,0 +1,16 @@
+## How to use
+
+These are collections of tasks that are imported together.
+
+To import them into gulp:
+```javascript
+var
+ gulp = require('gulp'),
+ // modified to point to semantic folder
+ install = require('tasks/collections/install')
+;
+gulp = install(gulp);
+
+// tasks are now injected and ready to be used
+gulp.start('install');
+```
\ No newline at end of file
diff --git a/assets/semantic/tasks/collections/admin.js b/assets/semantic/tasks/collections/admin.js
new file mode 100644
index 0000000..7578b02
--- /dev/null
+++ b/assets/semantic/tasks/collections/admin.js
@@ -0,0 +1,64 @@
+/*******************************
+ * Admin Task Collection
+ *******************************/
+
+/*
+ This are tasks to be run by project maintainers
+ - Creating Component Repos
+ - Syncing with GitHub via APIs
+ - Modifying package files
+*/
+
+/*******************************
+ * Tasks
+ *******************************/
+
+
+module.exports = function (gulp) {
+ var
+ // less/css distributions
+ initComponents = require('../admin/components/init'),
+ createComponents = require('../admin/components/create'),
+ updateComponents = require('../admin/components/update'),
+
+ // single component releases
+ initDistributions = require('../admin/distributions/init'),
+ createDistributions = require('../admin/distributions/create'),
+ updateDistributions = require('../admin/distributions/update'),
+
+ release = require('../admin/release'),
+ publish = require('../admin/publish'),
+ register = require('../admin/register')
+ ;
+
+ /* Release */
+ gulp.task('init distributions', initDistributions);
+ gulp.task('init distributions').description = 'Grabs each component from GitHub';
+
+ gulp.task('create distributions', createDistributions);
+ gulp.task('create distributions').description = 'Updates files in each repo';
+
+ gulp.task('init components', initComponents);
+ gulp.task('init components').description = 'Grabs each component from GitHub';
+
+ gulp.task('create components', createComponents);
+ gulp.task('create components').description = 'Updates files in each repo';
+
+ /* Publish */
+ gulp.task('update distributions', updateDistributions);
+ gulp.task('update distributions').description = 'Commits component updates from create to GitHub';
+
+ gulp.task('update components', updateComponents);
+ gulp.task('update components').description = 'Commits component updates from create to GitHub';
+
+ /* Tasks */
+ gulp.task('release', release);
+ gulp.task('release').description = 'Stages changes in GitHub repos for all distributions';
+
+ gulp.task('publish', publish);
+ gulp.task('publish').description = 'Publishes all releases (components, package)';
+
+ gulp.task('register', register);
+ gulp.task('register').description = 'Registers all packages with NPM';
+
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/collections/build.js b/assets/semantic/tasks/collections/build.js
new file mode 100644
index 0000000..6d047bf
--- /dev/null
+++ b/assets/semantic/tasks/collections/build.js
@@ -0,0 +1,32 @@
+/*******************************
+ * Define Build Sub-Tasks
+ *******************************/
+
+module.exports = function (gulp) {
+
+ // build sub-tasks
+ const
+ watch = require('./../watch'),
+
+ build = require('./../build'),
+ buildJS = require('./../build/javascript'),
+ buildCSS = require('./../build/css'),
+ buildAssets = require('./../build/assets')
+ ;
+
+ gulp.task('watch', watch);
+ gulp.task('watch').description = 'Watch for site/theme changes';
+
+ gulp.task('build', build);
+ gulp.task('build').description = 'Builds all files from source';
+
+ gulp.task('build-javascript', buildJS);
+ gulp.task('build-javascript').description = 'Builds all javascript from source';
+
+ gulp.task('build-css', buildCSS);
+ gulp.task('build-css').description = 'Builds all css from source';
+
+ gulp.task('build-assets', buildAssets);
+ gulp.task('build-assets').description = 'Copies all assets from source';
+
+};
diff --git a/assets/semantic/tasks/collections/docs.js b/assets/semantic/tasks/collections/docs.js
new file mode 100644
index 0000000..abb8705
--- /dev/null
+++ b/assets/semantic/tasks/collections/docs.js
@@ -0,0 +1,23 @@
+/*******************************
+ * Define Docs Sub-Tasks
+ *******************************/
+
+/*
+ Lets you serve files to a local documentation instance
+ https://github.com/Semantic-Org/Semantic-UI-Docs/
+*/
+module.exports = function (gulp) {
+
+ var
+ // docs tasks
+ serveDocs = require('./../docs/serve'),
+ buildDocs = require('./../docs/build')
+ ;
+
+ gulp.task('serve-docs', serveDocs);
+ gulp.task('serve-docs').description = 'Serve file changes to SUI Docs';
+
+ gulp.task('build-docs', buildDocs);
+ gulp.task('build-docs').description = 'Build all files and add to SUI Docs';
+
+};
diff --git a/assets/semantic/tasks/collections/install.js b/assets/semantic/tasks/collections/install.js
new file mode 100644
index 0000000..db5054c
--- /dev/null
+++ b/assets/semantic/tasks/collections/install.js
@@ -0,0 +1,23 @@
+/*******************************
+ * Define Install Sub-Tasks
+ *******************************/
+
+/*
+ Lets you serve files to a local documentation instance
+ https://github.com/Semantic-Org/Semantic-UI-Docs/
+*/
+module.exports = function (gulp) {
+
+ var
+ // docs tasks
+ install = require('./../install'),
+ checkInstall = require('./../check-install')
+ ;
+
+ gulp.task('install', install);
+ gulp.task('install').description = 'Runs set-up';
+
+ gulp.task('check-install', checkInstall);
+ gulp.task('check-install').description = 'Displays current version of Semantic';
+
+};
diff --git a/assets/semantic/tasks/collections/rtl.js b/assets/semantic/tasks/collections/rtl.js
new file mode 100644
index 0000000..a11f396
--- /dev/null
+++ b/assets/semantic/tasks/collections/rtl.js
@@ -0,0 +1,19 @@
+/*******************************
+ * Define RTL Sub-Tasks
+ *******************************/
+
+module.exports = function (gulp) {
+
+ // rtl
+ var
+ buildRTL = require('./../rtl/build'),
+ watchRTL = require('./../rtl/watch')
+ ;
+
+ gulp.task('watch-rtl', watchRTL);
+ gulp.task('watch-rtl').description = 'DEPRECATED - use \'watch\' instead - Watch files as RTL';
+
+ gulp.task('build-rtl', buildRTL);
+ gulp.task('build-rtl').description = 'DEPRECATED - use \'build\' instead - Build all files as RTL';
+
+};
diff --git a/assets/semantic/tasks/collections/various.js b/assets/semantic/tasks/collections/various.js
new file mode 100644
index 0000000..006c6c2
--- /dev/null
+++ b/assets/semantic/tasks/collections/various.js
@@ -0,0 +1,22 @@
+/*******************************
+ * Define Various Sub-Tasks
+ *******************************/
+
+/*
+ Lets you serve files to a local documentation instance
+ https://github.com/Semantic-Org/Semantic-UI-Docs/
+*/
+module.exports = function (gulp) {
+
+ var
+ clean = require('./../clean'),
+ version = require('./../version')
+ ;
+
+ gulp.task('clean', clean);
+ gulp.task('clean').description = 'Clean dist folder';
+
+ gulp.task('version', version);
+ gulp.task('version').description = 'Clean dist folder';
+
+};
diff --git a/assets/semantic/tasks/config/admin/github.js b/assets/semantic/tasks/config/admin/github.js
new file mode 100644
index 0000000..86f27c1
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/github.js
@@ -0,0 +1,37 @@
+/*******************************
+ GitHub Login
+*******************************/
+/*
+ Logs into GitHub using OAuth
+*/
+
+var
+ fs = require('fs'),
+ path = require('path'),
+ githubAPI = require('@octokit/rest'),
+
+ // stores oauth info for GitHub API
+ oAuthConfig = path.join(__dirname, 'oauth.js'),
+ oAuth = fs.existsSync(oAuthConfig)
+ ? require(oAuthConfig)
+ : false,
+ github
+;
+
+if(!oAuth) {
+ console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
+}
+
+github = new githubAPI({
+ version : '3.0.0',
+ debug : true,
+ protocol : 'https',
+ timeout : 5000
+});
+
+github.authenticate({
+ type: 'oauth',
+ token: oAuth.token
+});
+
+module.exports = github;
diff --git a/assets/semantic/tasks/config/admin/oauth.example.js b/assets/semantic/tasks/config/admin/oauth.example.js
new file mode 100644
index 0000000..1c5bf09
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/oauth.example.js
@@ -0,0 +1,11 @@
+/*
+ Used to import GitHub Auth Token
+ To Automate GitHub Updates
+*/
+
+module.exports = {
+ token : 'AN-OAUTH2-TOKEN',
+ username : 'github-username',
+ name : 'Your Name',
+ email : 'user@email.com'
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/config/admin/release.js b/assets/semantic/tasks/config/admin/release.js
new file mode 100644
index 0000000..ce085e0
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/release.js
@@ -0,0 +1,117 @@
+/*******************************
+ Release Settings
+*******************************/
+
+// release settings
+module.exports = {
+
+ // path to components for repos
+ source : './dist/components/',
+
+ // modified asset paths for component repos
+ paths: {
+ source : '../themes/default/assets/',
+ output : 'assets/'
+ },
+
+ templates: {
+ bower : './tasks/config/admin/templates/bower.json',
+ composer : './tasks/config/admin/templates/composer.json',
+ package : './tasks/config/admin/templates/package.json',
+ meteor : {
+ css : './tasks/config/admin/templates/css-package.js',
+ component : './tasks/config/admin/templates/component-package.js',
+ less : './tasks/config/admin/templates/less-package.js',
+ },
+ readme : './tasks/config/admin/templates/README.md',
+ notes : './RELEASE-NOTES.md'
+ },
+
+ org : 'Semantic-Org',
+ repo : 'Semantic-UI',
+
+ // files created for package managers
+ files: {
+ composer : 'composer.json',
+ config : 'semantic.json',
+ npm : 'package.json',
+ meteor : 'package.js'
+ },
+
+ // root name for distribution repos
+ distRepoRoot : 'Semantic-UI-',
+
+ // root name for single component repos
+ componentRepoRoot : 'UI-',
+
+ // root name for package managers
+ packageRoot : 'semantic-ui-',
+
+ // root path to repos
+ outputRoot : '../repos/',
+
+ homepage : 'http://www.semantic-ui.com',
+
+ // distributions that get separate repos
+ distributions: [
+ 'LESS',
+ 'CSS'
+ ],
+
+ // components that get separate repositories for bower/npm
+ components : [
+ 'accordion',
+ 'ad',
+ 'api',
+ 'breadcrumb',
+ 'button',
+ 'card',
+ 'calendar',
+ 'checkbox',
+ 'comment',
+ 'container',
+ 'dimmer',
+ 'divider',
+ 'dropdown',
+ 'embed',
+ 'emoji',
+ 'feed',
+ 'flag',
+ 'form',
+ 'grid',
+ 'header',
+ 'icon',
+ 'image',
+ 'input',
+ 'item',
+ 'label',
+ 'list',
+ 'loader',
+ 'menu',
+ 'message',
+ 'modal',
+ 'nag',
+ 'placeholder',
+ 'popup',
+ 'progress',
+ 'rail',
+ 'slider',
+ 'rating',
+ 'reset',
+ 'reveal',
+ 'search',
+ 'segment',
+ 'shape',
+ 'sidebar',
+ 'site',
+ 'statistic',
+ 'step',
+ 'sticky',
+ 'tab',
+ 'table',
+ 'text',
+ 'toast',
+ 'transition',
+ 'visibility'
+ ]
+};
diff --git a/assets/semantic/tasks/config/admin/templates/README.md b/assets/semantic/tasks/config/admin/templates/README.md
new file mode 100644
index 0000000..d37f21f
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/README.md
@@ -0,0 +1,32 @@
+# Semantic {Component}
+
+This repository contains pre-compiled {component} files using the default themes. This is intended for use in projects that do not need all the bells and whistles of Semantic UI, and want to keep file size to a minimum.
+
+For the latest changes please see the [Release Notes](https://github.com/Semantic-Org/UI-{Component}/blob/master/RELEASE-NOTES.md)
+
+**Special Note**
+An update in `2.0.8` has fixed an issue which may have prevented some single component modules from working correctly. Please see notes in [this pull request](https://github.com/Semantic-Org/Semantic-UI/pull/2816).
+
+If you're looking for the full version of Semantic including all components and build tools [check out the main project repository](https://github.com/Semantic-Org/Semantic-UI/tree/1.0)
+
+#### To install with Bower
+```
+bower install semantic-ui-{component}
+```
+
+#### To install with NPM
+```
+npm install semantic-ui-{component}
+```
+
+#### To install with Meteor
+```
+meteor add semantic:ui-{component}
+```
+
+
+## Addendum
+
+This element's definitions (required class names, html structures) are available in the [UI Docs](http://www.semantic-ui.com)
+
+Please consider checking out [all the benefits to theming](http://www.learnsemantic.com/guide/expert.html) before using these stand-alone releases.
diff --git a/assets/semantic/tasks/config/admin/templates/bower.json b/assets/semantic/tasks/config/admin/templates/bower.json
new file mode 100644
index 0000000..9557266
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/bower.json
@@ -0,0 +1,29 @@
+{
+ "name" : "Component",
+ "description" : "Component distribution",
+ "homepage" : "http://www.semantic-ui.com",
+ "author": {
+ "name" : "Jack Lukic",
+ "web" : "http://www.jacklukic.com"
+ },
+ "ignore": [
+ "./index.js"
+ ],
+ "keywords": [
+ "semantic",
+ "ui",
+ "css3",
+ "framework"
+ ],
+ "license" : [
+ "http://semantic-ui.mit-license.org/"
+ ],
+ "ignore": [
+ "docs",
+ "node",
+ "server",
+ "spec",
+ "src",
+ "test"
+ ]
+}
diff --git a/assets/semantic/tasks/config/admin/templates/component-package.js b/assets/semantic/tasks/config/admin/templates/component-package.js
new file mode 100644
index 0000000..e1152c0
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/component-package.js
@@ -0,0 +1,14 @@
+
+Package.describe({
+ name : 'semantic:ui-{component}',
+ summary : 'Semantic UI - {Component}: Single component release',
+ version : '{version}',
+ git : 'git://github.com/Semantic-Org/UI-{Component}.git',
+});
+
+Package.onUse(function(api) {
+ api.versionsFrom('1.0');
+ api.addFiles([
+ {files}
+ ], 'client');
+});
diff --git a/assets/semantic/tasks/config/admin/templates/composer.json b/assets/semantic/tasks/config/admin/templates/composer.json
new file mode 100644
index 0000000..a180756
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/composer.json
@@ -0,0 +1,22 @@
+{
+ "name" : "fomantic/ui",
+ "description" : "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
+ "homepage" : "https://fomantic-ui.com",
+ "authors": [
+ {
+ "name" : "Jack Lukic",
+ "email": "jacklukic@gmail.com",
+ "homepage" : "http://www.jacklukic.com",
+ "role" : "Creator"
+ }
+ ],
+ "keywords": [
+ "fomantic",
+ "fomantic-ui",
+ "semantic",
+ "ui",
+ "css",
+ "framework"
+ ],
+ "license" : "MIT"
+}
\ No newline at end of file
diff --git a/assets/semantic/tasks/config/admin/templates/css-package.js b/assets/semantic/tasks/config/admin/templates/css-package.js
new file mode 100644
index 0000000..5f7b0cb
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/css-package.js
@@ -0,0 +1,34 @@
+var
+ where = 'client' // Adds files only to the client
+;
+
+Package.describe({
+ name : 'semantic:ui-css',
+ summary : 'Semantic UI - CSS Release of Semantic UI',
+ version : '{version}',
+ git : 'git://github.com/Semantic-Org/Semantic-UI-CSS.git',
+});
+
+Package.onUse(function(api) {
+
+ api.versionsFrom('1.0');
+
+ api.use('jquery', 'client');
+
+ api.addFiles([
+ // icons
+ 'themes/default/assets/fonts/icons.eot',
+ 'themes/default/assets/fonts/icons.svg',
+ 'themes/default/assets/fonts/icons.ttf',
+ 'themes/default/assets/fonts/icons.woff',
+ 'themes/default/assets/fonts/icons.woff2',
+
+ // flags
+ 'themes/default/assets/images/flags.png',
+
+ // release
+ 'semantic.css',
+ 'semantic.js'
+ ], 'client');
+
+});
diff --git a/assets/semantic/tasks/config/admin/templates/less-package.js b/assets/semantic/tasks/config/admin/templates/less-package.js
new file mode 100644
index 0000000..ee25092
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/less-package.js
@@ -0,0 +1,21 @@
+var
+ where = 'client' // Adds files only to the client
+;
+
+Package.describe({
+ name : 'semantic:ui',
+ summary : 'Semantic UI - LESS Release of Semantic UI',
+ version : '{version}',
+ git : 'git://github.com/Semantic-Org/Semantic-UI-LESS.git',
+});
+
+Package.onUse(function(api) {
+
+ api.versionsFrom('1.0');
+ api.use('less', 'client');
+
+ api.addFiles([
+ {files}
+ ], 'client');
+
+});
diff --git a/assets/semantic/tasks/config/admin/templates/package.json b/assets/semantic/tasks/config/admin/templates/package.json
new file mode 100644
index 0000000..2eb3ecd
--- /dev/null
+++ b/assets/semantic/tasks/config/admin/templates/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "semantic",
+ "version": "1.0.0",
+ "title": "Semantic UI",
+ "description": "Semantic empowers designers and developers by creating a shared vocabulary for UI.",
+ "homepage": "http://www.semantic-ui.com",
+ "author": "Jack Lukic ",
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/Semantic-Org/Semantic-UI.git"
+ },
+ "bugs": {
+ "url": "https://github.com/Semantic-Org/Semantic-UI/issues"
+ },
+ "devDependencies": {}
+}
diff --git a/assets/semantic/tasks/config/defaults.js b/assets/semantic/tasks/config/defaults.js
new file mode 100644
index 0000000..e0cf620
--- /dev/null
+++ b/assets/semantic/tasks/config/defaults.js
@@ -0,0 +1,123 @@
+/*******************************
+ Default Paths
+*******************************/
+
+module.exports = {
+
+ // base path added to all other paths
+ base : '',
+
+ // base path when installed with npm
+ pmRoot: 'semantic/',
+
+ // octal permission for output files, i.e. 0o644 or '644' (false does not adjust)
+ permission : '744',
+
+ // whether to generate rtl files
+ rtl : false,
+
+ // file paths
+ files: {
+ config : 'semantic.json',
+ site : 'src/site',
+ theme : 'src/theme.config'
+ },
+
+ // folder paths
+ paths: {
+ source: {
+ config : 'src/theme.config',
+ definitions : 'src/definitions/',
+ site : 'src/site/',
+ themes : 'src/themes/'
+ },
+ output: {
+ packaged : 'dist/',
+ uncompressed : 'dist/components/',
+ compressed : 'dist/components/',
+ themes : 'dist/themes/'
+ },
+ clean : 'dist/'
+ },
+
+ // components to include in package
+ components: [
+
+ // global
+ 'reset',
+ 'site',
+
+ // elements
+ 'button',
+ 'container',
+ 'divider',
+ 'emoji',
+ 'flag',
+ 'header',
+ 'icon',
+ 'image',
+ 'input',
+ 'label',
+ 'list',
+ 'loader',
+ 'placeholder',
+ 'rail',
+ 'reveal',
+ 'segment',
+ 'step',
+ 'text',
+
+ // collections
+ 'breadcrumb',
+ 'form',
+ 'grid',
+ 'menu',
+ 'message',
+ 'table',
+
+ // views
+ 'ad',
+ 'card',
+ 'comment',
+ 'feed',
+ 'item',
+ 'statistic',
+
+ // modules
+ 'accordion',
+ 'calendar',
+ 'checkbox',
+ 'dimmer',
+ 'dropdown',
+ 'embed',
+ 'modal',
+ 'nag',
+ 'popup',
+ 'progress',
+ 'slider',
+ 'rating',
+ 'search',
+ 'shape',
+ 'sidebar',
+ 'sticky',
+ 'tab',
+ 'toast',
+ 'transition',
+
+ // behaviors
+ 'api',
+ 'form',
+ 'state',
+ 'visibility'
+ ],
+
+ // whether to load admin tasks
+ admin: false,
+
+ // globs used for matching file patterns
+ globs : {
+ ignored : '!(*.min|*.map|*.rtl)',
+ ignoredRTL : '!(*.min|*.map)'
+ }
+
+};
diff --git a/assets/semantic/tasks/config/docs.js b/assets/semantic/tasks/config/docs.js
new file mode 100644
index 0000000..73679c0
--- /dev/null
+++ b/assets/semantic/tasks/config/docs.js
@@ -0,0 +1,32 @@
+/*******************************
+ Docs
+*******************************/
+
+/* Paths used for "serve-docs" and "build-docs" tasks */
+module.exports = {
+ base: '',
+ globs: {
+ eco: '**/*.html.eco'
+ },
+ paths: {
+ clean: '../docs/out/dist/',
+ source: {
+ config : 'src/theme.config',
+ definitions : 'src/definitions/',
+ site : 'src/site/',
+ themes : 'src/themes/'
+ },
+ output: {
+ examples : '../docs/out/examples/',
+ less : '../docs/out/src/',
+ metadata : '../docs/out/',
+ packaged : '../docs/out/dist/',
+ uncompressed : '../docs/out/dist/components/',
+ compressed : '../docs/out/dist/components/',
+ themes : '../docs/out/dist/themes/'
+ },
+ template: {
+ eco: '../docs/server/documents/'
+ },
+ }
+};
diff --git a/assets/semantic/tasks/config/npm/gulpfile.js b/assets/semantic/tasks/config/npm/gulpfile.js
new file mode 100644
index 0000000..51366eb
--- /dev/null
+++ b/assets/semantic/tasks/config/npm/gulpfile.js
@@ -0,0 +1,35 @@
+/*******************************
+ * Set-up
+ *******************************/
+
+var
+ gulp = require('gulp'),
+
+ // read user config to know what task to load
+ config = require('./tasks/config/user')
+;
+
+
+/*******************************
+ * Tasks
+ *******************************/
+
+require('./tasks/collections/build')(gulp);
+require('./tasks/collections/various')(gulp);
+require('./tasks/collections/install')(gulp);
+
+gulp.task('default', gulp.series('watch'));
+
+/*--------------
+ Docs
+---------------*/
+
+require('./tasks/collections/docs')(gulp);
+
+/*--------------
+ RTL
+---------------*/
+
+if (config.rtl) {
+ require('./tasks/collections/rtl')(gulp);
+}
diff --git a/assets/semantic/tasks/config/project/config.js b/assets/semantic/tasks/config/project/config.js
new file mode 100644
index 0000000..000b03c
--- /dev/null
+++ b/assets/semantic/tasks/config/project/config.js
@@ -0,0 +1,154 @@
+/*******************************
+ Set-up
+*******************************/
+
+var
+ extend = require('extend'),
+ fs = require('fs'),
+ path = require('path'),
+
+ defaults = require('../defaults')
+;
+
+
+/*******************************
+ Exports
+*******************************/
+
+module.exports = {
+
+ getPath: function(file, directory) {
+ var
+ configPath,
+ walk = function(directory) {
+ var
+ nextDirectory = path.resolve( path.join(directory, path.sep, '..') ),
+ currentPath = path.normalize( path.join(directory, file) )
+ ;
+ if( fs.existsSync(currentPath) ) {
+ // found file
+ configPath = path.normalize(directory);
+ return;
+ }
+ else {
+ // reached file system root, let's stop
+ if(nextDirectory == directory) {
+ return;
+ }
+ // otherwise recurse
+ walk(nextDirectory, file);
+ }
+ }
+ ;
+
+ // start walk from outside require-dot-files directory
+ file = file || defaults.files.config;
+ directory = directory || path.join(__dirname, path.sep, '..');
+ walk(directory);
+ return configPath || '';
+ },
+
+ // adds additional derived values to a config object
+ addDerivedValues: function(config) {
+
+ config = config || extend(false, {}, defaults);
+
+ /*--------------
+ File Paths
+ ---------------*/
+
+ var
+ configPath = this.getPath(),
+ sourcePaths = {},
+ outputPaths = {},
+ folder
+ ;
+
+ // resolve paths (config location + base + path)
+ for(folder in config.paths.source) {
+ if(config.paths.source.hasOwnProperty(folder)) {
+ sourcePaths[folder] = path.resolve(path.join(configPath, config.base, config.paths.source[folder]));
+ }
+ }
+ for(folder in config.paths.output) {
+ if(config.paths.output.hasOwnProperty(folder)) {
+ outputPaths[folder] = path.resolve(path.join(configPath, config.base, config.paths.output[folder]));
+ }
+ }
+
+ // set config paths to full paths
+ config.paths.source = sourcePaths;
+ config.paths.output = outputPaths;
+
+ // resolve "clean" command path
+ config.paths.clean = path.resolve( path.join(configPath, config.base, config.paths.clean) );
+
+ /*--------------
+ CSS URLs
+ ---------------*/
+
+ // determine asset paths in css by finding relative path between themes and output
+ // force forward slashes
+
+ config.paths.assets = {
+ source : '../../themes', // source asset path is always the same
+ uncompressed : './' + path.relative(config.paths.output.uncompressed, config.paths.output.themes).replace(/\\/g, '/'),
+ compressed : './' + path.relative(config.paths.output.compressed, config.paths.output.themes).replace(/\\/g, '/'),
+ packaged : './' + path.relative(config.paths.output.packaged, config.paths.output.themes).replace(/\\/g, '/')
+ };
+
+ /*--------------
+ Permission
+ ---------------*/
+
+ if(config.permission) {
+ config.hasPermissions = true;
+ config.parsedPermissions = typeof config.permission === 'string' ? parseInt(config.permission, 8) : config.permission;
+ }
+ else {
+ // pass blank object to avoid causing errors
+ config.permission = {};
+ config.hasPermissions = false;
+ config.parsedPermissions = {};
+ }
+
+ /*--------------
+ Globs
+ ---------------*/
+
+ if(!config.globs) {
+ config.globs = {};
+ }
+
+ // remove duplicates from component array
+ if(config.components instanceof Array) {
+ config.components = config.components.filter(function(component, index) {
+ return config.components.indexOf(component) == index;
+ });
+ }
+
+ const components = (Array.isArray(config.components) && config.components.length >= 1)
+ ? config.components
+ : defaults.components
+ ;
+ const individuals = (Array.isArray(config.individuals) && config.individuals.length >= 1)
+ ? config.individuals
+ : []
+ ;
+ const componentsExceptIndividuals = components.filter((component) => !individuals.includes(component));
+
+ // takes component object and creates file glob matching selected components
+ config.globs.components = '{' + componentsExceptIndividuals.join(',') + '}';
+
+ // components that should be built, but excluded from main .css/.js files
+ config.globs.individuals = (individuals.length >= 1)
+ ? '{' + individuals.join(',') + '}'
+ : undefined
+ ;
+
+ return config;
+
+ }
+
+};
+
diff --git a/assets/semantic/tasks/config/project/install.js b/assets/semantic/tasks/config/project/install.js
new file mode 100644
index 0000000..403d139
--- /dev/null
+++ b/assets/semantic/tasks/config/project/install.js
@@ -0,0 +1,763 @@
+/*******************************
+ Set-up
+*******************************/
+
+var
+ fs = require('fs'),
+ path = require('path'),
+ defaults = require('../defaults'),
+ release = require('./release'),
+
+ requireDotFile = require('require-dot-file')
+;
+
+/*******************************
+ When to Ask
+*******************************/
+
+/* Preconditions for install questions */
+
+var when = {
+
+ // path
+ changeRoot: function(questions) {
+ return (questions.useRoot !== undefined && questions.useRoot !== true);
+ },
+
+ // permissions
+ changePermissions: function(questions) {
+ return (questions.changePermissions && questions.changePermissions === true);
+ },
+
+ // install
+ hasConfig: function() {
+ return requireDotFile('semantic.json', process.cwd());
+ },
+
+ allowOverwrite: function(questions) {
+ return (questions.overwrite === undefined || questions.overwrite == 'yes');
+ },
+ notAuto: function(questions) {
+ return (questions.install !== 'auto' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
+ },
+ custom: function(questions) {
+ return (questions.install === 'custom' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
+ },
+ express: function(questions) {
+ return (questions.install === 'express' && (questions.overwrite === undefined || questions.overwrite == 'yes'));
+ },
+
+ // customize
+ customize: function(questions) {
+ return (questions.customize === true);
+ },
+ primaryColor: function(questions) {
+ return (questions.primaryColor);
+ },
+ secondaryColor: function(questions) {
+ return (questions.secondaryColor);
+ }
+};
+
+/*******************************
+ Response Filters
+*******************************/
+
+/* Filters to user input from install questions */
+
+var filter = {
+ removeTrailingSlash: function(path) {
+ return path.replace(/(\/$|\\$)+/mg, '');
+ }
+};
+
+/*******************************
+ Configuration
+*******************************/
+
+module.exports = {
+
+ // check whether install is setup
+ isSetup: function() {
+ return when.hasConfig();
+ },
+
+ // detect whether there is a semantic.json configuration and that the auto-install option is set to true
+ shouldAutoInstall: function() {
+ var
+ config = when.hasConfig()
+ ;
+ return config['autoInstall'];
+ },
+
+ // checks if files are in a PM directory
+ getPackageManager: function(directory) {
+ var
+ // returns last matching result (avoid sub-module detection)
+ walk = function(directory) {
+ var
+ pathArray = directory.split(path.sep),
+ folder = pathArray[pathArray.length - 1],
+ nextDirectory = path.join(directory, path.sep, '..')
+ ;
+ if( folder == 'bower_components') {
+ return {
+ name: 'Bower',
+ root: nextDirectory
+ };
+ }
+ else if(folder == 'node_modules') {
+ return {
+ name: 'NPM',
+ root: nextDirectory
+ };
+ }
+ else if(folder == 'composer') {
+ return {
+ name: 'Composer',
+ root: nextDirectory
+ };
+ }
+ if(path.resolve(directory) == path.resolve(nextDirectory)) {
+ return false;
+ }
+ // recurse downward
+ return walk(nextDirectory);
+ }
+ ;
+ // start walk from current directory if none specified
+ directory = directory || (__dirname + path.sep);
+ return walk(directory);
+ },
+
+ // checks if files is PMed submodule
+ isSubModule: function(directory) {
+ var
+ moduleFolders = 0,
+ walk = function(directory) {
+ var
+ pathArray = directory.split(path.sep),
+ folder = pathArray[pathArray.length - 2],
+ nextDirectory = path.join(directory, path.sep, '..')
+ ;
+ if( folder == 'bower_components') {
+ moduleFolders++;
+ }
+ else if(folder == 'node_modules') {
+ moduleFolders++;
+ }
+ else if(folder == 'composer') {
+ moduleFolders++;
+ }
+ if(path.resolve(directory) == path.resolve(nextDirectory)) {
+ return (moduleFolders > 1);
+ }
+ // recurse downward
+ return walk(nextDirectory);
+ }
+ ;
+ // start walk from current directory if none specified
+ directory = directory || (__dirname + path.sep);
+ return walk(directory);
+ },
+
+
+ createJSON: function(answers) {
+ var
+ json = {
+ paths: {
+ source: {},
+ output: {}
+ }
+ }
+ ;
+
+ // add components
+ if(answers.components) {
+ json.components = answers.components;
+ }
+
+ // add rtl choice
+ if(answers.rtl) {
+ json.rtl = answers.rtl;
+ }
+
+ // add permissions
+ if(answers.permission) {
+ json.permission = answers.permission;
+ }
+
+ // add path to semantic
+ if(answers.semanticRoot) {
+ json.base = path.normalize(answers.semanticRoot);
+ }
+
+ // record version number to avoid re-installing on same version
+ json.version = release.version;
+
+ // add dist folder paths
+ if(answers.dist) {
+ answers.dist = path.normalize(answers.dist);
+
+ json.paths.output = {
+ packaged : path.normalize(answers.dist + '/'),
+ uncompressed : path.normalize(answers.dist + '/components/'),
+ compressed : path.normalize(answers.dist + '/components/'),
+ themes : path.normalize(answers.dist + '/themes/')
+ };
+ }
+
+ // add site path
+ if(answers.site) {
+ json.paths.source.site = path.normalize(answers.site + '/');
+ }
+ if(answers.packaged) {
+ json.paths.output.packaged = path.normalize(answers.packaged + '/');
+ }
+ if(answers.compressed) {
+ json.paths.output.compressed = path.normalize(answers.compressed + '/');
+ }
+ if(answers.uncompressed) {
+ json.paths.output.uncompressed = path.normalize(answers.uncompressed + '/');
+ }
+ return json;
+ },
+
+ // files cleaned up after install
+ setupFiles: [
+ './src/theme.config.example',
+ './semantic.json.example',
+ './src/_site'
+ ],
+
+ regExp: {
+ // used to match siteFolder variable in theme.less
+ siteVariable: /@siteFolder .*\'(.*)/mg
+ },
+
+ // source paths (when installing)
+ source: {
+ config : './semantic.json.example',
+ definitions : './src/definitions',
+ gulpFile : './gulpfile.js',
+ lessImport : './src/semantic.less',
+ site : './src/_site',
+ tasks : './tasks',
+ themeConfig : './src/theme.config.example',
+ themeImport : './src/theme.less',
+ themes : './src/themes',
+ defaultTheme : './src/themes/default',
+ userGulpFile : './tasks/config/npm/gulpfile.js'
+ },
+
+ // expected final filenames
+ files: {
+ config : 'semantic.json',
+ lessImport : 'src/semantic.less',
+ site : 'src/site',
+ themeConfig : 'src/theme.config',
+ themeImport : 'src/theme.less'
+ },
+
+ // folder paths to files relative to root
+ folders: {
+ config : './',
+ definitions : 'src/definitions/',
+ lessImport : 'src/',
+ modules : 'node_modules/',
+ site : 'src/site/',
+ tasks : 'tasks/',
+ themeConfig : 'src/',
+ themeImport : 'src/',
+ themes : 'src/themes/',
+
+ defaultTheme : 'default/' // only path that is relative to another directory and not root
+ },
+
+ // questions asked during install
+ questions: {
+
+ root: [
+ {
+ type : 'list',
+ name : 'useRoot',
+ message :
+ '{packageMessage} Is this your project folder? {root}',
+ choices: [
+ {
+ name : 'Yes',
+ value : true
+ },
+ {
+ name : 'No, let me specify',
+ value : false
+ }
+ ]
+ },
+ {
+ type : 'input',
+ name : 'customRoot',
+ message : 'Please enter the absolute path to your project root',
+ default : '/my/project/path',
+ when : when.changeRoot
+ },
+ {
+ type : 'input',
+ name : 'semanticRoot',
+ message : 'Where should we put Semantic UI inside your project?',
+ default : 'semantic/'
+ }
+ ],
+
+ setup: [
+ {
+ type: 'list',
+ name: 'overwrite',
+ message: 'It looks like you have a semantic.json file already.',
+ when: when.hasConfig,
+ choices: [
+ {
+ name: 'Yes, extend my current settings.',
+ value: 'yes'
+ },
+ {
+ name: 'Skip install',
+ value: 'no'
+ }
+ ]
+ },
+ {
+ type: 'list',
+ name: 'install',
+ message: 'Set-up Semantic UI',
+ when: when.allowOverwrite,
+ choices: [
+ {
+ name: 'Automatic (Use default locations and all components)',
+ value: 'auto'
+ },
+ {
+ name: 'Express (Set components and output folder)',
+ value: 'express'
+ },
+ {
+ name: 'Custom (Customize all src/dist values)',
+ value: 'custom'
+ }
+ ]
+ },
+ {
+ type: 'checkbox',
+ name: 'components',
+ message: 'What components should we include in the package?',
+
+ // duplicated manually from tasks/defaults.js with additional property
+ choices: [
+ { name: "reset", checked: true },
+ { name: "site", checked: true },
+ { name: "button", checked: true },
+ { name: "container", checked: true },
+ { name: "divider", checked: true },
+ { name: "emoji", checked: true },
+ { name: "flag", checked: true },
+ { name: "header", checked: true },
+ { name: "icon", checked: true },
+ { name: "image", checked: true },
+ { name: "input", checked: true },
+ { name: "label", checked: true },
+ { name: "list", checked: true },
+ { name: "loader", checked: true },
+ { name: "rail", checked: true },
+ { name: "reveal", checked: true },
+ { name: "segment", checked: true },
+ { name: "step", checked: true },
+ { name: "breadcrumb", checked: true },
+ { name: "form", checked: true },
+ { name: "grid", checked: true },
+ { name: "menu", checked: true },
+ { name: "message", checked: true },
+ { name: "table", checked: true },
+ { name: "ad", checked: true },
+ { name: "card", checked: true },
+ { name: "comment", checked: true },
+ { name: "feed", checked: true },
+ { name: "item", checked: true },
+ { name: "statistic", checked: true },
+ { name: "accordion", checked: true },
+ { name: "calendar", checked: true },
+ { name: "checkbox", checked: true },
+ { name: "dimmer", checked: true },
+ { name: "dropdown", checked: true },
+ { name: "embed", checked: true },
+ { name: "modal", checked: true },
+ { name: "nag", checked: true },
+ { name: "placeholder", checked: true },
+ { name: "popup", checked: true },
+ { name: "progress", checked: true },
+ { name: "slider", checked: true },
+ { name: "rating", checked: true },
+ { name: "search", checked: true },
+ { name: "shape", checked: true },
+ { name: "sidebar", checked: true },
+ { name: "sticky", checked: true },
+ { name: "tab", checked: true },
+ { name: "text", checked: true },
+ { name: "toast", checked: true },
+ { name: "transition", checked: true },
+ { name: "api", checked: true },
+ { name: "form", checked: true },
+ { name: "state", checked: true },
+ { name: "visibility", checked: true }
+ ],
+ when: when.notAuto
+ },
+ {
+ type: 'list',
+ name: 'changePermissions',
+ when: when.notAuto,
+ message: 'Should we set permissions on outputted files?',
+ choices: [
+ {
+ name: 'No',
+ value: false
+ },
+ {
+ name: 'Yes',
+ value: true
+ }
+ ]
+ },
+ {
+ type: 'input',
+ name: 'permission',
+ message: 'What octal file permission should outputted files receive?',
+ default: defaults.permission,
+ when: when.changePermissions
+ },
+ {
+ type: 'list',
+ name: 'rtl',
+ message: 'Do you use a RTL (Right-To-Left) language?',
+ when: when.notAuto,
+ choices: [
+ {
+ name: 'No',
+ value: false
+ },
+ {
+ name: 'Yes',
+ value: true
+ },
+ {
+ name: 'Build Both',
+ value: 'both'
+ }
+ ]
+ },
+ {
+ type: 'input',
+ name: 'dist',
+ message: 'Where should we output Semantic UI?',
+ default: defaults.paths.output.packaged,
+ filter: filter.removeTrailingSlash,
+ when: when.express
+ },
+ {
+ type: 'input',
+ name: 'site',
+ message: 'Where should we put your site folder?',
+ default: defaults.paths.source.site,
+ filter: filter.removeTrailingSlash,
+ when: when.custom
+ },
+ {
+ type: 'input',
+ name: 'packaged',
+ message: 'Where should we output a packaged version?',
+ default: defaults.paths.output.packaged,
+ filter: filter.removeTrailingSlash,
+ when: when.custom
+ },
+ {
+ type: 'input',
+ name: 'compressed',
+ message: 'Where should we output compressed components?',
+ default: defaults.paths.output.compressed,
+ filter: filter.removeTrailingSlash,
+ when: when.custom
+ },
+ {
+ type: 'input',
+ name: 'uncompressed',
+ message: 'Where should we output uncompressed components?',
+ default: defaults.paths.output.uncompressed,
+ filter: filter.removeTrailingSlash,
+ when: when.custom
+ }
+ ],
+
+
+ cleanup: [
+ {
+ type: 'list',
+ name: 'cleanup',
+ message: 'Should we remove set-up files?',
+ choices: [
+ {
+ name: 'Yes (re-install will require redownloading semantic).',
+ value: 'yes'
+ },
+ {
+ name: 'No Thanks',
+ value: 'no'
+ }
+ ]
+ },
+ {
+ type: 'list',
+ name: 'build',
+ message: 'Do you want to build Semantic now?',
+ choices: [
+ {
+ name: 'Yes',
+ value: 'yes'
+ },
+ {
+ name: 'No',
+ value: 'no'
+ }
+ ]
+ },
+ ],
+ site: [
+ {
+ type: 'list',
+ name: 'customize',
+ message: 'You have not yet customized your site, can we help you do that?',
+ choices: [
+ {
+ name: 'Yes, ask me a few questions',
+ value: true
+ },
+ {
+ name: 'No I\'ll do it myself',
+ value: false
+ }
+ ]
+ },
+ {
+ type: 'list',
+ name: 'headerFont',
+ message: 'Select your header font',
+ choices: [
+ {
+ name: 'Helvetica Neue, Arial, sans-serif',
+ value: 'Helvetica Neue, Arial, sans-serif;'
+ },
+ {
+ name: 'Lato (Google Fonts)',
+ value: 'Lato'
+ },
+ {
+ name: 'Open Sans (Google Fonts)',
+ value: 'Open Sans'
+ },
+ {
+ name: 'Source Sans Pro (Google Fonts)',
+ value: 'Source Sans Pro'
+ },
+ {
+ name: 'Droid (Google Fonts)',
+ value: 'Droid'
+ },
+ {
+ name: 'I\'ll choose on my own',
+ value: false
+ }
+ ],
+ when: when.customize
+ },
+ {
+ type: 'list',
+ name: 'pageFont',
+ message: 'Select your page font',
+ choices: [
+ {
+ name: 'Helvetica Neue, Arial, sans-serif',
+ value: 'Helvetica Neue, Arial, sans-serif;'
+ },
+ {
+ name: 'Lato (Import from Google Fonts)',
+ value: 'Lato'
+ },
+ {
+ name: 'Open Sans (Import from Google Fonts)',
+ value: 'Open Sans'
+ },
+ {
+ name: 'Source Sans Pro (Import from Google Fonts)',
+ value: 'Source Sans Pro'
+ },
+ {
+ name: 'Droid (Google Fonts)',
+ value: 'Droid'
+ },
+ {
+ name: 'I\'ll choose on my own',
+ value: false
+ }
+ ],
+ when: when.customize
+ },
+ {
+ type: 'list',
+ name: 'fontSize',
+ message: 'Select your base font size',
+ default: '14px',
+ choices: [
+ {
+ name: '12px',
+ },
+ {
+ name: '13px',
+ },
+ {
+ name: '14px (Recommended)',
+ value: '14px'
+ },
+ {
+ name: '15px',
+ },
+ {
+ name: '16px',
+ },
+ {
+ name: 'I\'ll choose on my own',
+ value: false
+ }
+ ],
+ when: when.customize
+ },
+ {
+ type: 'list',
+ name: 'primaryColor',
+ message: 'Select the closest name for your primary brand color',
+ default: '14px',
+ choices: [
+ {
+ name: 'Blue'
+ },
+ {
+ name: 'Green'
+ },
+ {
+ name: 'Orange'
+ },
+ {
+ name: 'Pink'
+ },
+ {
+ name: 'Purple'
+ },
+ {
+ name: 'Red'
+ },
+ {
+ name: 'Teal'
+ },
+ {
+ name: 'Yellow'
+ },
+ {
+ name: 'Black'
+ },
+ {
+ name: 'I\'ll choose on my own',
+ value: false
+ }
+ ],
+ when: when.customize
+ },
+ {
+ type: 'input',
+ name: 'PrimaryHex',
+ message: 'Enter a hexcode for your primary brand color',
+ when: when.primaryColor
+ },
+ {
+ type: 'list',
+ name: 'secondaryColor',
+ message: 'Select the closest name for your secondary brand color',
+ default: '14px',
+ choices: [
+ {
+ name: 'Blue'
+ },
+ {
+ name: 'Green'
+ },
+ {
+ name: 'Orange'
+ },
+ {
+ name: 'Pink'
+ },
+ {
+ name: 'Purple'
+ },
+ {
+ name: 'Red'
+ },
+ {
+ name: 'Teal'
+ },
+ {
+ name: 'Yellow'
+ },
+ {
+ name: 'Black'
+ },
+ {
+ name: 'I\'ll choose on my own',
+ value: false
+ }
+ ],
+ when: when.customize
+ },
+ {
+ type: 'input',
+ name: 'secondaryHex',
+ message: 'Enter a hexcode for your secondary brand color',
+ when: when.secondaryColor
+ }
+ ]
+
+ },
+
+ settings: {
+
+ /* Rename Files */
+ rename: {
+ json : { extname : '.json' }
+ },
+
+ /* Copy Install Folders */
+ wrench: {
+
+ // overwrite existing files update & install (default theme / definition)
+ overwrite: {
+ forceDelete : true,
+ excludeHiddenUnix : true,
+ preserveFiles : false
+ },
+
+ // only create files that don't exist (site theme update)
+ merge: {
+ forceDelete : false,
+ excludeHiddenUnix : true,
+ preserveFiles : true
+ }
+
+ }
+ }
+};
diff --git a/assets/semantic/tasks/config/project/release.js b/assets/semantic/tasks/config/project/release.js
new file mode 100644
index 0000000..e266757
--- /dev/null
+++ b/assets/semantic/tasks/config/project/release.js
@@ -0,0 +1,65 @@
+/*******************************
+ Release Config
+*******************************/
+
+var
+ requireDotFile = require('require-dot-file'),
+ config,
+ npmPackage,
+ version
+;
+
+
+/*******************************
+ Derived Values
+*******************************/
+
+try {
+ config = requireDotFile('semantic.json', process.cwd());
+}
+catch(error) {}
+
+
+try {
+ npmPackage = require('../../../package.json');
+}
+catch(error) {
+ // generate fake package
+ npmPackage = {
+ name: 'Unknown',
+ version: 'x.x'
+ };
+}
+
+// looks for version in config or package.json (whichever is available)
+version = (npmPackage && npmPackage.version !== undefined && npmPackage.name == 'fomantic-ui')
+ ? npmPackage.version
+ : config.version
+;
+
+
+/*******************************
+ Export
+*******************************/
+
+module.exports = {
+
+ title : 'Fomantic UI',
+ repository : 'https://github.com/fomantic/Fomantic-UI',
+ url : 'http://fomantic-ui.com/',
+
+ banner: ''
+ + ' /*' + '\n'
+ + ' * # <%= title %> - <%= version %>' + '\n'
+ + ' * <%= repository %>' + '\n'
+ + ' * <%= url %>' + '\n'
+ + ' *' + '\n'
+ + ' * Copyright 2014 Contributors' + '\n'
+ + ' * Released under the MIT license' + '\n'
+ + ' * http://opensource.org/licenses/MIT' + '\n'
+ + ' *' + '\n'
+ + ' */' + '\n',
+
+ version : version
+
+};
diff --git a/assets/semantic/tasks/config/tasks.js b/assets/semantic/tasks/config/tasks.js
new file mode 100644
index 0000000..f5f20de
--- /dev/null
+++ b/assets/semantic/tasks/config/tasks.js
@@ -0,0 +1,177 @@
+var
+ browserslist = require('browserslist'),
+ console = require('better-console'),
+ config = require('./user'),
+ release = require('./project/release')
+;
+
+var defaultBrowsers = browserslist(browserslist.defaults)
+var userBrowsers = browserslist()
+var hasBrowserslistConfig = JSON.stringify(defaultBrowsers) !== JSON.stringify(userBrowsers)
+
+var overrideBrowserslist = hasBrowserslistConfig ? undefined : [
+ 'last 2 versions',
+ '> 1%',
+ 'opera 12.1',
+ 'bb 10',
+ 'android 4'
+]
+
+module.exports = {
+
+ banner : release.banner,
+
+ log: {
+ created: function(file) {
+ return 'Created: ' + file;
+ },
+ modified: function(file) {
+ return 'Modified: ' + file;
+ }
+ },
+
+ filenames: {
+ concatenatedCSS : 'semantic.css',
+ concatenatedJS : 'semantic.js',
+ concatenatedMinifiedCSS : 'semantic.min.css',
+ concatenatedMinifiedJS : 'semantic.min.js',
+ concatenatedRTLCSS : 'semantic.rtl.css',
+ concatenatedMinifiedRTLCSS : 'semantic.rtl.min.css'
+ },
+
+ regExp: {
+
+ comments: {
+
+ // remove all comments from config files (.variable)
+ variables : {
+ in : /(\/\*[\s\S]+?\*\/+)[\s\S]+?\/\* End Config \*\//,
+ out : '$1',
+ },
+
+ // add version to first comment
+ license: {
+ in : /(^\/\*[\s\S]+)(# Semantic UI )([\s\S]+?\*\/)/,
+ out : '$1$2' + release.version + ' $3'
+ },
+
+ // adds uniform spacing around comments
+ large: {
+ in : /(\/\*\*\*\*[\s\S]+?\*\/)/mg,
+ out : '\n\n$1\n'
+ },
+ small: {
+ in : /(\/\*---[\s\S]+?\*\/)/mg,
+ out : '\n$1\n'
+ },
+ tiny: {
+ in : /(\/\* [\s\S]+? \*\/)/mg,
+ out : '\n$1'
+ }
+ },
+
+ theme: /.*(\/|\\)themes(\/|\\).*?(?=(\/|\\))/mg
+
+ },
+
+ settings: {
+
+ /* Remove Files in Clean */
+ del: {
+ silent : true
+ },
+
+ concatCSS: {
+ rebaseUrls: false
+ },
+
+ /* Comment Banners */
+ header: {
+ title : release.title,
+ version : release.version,
+ repository : release.repository,
+ url : release.url
+ },
+
+ plumber: {
+ less: {
+ errorHandler: function(error) {
+ var
+ regExp = {
+ variable : /@(\S.*?)\s/,
+ theme : /themes[\/\\]+(.*?)[\/\\].*/,
+ element : /[\/\\]([^\/\\*]*)\.overrides/
+ },
+ theme,
+ element
+ ;
+ if(error && error.filename && error.filename.match(/theme.less/)) {
+ if (error.line == 9) {
+ element = regExp.variable.exec(error.message)[1];
+ if (element) {
+ console.error('Missing theme.config value for ', element);
+ }
+ console.error('Most likely new UI was added in an update. You will need to add missing elements from theme.config.example');
+ } else if (error.line == 73) {
+ element = regExp.element.exec(error.message)[1];
+ theme = regExp.theme.exec(error.message)[1];
+ console.error(theme + ' is not an available theme for ' + element);
+ } else {
+ console.error(error);
+ }
+ }
+ else {
+ throw new Error(error);
+ }
+ this.emit('end');
+ }
+ }
+ },
+
+ /* What Browsers to Prefix */
+ prefix: {
+ overrideBrowserslist
+ },
+
+ /* File Renames */
+ rename: {
+ minJS : { extname : '.min.js' },
+ minCSS : { extname : '.min.css' },
+ rtlCSS : { extname : '.rtl.css' },
+ rtlMinCSS : { extname : '.rtl.min.css' }
+ },
+
+ /* Minified CSS Concat */
+ minify: {
+ processImport : false,
+ restructuring : false,
+ keepSpecialComments : 1,
+ roundingPrecision : -1,
+ },
+
+ /* Minified JS Settings */
+ uglify: {
+ mangle : true,
+ output: {
+ comments: 'some'
+ }
+ },
+
+ /* Minified Concat CSS Settings */
+ concatMinify: {
+ processImport : false,
+ restructuring : false,
+ keepSpecialComments : false,
+ roundingPrecision : -1,
+ },
+
+ /* Minified Concat JS */
+ concatUglify: {
+ mangle : true,
+ output: {
+ comments: 'some'
+ }
+ }
+
+ }
+};
diff --git a/assets/semantic/tasks/config/user.js b/assets/semantic/tasks/config/user.js
new file mode 100644
index 0000000..295662b
--- /dev/null
+++ b/assets/semantic/tasks/config/user.js
@@ -0,0 +1,58 @@
+/*******************************
+ Set-up
+*******************************/
+
+var
+ // npm dependencies
+ extend = require('extend'),
+ fs = require('fs'),
+ path = require('path'),
+ requireDotFile = require('require-dot-file'),
+
+ // semantic.json defaults
+ defaults = require('./defaults'),
+ config = require('./project/config'),
+
+ // Final config object
+ gulpConfig = {},
+
+ // semantic.json settings
+ userConfig
+
+;
+
+
+/*******************************
+ User Config
+*******************************/
+
+try {
+ // looks for config file across all parent directories
+ userConfig = requireDotFile('semantic.json', process.cwd());
+}
+catch(error) {
+ if(error.code === 'MODULE_NOT_FOUND') {
+ console.error('No semantic.json config found');
+ }
+}
+
+// extend user config with defaults
+gulpConfig = (!userConfig)
+ ? extend(true, {}, defaults)
+ : extend(false, {}, defaults, userConfig)
+;
+
+/*******************************
+ Add Derived Values
+*******************************/
+
+// adds calculated values
+config.addDerivedValues(gulpConfig);
+
+
+/*******************************
+ Export
+*******************************/
+
+module.exports = gulpConfig;
+
diff --git a/assets/semantic/tasks/docs/build.js b/assets/semantic/tasks/docs/build.js
new file mode 100644
index 0000000..634d7ae
--- /dev/null
+++ b/assets/semantic/tasks/docs/build.js
@@ -0,0 +1,111 @@
+/*******************************
+ Build Docs
+ *******************************/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ fs = require('fs'),
+ map = require('map-stream'),
+
+ // gulp dependencies
+ print = require('gulp-print').default,
+
+ // user config
+ config = require('../config/docs'),
+
+ // install config
+ tasks = require('../config/tasks'),
+ configSetup = require('../config/project/config'),
+ install = require('../config/project/install'),
+
+ // metadata parsing
+ metadata = require('./metadata'),
+
+ // build methods
+ buildJS = require('../build/javascript').buildJS,
+ buildCSS = require('../build/css').buildCSS,
+ buildAssets = require('../build/assets').buildAssets,
+
+ // shorthand
+ log = tasks.log
+;
+
+
+module.exports = function (callback) {
+
+ // use a different config
+ config = configSetup.addDerivedValues(config);
+
+ // shorthand
+ const globs = config.globs;
+ const output = config.paths.output;
+
+ /*--------------
+ Parse metadata
+ ---------------*/
+
+ function buildMetaData() {
+ // parse all *.html.eco in docs repo, data will end up in
+ // metadata.result object. Note this assumes that the docs
+ // repository is present and in proper directory location as
+ // specified by docs.json.
+ console.info('Building Metadata');
+ return gulp.src(config.paths.template.eco + globs.eco)
+ .pipe(map(metadata.parser))
+ .on('end', function () {
+ fs.mkdirSync(output.metadata, {recursive: true});
+ fs.writeFileSync(output.metadata + '/metadata.json', JSON.stringify(metadata.result, null, 2));
+ });
+ }
+
+ /*--------------
+ Copy Examples
+ ---------------*/
+
+ function copyExample() {
+ // copy src/ to server
+ console.info('Copying examples');
+ return gulp.src('examples/**/*.*')
+ .pipe(gulp.dest(output.examples))
+ .pipe(print(log.created));
+ }
+
+
+ /*--------------
+ Copy Source
+ ---------------*/
+
+ function copyLess() {
+ // copy src/ to server
+ console.info('Copying LESS source');
+ return gulp.src('src/**/*.*')
+ .pipe(gulp.dest(output.less))
+ .pipe(print(log.created));
+ }
+
+
+ /*--------------
+ Build
+ ---------------*/
+
+ console.info('Building Semantic for docs');
+
+ if (!install.isSetup()) {
+ console.error('Cannot build files. Run "gulp install" to set-up Semantic');
+ callback();
+ return;
+ }
+
+ gulp.series(
+ buildMetaData,
+ copyExample,
+ copyLess,
+ (callback) => buildJS('docs', config, callback),
+ (callback) => buildCSS('docs', config, {}, callback),
+ (callback) => buildAssets(config, callback)
+ )(callback);
+
+};
diff --git a/assets/semantic/tasks/docs/metadata.js b/assets/semantic/tasks/docs/metadata.js
new file mode 100644
index 0000000..4769e21
--- /dev/null
+++ b/assets/semantic/tasks/docs/metadata.js
@@ -0,0 +1,138 @@
+
+/*******************************
+ Summarize Docs
+*******************************/
+
+var
+ // node dependencies
+ console = require('better-console'),
+ fs = require('fs'),
+ YAML = require('yamljs')
+;
+
+var data = {};
+
+/**
+ * Test for prefix in string.
+ * @param {string} str
+ * @param {string} prefix
+ * @return {boolean}
+ */
+function startsWith(str, prefix) {
+ return str.indexOf(prefix) === 0;
+};
+
+function inArray(needle, haystack) {
+ var length = haystack.length;
+ for(var i = 0; i < length; i++) {
+ if(haystack[i] == needle) return true;
+ }
+ return false;
+}
+
+/**
+ * Parses a file for metadata and stores result in data object.
+ * @param {File} file - object provided by map-stream.
+ * @param {function(?,File)} - callback provided by map-stream to
+ * reply when done.
+ */
+function parser(file, callback) {
+ // file exit conditions
+ if(file.isNull()) {
+ return callback(null, file); // pass along
+ }
+
+ if(file.isStream()) {
+ return callback(new Error('Streaming not supported'));
+ }
+
+ try {
+
+ var
+ /** @type {string} */
+ text = String(file.contents.toString('utf8')),
+ lines = text.split('\n'),
+ filename = file.path.substring(0, file.path.length - 4),
+ key = 'server/documents',
+ position = filename.indexOf(key)
+ ;
+
+ // exit conditions
+ if(!lines) {
+ return;
+ }
+ if(position < 0) {
+ return callback(null, file);
+ }
+
+ filename = filename.substring(position + key.length + 1, filename.length);
+
+ var
+ lineCount = lines.length,
+ active = false,
+ yaml = [],
+ categories = [
+ 'UI Element',
+ 'UI Global',
+ 'UI Collection',
+ 'UI View',
+ 'UI Module',
+ 'UI Behavior'
+ ],
+ index,
+ meta,
+ line
+ ;
+
+ for(index = 0; index < lineCount; index++) {
+
+ line = lines[index];
+
+ // Wait for metadata block to begin
+ if(!active) {
+ if(startsWith(line, '---')) {
+ active = true;
+ }
+ continue;
+ }
+ // End of metadata block, stop parsing.
+ if(startsWith(line, '---')) {
+ break;
+ }
+ yaml.push(line);
+ }
+
+
+ // Parse yaml.
+ meta = YAML.parse(yaml.join('\n'));
+ if(meta && meta.type && meta.title && inArray(meta.type, categories) ) {
+ meta.category = meta.type;
+ meta.filename = filename;
+ meta.url = '/' + filename;
+ meta.title = meta.title;
+ // Primary key will by filepath
+ data[meta.element] = meta;
+ }
+ else {
+ // skip
+ // console.log(meta);
+ }
+
+
+ }
+
+ catch(error) {
+ console.log(error, filename);
+ }
+
+ callback(null, file);
+
+}
+
+/**
+ * Export function expected by map-stream.
+ */
+module.exports = {
+ result : data,
+ parser : parser
+};
diff --git a/assets/semantic/tasks/docs/serve.js b/assets/semantic/tasks/docs/serve.js
new file mode 100644
index 0000000..21c4006
--- /dev/null
+++ b/assets/semantic/tasks/docs/serve.js
@@ -0,0 +1,95 @@
+/*******************************
+ Serve Docs
+ *******************************/
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+
+ // gulp dependencies
+ print = require('gulp-print').default,
+
+ // user config
+ config = require('../config/docs'),
+
+ // task config
+ tasks = require('../config/tasks'),
+ configSetup = require('../config/project/config'),
+
+ // shorthand
+ log = tasks.log,
+
+ css = require('../build/css'),
+ js = require('../build/javascript'),
+ assets = require('../build/assets')
+;
+
+
+module.exports = function () {
+
+ // use a different config
+ config = configSetup.addDerivedValues(config);
+
+ console.clear();
+ console.log('Watching source files for changes');
+
+ /*--------------
+ Copy Source
+ ---------------*/
+
+ gulp
+ .watch(['src/**/*.*'])
+ .on('all', function (event, path) {
+ // We don't handle deleted files yet
+ if (event === 'unlink' || event === 'unlinkDir') {
+ return;
+ }
+ return gulp.src(path, {
+ base: 'src/'
+ })
+ .pipe(gulp.dest(config.paths.output.less))
+ .pipe(print(log.created))
+ ;
+ })
+ ;
+
+ /*--------------
+ Copy Examples
+ ---------------*/
+
+ gulp
+ .watch(['examples/**/*.*'])
+ .on('all', function (event, path) {
+ // We don't handle deleted files yet
+ if (event === 'unlink' || event === 'unlinkDir') {
+ return;
+ }
+ return gulp.src(path, {
+ base: 'examples/'
+ })
+ .pipe(gulp.dest(config.paths.output.examples))
+ .pipe(print(log.created))
+ ;
+ })
+ ;
+
+ /*--------------
+ Watch CSS
+ ---------------*/
+
+ css.watch('docs', config);
+
+ /*--------------
+ Watch JS
+ ---------------*/
+
+ js.watch('docs', config);
+
+ /*--------------
+ Watch Assets
+ ---------------*/
+
+ assets.watch('docs', config);
+
+};
diff --git a/assets/semantic/tasks/install.js b/assets/semantic/tasks/install.js
new file mode 100644
index 0000000..c822af0
--- /dev/null
+++ b/assets/semantic/tasks/install.js
@@ -0,0 +1,439 @@
+/*******************************
+ * Install Task
+ *******************************/
+
+/*
+ Install tasks
+
+ For more notes
+
+ * Runs automatically after npm update (hooks)
+ * (NPM) Install - Will ask for where to put semantic (outside pm folder)
+ * (NPM) Upgrade - Will look for semantic install, copy over files and update if new version
+ * Standard installer runs asking for paths to site files etc
+
+*/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ extend = require('extend'),
+ fs = require('fs'),
+ mkdirp = require('mkdirp'),
+ path = require('path'),
+
+ // gulp dependencies
+ chmod = require('gulp-chmod'),
+ del = require('del'),
+ jsonEditor = require('gulp-json-editor'),
+ plumber = require('gulp-plumber'),
+ inquirer = require('inquirer'),
+ rename = require('gulp-rename'),
+ replace = require('gulp-replace'),
+ requireDotFile = require('require-dot-file'),
+ wrench = require('wrench-sui'),
+
+ // install config
+ install = require('./config/project/install'),
+
+ // user config
+ config = require('./config/user'),
+
+ // release config (name/title/etc)
+ release = require('./config/project/release'),
+
+ // shorthand
+ questions = install.questions,
+ files = install.files,
+ folders = install.folders,
+ regExp = install.regExp,
+ settings = install.settings,
+ source = install.source
+;
+
+// Export install task
+module.exports = function (callback) {
+
+ var
+ currentConfig = requireDotFile('semantic.json', process.cwd()),
+ manager = install.getPackageManager(),
+ rootQuestions = questions.root,
+ installFolder = false,
+ answers
+ ;
+
+ console.clear();
+
+ /* Test NPM install
+ manager = {
+ name : 'NPM',
+ root : path.normalize(__dirname + '/../')
+ };
+ */
+
+
+ /* Don't do end user config if SUI is a sub-module */
+ if (install.isSubModule()) {
+ console.info('SUI is a sub-module, skipping end-user install');
+ return;
+ }
+
+ /*-----------------
+ Update SUI
+ -----------------*/
+
+// run update scripts if semantic.json exists
+ if (currentConfig && manager.name === 'NPM') {
+
+ var
+ updateFolder = path.join(manager.root, currentConfig.base),
+ updatePaths = {
+ config : path.join(manager.root, files.config),
+ tasks : path.join(updateFolder, folders.tasks),
+ themeImport : path.join(updateFolder, folders.themeImport),
+ definition : path.join(currentConfig.paths.source.definitions),
+ site : path.join(currentConfig.paths.source.site),
+ theme : path.join(currentConfig.paths.source.themes),
+ defaultTheme: path.join(currentConfig.paths.source.themes, folders.defaultTheme)
+ }
+ ;
+
+ // duck-type if there is a project installed
+ if (fs.existsSync(updatePaths.definition)) {
+
+ // perform update if new version
+ if (currentConfig.version !== release.version) {
+ console.log('Updating Semantic UI from ' + currentConfig.version + ' to ' + release.version);
+
+ console.info('Updating ui definitions...');
+ wrench.copyDirSyncRecursive(source.definitions, updatePaths.definition, settings.wrench.overwrite);
+
+ console.info('Updating default theme...');
+ wrench.copyDirSyncRecursive(source.themes, updatePaths.theme, settings.wrench.merge);
+ wrench.copyDirSyncRecursive(source.defaultTheme, updatePaths.defaultTheme, settings.wrench.overwrite);
+
+ console.info('Updating tasks...');
+ wrench.copyDirSyncRecursive(source.tasks, updatePaths.tasks, settings.wrench.overwrite);
+
+ console.info('Updating gulpfile.js');
+ gulp.src(source.userGulpFile)
+ .pipe(plumber())
+ .pipe(gulp.dest(updateFolder))
+ ;
+
+ // copy theme import
+ console.info('Updating theme import file');
+ gulp.src(source.themeImport)
+ .pipe(plumber())
+ .pipe(gulp.dest(updatePaths.themeImport))
+ ;
+
+ console.info('Adding new site theme files...');
+ wrench.copyDirSyncRecursive(source.site, updatePaths.site, settings.wrench.merge);
+
+ console.info('Updating version...');
+
+ // update version number in semantic.json
+ gulp.src(updatePaths.config)
+ .pipe(plumber())
+ .pipe(rename(settings.rename.json)) // preserve file extension
+ .pipe(jsonEditor({
+ version: release.version
+ }))
+ .pipe(gulp.dest(manager.root))
+ ;
+
+ console.info('Update complete! Run "\x1b[92mgulp build\x1b[0m" to rebuild dist/ files.');
+
+ callback();
+ return;
+ } else {
+ console.log('Current version of Semantic UI already installed');
+ callback();
+ return;
+ }
+
+ } else {
+ console.error('Cannot locate files to update at path: ', updatePaths.definition);
+ console.log('Running installer');
+ }
+
+ }
+
+ /*--------------
+ Determine Root
+ ---------------*/
+
+// PM that supports Build Tools (NPM Only Now)
+ if (manager.name === 'NPM') {
+ rootQuestions[0].message = rootQuestions[0].message
+ .replace('{packageMessage}', 'We detected you are using ' + manager.name + ' Nice!')
+ .replace('{root}', manager.root)
+ ;
+ // set default path to detected PM root
+ rootQuestions[0].default = manager.root;
+ rootQuestions[1].default = manager.root;
+
+ // insert PM questions after "Install Type" question
+ Array.prototype.splice.apply(questions.setup, [2, 0].concat(rootQuestions));
+
+ // omit cleanup questions for managed install
+ questions.cleanup = [];
+ }
+
+
+ /*--------------
+ Create SUI
+ ---------------*/
+
+ gulp.task('run setup', function (callback) {
+
+ // If auto-install is switched on, we skip the configuration section and simply reuse the configuration from semantic.json
+ if (install.shouldAutoInstall()) {
+ answers = {
+ overwrite : 'yes',
+ install : 'auto',
+ useRoot : true,
+ semanticRoot: currentConfig.base
+ };
+ callback();
+ } else {
+ return inquirer.prompt(questions.setup)
+ .then((setupAnswers) => {
+ // hoist
+ answers = setupAnswers;
+ });
+ }
+ });
+
+ gulp.task('create install files', function (callback) {
+
+ /*--------------
+ Exit Conditions
+ ---------------*/
+
+ // if config exists and user specifies not to proceed
+ if (answers.overwrite !== undefined && answers.overwrite == 'no') {
+ callback();
+ return;
+ }
+ console.clear();
+ if (install.shouldAutoInstall()) {
+ console.log('Auto-Installing (Without User Interaction)');
+ } else {
+ console.log('Installing');
+ }
+ console.log('------------------------------');
+
+
+ /*--------------
+ Paths
+ ---------------*/
+
+ var
+ installPaths = {
+ config : files.config,
+ configFolder : folders.config,
+ site : answers.site || folders.site,
+ themeConfig : files.themeConfig,
+ themeConfigFolder: folders.themeConfig
+ }
+ ;
+
+ /*--------------
+ NPM Install
+ ---------------*/
+
+ // Check if PM install
+ if (manager && (answers.useRoot || answers.customRoot)) {
+
+ // Set root to custom root path if set
+ if (answers.customRoot) {
+ if (answers.customRoot === '') {
+ console.log('Unable to proceed, invalid project root');
+ callback();
+ return;
+ }
+ manager.root = answers.customRoot;
+ }
+
+ // special install paths only for PM install
+ installPaths = extend(false, {}, installPaths, {
+ definition : folders.definitions,
+ lessImport : folders.lessImport,
+ tasks : folders.tasks,
+ theme : folders.themes,
+ defaultTheme: path.join(folders.themes, folders.defaultTheme),
+ themeImport : folders.themeImport
+ });
+
+ // add project root to semantic root
+ installFolder = path.join(manager.root, answers.semanticRoot);
+
+ // add install folder to all output paths
+ for (var destination in installPaths) {
+ if (installPaths.hasOwnProperty(destination)) {
+ // config goes in project root, rest in install folder
+ installPaths[destination] = (destination == 'config' || destination == 'configFolder')
+ ? path.normalize(path.join(manager.root, installPaths[destination]))
+ : path.normalize(path.join(installFolder, installPaths[destination]))
+ ;
+ }
+ }
+
+ // create project folders
+ try {
+ mkdirp.sync(installFolder);
+ mkdirp.sync(installPaths.definition);
+ mkdirp.sync(installPaths.theme);
+ mkdirp.sync(installPaths.tasks);
+ } catch (error) {
+ console.error('NPM does not have permissions to create folders at your specified path. Adjust your folders permissions and run "npm install" again');
+ }
+
+ console.log('Installing to \x1b[92m' + answers.semanticRoot + '\x1b[0m');
+
+ console.info('Copying UI definitions');
+ wrench.copyDirSyncRecursive(source.definitions, installPaths.definition, settings.wrench.overwrite);
+
+ console.info('Copying UI themes');
+ wrench.copyDirSyncRecursive(source.themes, installPaths.theme, settings.wrench.merge);
+ wrench.copyDirSyncRecursive(source.defaultTheme, installPaths.defaultTheme, settings.wrench.overwrite);
+
+ console.info('Copying gulp tasks');
+ wrench.copyDirSyncRecursive(source.tasks, installPaths.tasks, settings.wrench.overwrite);
+
+ // copy theme import
+ console.info('Adding theme files');
+ gulp.src(source.themeImport)
+ .pipe(plumber())
+ .pipe(gulp.dest(installPaths.themeImport))
+ ;
+ gulp.src(source.lessImport)
+ .pipe(plumber())
+ .pipe(gulp.dest(installPaths.lessImport))
+ ;
+
+ // create gulp file
+ console.info('Creating gulpfile.js');
+ gulp.src(source.userGulpFile)
+ .pipe(plumber())
+ .pipe(gulp.dest(installFolder))
+ ;
+
+ }
+
+
+ /*--------------
+ Site Theme
+ ---------------*/
+
+ // Copy _site templates folder to destination
+ if (fs.existsSync(installPaths.site)) {
+ console.info('Site folder exists, merging files (no overwrite)', installPaths.site);
+ } else {
+ console.info('Creating site theme folder', installPaths.site);
+ }
+ wrench.copyDirSyncRecursive(source.site, installPaths.site, settings.wrench.merge);
+
+ /*--------------
+ Theme Config
+ ---------------*/
+
+ gulp.task('create theme.config', function () {
+ var
+ // determine path to site theme folder from theme config
+ // force CSS path variable to use forward slashes for paths
+ pathToSite = path.relative(path.resolve(installPaths.themeConfigFolder), path.resolve(installPaths.site)).replace(/\\/g, '/'),
+ siteVariable = "@siteFolder : '" + pathToSite + "/';"
+ ;
+
+ // rewrite site variable in theme.less
+ console.info('Adjusting @siteFolder to: ', pathToSite + '/');
+
+ if (fs.existsSync(installPaths.themeConfig)) {
+ console.info('Modifying src/theme.config (LESS config)', installPaths.themeConfig);
+ return gulp.src(installPaths.themeConfig)
+ .pipe(plumber())
+ .pipe(replace(regExp.siteVariable, siteVariable))
+ .pipe(gulp.dest(installPaths.themeConfigFolder))
+ ;
+ } else {
+ console.info('Creating src/theme.config (LESS config)', installPaths.themeConfig);
+ return gulp.src(source.themeConfig)
+ .pipe(plumber())
+ .pipe(rename({extname: ''}))
+ .pipe(replace(regExp.siteVariable, siteVariable))
+ .pipe(gulp.dest(installPaths.themeConfigFolder))
+ ;
+ }
+ });
+
+ /*--------------
+ Semantic.json
+ ---------------*/
+
+ gulp.task('create semantic.json', function () {
+
+ var
+ jsonConfig = install.createJSON(answers)
+ ;
+
+ // adjust variables in theme.less
+ if (fs.existsSync(installPaths.config)) {
+ console.info('Extending config file (semantic.json)', installPaths.config);
+ return gulp.src(installPaths.config)
+ .pipe(plumber())
+ .pipe(rename(settings.rename.json)) // preserve file extension
+ .pipe(jsonEditor(jsonConfig))
+ .pipe(gulp.dest(installPaths.configFolder))
+ ;
+ } else {
+ console.info('Creating config file (semantic.json)', installPaths.config);
+ return gulp.src(source.config)
+ .pipe(plumber())
+ .pipe(rename({extname: ''})) // remove .template from ext
+ .pipe(jsonEditor(jsonConfig, {end_with_newline: true}))
+ .pipe(gulp.dest(installPaths.configFolder))
+ ;
+ }
+
+ });
+
+ gulp.series('create theme.config', 'create semantic.json')(callback);
+ });
+
+ gulp.task('clean up install', function (callback) {
+
+ // Completion Message
+ if (installFolder && !install.shouldAutoInstall()) {
+ console.log('\n Setup Complete! \n Installing Peer Dependencies. \x1b[0;31mPlease refrain from ctrl + c\x1b[0m... \n After completion navigate to \x1b[92m' + answers.semanticRoot + '\x1b[0m and run "\x1b[92mgulp build\x1b[0m" to build');
+ callback();
+ } else {
+ console.log('');
+ console.log('');
+
+ // If auto-install is switched on, we skip the configuration section and simply build the dependencies
+ if (install.shouldAutoInstall()) {
+ gulp.series('build')(callback);
+ } else {
+ // We don't return the inquirer promise on purpose because we handle the callback ourselves
+ inquirer.prompt(questions.cleanup)
+ .then((answers) => {
+ if (answers.cleanup === 'yes') {
+ del(install.setupFiles);
+ }
+ if (answers.build === 'yes') {
+ gulp.series('build')(callback);
+ } else {
+ callback();
+ }
+ });
+ }
+ }
+ });
+
+ gulp.series('run setup', 'create install files', 'clean up install')(callback);
+};
diff --git a/assets/semantic/tasks/rtl/build.js b/assets/semantic/tasks/rtl/build.js
new file mode 100644
index 0000000..757d9c1
--- /dev/null
+++ b/assets/semantic/tasks/rtl/build.js
@@ -0,0 +1,12 @@
+/*******************************
+ * Build Task
+ *******************************/
+
+var
+ gulp = require('gulp')
+;
+
+// RTL builds are now handled by the default build process
+module.exports = function (callback) {
+ gulp.series(require('../build'))(callback);
+};
diff --git a/assets/semantic/tasks/rtl/watch.js b/assets/semantic/tasks/rtl/watch.js
new file mode 100644
index 0000000..334d6cc
--- /dev/null
+++ b/assets/semantic/tasks/rtl/watch.js
@@ -0,0 +1,12 @@
+/*******************************
+ * Watch Task
+ *******************************/
+
+var
+ gulp = require('gulp')
+;
+
+// RTL watch are now handled by the default watch process
+module.exports = function (callback) {
+ gulp.series(require('../watch'))(callback);
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/version.js b/assets/semantic/tasks/version.js
new file mode 100644
index 0000000..683527c
--- /dev/null
+++ b/assets/semantic/tasks/version.js
@@ -0,0 +1,12 @@
+/*******************************
+ Version Task
+*******************************/
+
+var
+ release = require('./config/project/release')
+;
+
+module.exports = function(callback) {
+ console.log(release.title + ' ' + release.version);
+ callback();
+};
\ No newline at end of file
diff --git a/assets/semantic/tasks/watch.js b/assets/semantic/tasks/watch.js
new file mode 100644
index 0000000..d45801d
--- /dev/null
+++ b/assets/semantic/tasks/watch.js
@@ -0,0 +1,51 @@
+/*******************************
+ * Watch Task
+ *******************************/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+
+ // user config
+ config = require('./config/user'),
+
+ // task config
+ install = require('./config/project/install'),
+
+ css = require('./build/css'),
+ js = require('./build/javascript'),
+ assets = require('./build/assets')
+
+;
+
+// export task
+module.exports = function () {
+
+ if (!install.isSetup()) {
+ console.error('Cannot watch files. Run "gulp install" to set-up Semantic');
+ return;
+ }
+
+ console.clear();
+ console.log('Watching source files for changes');
+
+ /*--------------
+ Watch CSS
+ ---------------*/
+ css.watch('default', config);
+
+ /*--------------
+ Watch JS
+ ---------------*/
+
+ js.watch('default', config);
+
+ /*--------------
+ Watch Assets
+ ---------------*/
+
+ assets.watch('default', config);
+
+};
diff --git a/assets/slideout.css b/assets/slideout.css
new file mode 100644
index 0000000..6d8b740
--- /dev/null
+++ b/assets/slideout.css
@@ -0,0 +1,63 @@
+/* body {
+ width: 100%;
+ height: 100%;
+} */
+
+#mobile-menu {
+ background-color: rgba(0,0,0, 0.9);
+ min-height: 100vh;
+}
+
+.slideout-menu {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ width: 210px;
+ min-height: 100vh;
+ overflow-y: scroll;
+ -webkit-overflow-scrolling: touch;
+ z-index: 0;
+ display: none;
+}
+
+.slideout-menu-left {
+ left: 0;
+}
+
+.slideout-menu-right {
+ right: 0;
+}
+
+.slideout-panel {
+ position: relative;
+ z-index: 1;
+ will-change: transform;
+ background-color: #FFF; /* A background-color is required */
+ min-height: 100vh;
+}
+
+.slideout-open,
+.slideout-open body,
+.slideout-open .slideout-panel {
+ overflow: hidden;
+}
+
+.slideout-open .slideout-menu {
+ display: block;
+}
+
+.panel:before {
+ content: '';
+ display: block;
+ background-color: rgba(0,0,0,0);
+ transition: background-color 0.5s ease-in-out;
+}
+
+.panel-open:before {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ background-color: rgba(0,0,0,.5);
+ z-index: 99;
+}
\ No newline at end of file
diff --git a/assets/slideout.js b/assets/slideout.js
new file mode 100644
index 0000000..30b7706
--- /dev/null
+++ b/assets/slideout.js
@@ -0,0 +1,37 @@
+import Slideout from "slideout";
+
+document.addEventListener("DOMContentLoaded", () => {
+ // if (window.slideout) {
+ // window.slideout.destroy();
+ // window.slideout = null;
+ // }
+ window.slideout = new Slideout({
+ "panel": document.getElementById("panel"),
+ "menu": document.getElementById("mobile-menu"),
+ "padding": 210,
+ "tolerance": 70
+ });
+ window.slideout.enableTouch();
+
+ var close = (e) => {
+ e.preventDefault();
+ window.slideout.close();
+ };
+
+ // Toggle button
+ $("a.mobile-menu-toggle").on("click", (e) => {
+ window.slideout.toggle();
+ e.preventDefault();
+ });
+ $("#mobile-menu a.item").on("click", () => {
+ window.slideout.close();
+ // do not prevent default, we do want to go to the thing
+ });
+
+ window.slideout.on("beforeopen", () => window.slideout.panel.classList.add("panel-open"));
+ window.slideout.on("open", () => window.slideout.panel.addEventListener("click", close));
+ window.slideout.on("beforeclose", () => {
+ window.slideout.panel.classList.remove("panel-open");
+ window.slideout.panel.removeEventListener("click", close);
+ });
+});
diff --git a/assets/socket.js b/assets/socket.js
new file mode 100644
index 0000000..09929ab
--- /dev/null
+++ b/assets/socket.js
@@ -0,0 +1,63 @@
+// NOTE: The contents of this file will only be executed if
+// you uncomment its entry in "assets/js/app.js".
+
+// To use Phoenix channels, the first step is to import Socket,
+// and connect at the socket path in "lib/web/endpoint.ex".
+//
+// Pass the token on params as below. Or remove it
+// from the params if you are not using authentication.
+import {Socket} from "phoenix"
+
+let socket = new Socket("/socket", {params: {token: window.userToken}})
+
+// When you connect, you'll often need to authenticate the client.
+// For example, imagine you have an authentication plug, `MyAuth`,
+// which authenticates the session and assigns a `:current_user`.
+// If the current user exists you can assign the user's token in
+// the connection for use in the layout.
+//
+// In your "lib/web/router.ex":
+//
+// pipeline :browser do
+// ...
+// plug MyAuth
+// plug :put_user_token
+// end
+//
+// defp put_user_token(conn, _) do
+// if current_user = conn.assigns[:current_user] do
+// token = Phoenix.Token.sign(conn, "user socket", current_user.id)
+// assign(conn, :user_token, token)
+// else
+// conn
+// end
+// end
+//
+// Now you need to pass this token to JavaScript. You can do so
+// inside a script tag in "lib/web/templates/layout/app.html.eex":
+//
+//
+//
+// You will need to verify the user token in the "connect/3" function
+// in "lib/web/channels/user_socket.ex":
+//
+// def connect(%{"token" => token}, socket, _connect_info) do
+// # max_age: 1209600 is equivalent to two weeks in seconds
+// case Phoenix.Token.verify(socket, "user socket", token, max_age: 1209600) do
+// {:ok, user_id} ->
+// {:ok, assign(socket, :user, user_id)}
+// {:error, reason} ->
+// :error
+// end
+// end
+//
+// Finally, connect to the socket:
+socket.connect()
+
+// Now that you are connected, you can join channels with a topic:
+let channel = socket.channel("topic:subtopic", {})
+channel.join()
+ .receive("ok", resp => { console.log("Joined successfully", resp) })
+ .receive("error", resp => { console.log("Unable to join", resp) })
+
+export default socket
diff --git a/assets/webpack.config.js b/assets/webpack.config.js
new file mode 100644
index 0000000..dc3be62
--- /dev/null
+++ b/assets/webpack.config.js
@@ -0,0 +1,106 @@
+const path = require('path');
+// const glob = require('glob');
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
+const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+
+module.exports = (env, options) => ({
+ optimization: {
+ minimizer: [
+ new UglifyJsPlugin({ cache: true, parallel: true, sourceMap: false }),
+ new OptimizeCSSAssetsPlugin({})
+ ]
+ },
+ entry: {
+ imagine_cms: "./frontend.js",
+ manage: "./manage.js"
+ },
+ output: {
+ filename: '[name].js',
+ path: path.resolve(__dirname, '../priv/static/js')
+ },
+ module: {
+ rules: [
+ {
+ test: require.resolve('jquery'),
+ loader: 'expose-loader',
+ options: {
+ exposes: ['$', 'jQuery', 'Imagine'],
+ },
+ },
+ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ use: {
+ loader: 'babel-loader'
+ }
+ },
+ {
+ test: /\.css$/,
+ use: [
+ MiniCssExtractPlugin.loader,
+ 'css-loader',
+ {
+ loader: 'postcss-loader',
+ options: {
+ plugins: (loader) => [
+ require('autoprefixer') //({ browsers: ['last 3 versions', 'iOS 9'] }),
+ ]
+ }
+ },
+ ]
+ },
+ {
+ test: /\.scss$/,
+ use: [
+ MiniCssExtractPlugin.loader,
+ "css-loader",
+ {
+ loader: 'postcss-loader',
+ options: {
+ plugins: (loader) => [
+ require('autoprefixer') //({ browsers: ['last 3 versions', 'iOS 9'] }),
+ ]
+ }
+ },
+ {
+ loader: "sass-loader",
+ options: { implementation: require("sass") }
+ }
+ ]
+ },
+ {
+ test: /\.(png|jpg|gif|svg)$/,
+ use: [
+ {
+ loader: 'file-loader',
+ options: {
+ name: '[name].[ext]',
+ outputPath: '../images'
+ }
+ }
+ ]
+ },
+ {
+ test: /\.(eot|ttf|woff|woff2)$/,
+ use: [
+ {
+ loader: 'file-loader',
+ options: {
+ name: '[name].[ext]',
+ outputPath: '../fonts'
+ }
+ }
+ ]
+ }
+ ]
+ },
+ plugins: [
+ new MiniCssExtractPlugin({ filename: '../css/[name].css' }),
+ new CopyWebpackPlugin([
+ { from: 'semantic/dist/themes/default/', to: '../dist/themes/default/' },
+ { from: 'images/page_loading.gif', to: '../images/' },
+ ])
+ ]
+});
diff --git a/bin/compile-assets b/bin/compile-assets
new file mode 100755
index 0000000..66d4ebc
--- /dev/null
+++ b/bin/compile-assets
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+(cd assets && npm install && npm run deploy) && git add priv/static
diff --git a/bin/npm-watch b/bin/npm-watch
new file mode 100755
index 0000000..42aa5e9
--- /dev/null
+++ b/bin/npm-watch
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+cd assets && npm run watch
diff --git a/config/config.exs b/config/config.exs
new file mode 100644
index 0000000..e993ed4
--- /dev/null
+++ b/config/config.exs
@@ -0,0 +1,11 @@
+# This file is responsible for configuring your application
+# and its dependencies with the aid of the Mix.Config module.
+#
+# This configuration file is loaded before any dependency and
+# is restricted to this project.
+
+# General application configuration
+use Mix.Config
+
+# Use Jason for JSON parsing in Phoenix
+config :phoenix, :json_library, Jason
diff --git a/lib/crutches/option.ex b/lib/crutches/option.ex
new file mode 100644
index 0000000..707874a
--- /dev/null
+++ b/lib/crutches/option.ex
@@ -0,0 +1,232 @@
+defmodule Crutches.Option do
+ @moduledoc """
+ Convenience functions for dealing with function option handling.
+
+ This provides a mechanism for declaring default options and merging these with
+ those given by any caller.
+
+ # Usage
+
+ When you have a function with the following head, the use of this module may
+ be beneficial. Of course you can have as much required `args` as you want.
+ `options` is a keyword list.
+
+ def foo(args, options)
+
+ Usage is pretty simple. Declare a module attribute with the name of your
+ function. It should be a keyword list with the keys `:valid` and `:defaults`.
+ `:valid` should contain a list of atoms. `:defaults` should contain another
+ keyword list with the default options of your function.
+
+ ## Example
+
+ @function_name [
+ valid: ~w(foo bar)a
+ defaults: [
+ foo: "some",
+ bar: "value"
+ ]
+ ]
+
+ When this is done, you can declare your function head like this:
+
+ def function_name(args, opts \\ []])
+
+ And then you're all set to actually write the meat of your function. (You of
+ course don't need a function head if your function only consists of one clause.)
+
+ def function_name(args, opts) do
+ # This validates and merges the options, throwing on error.
+ opts = Crutches.Options.combine!(opts, @function_name)
+
+ # You can now use the options.
+ do_something_with(opts[:foo])
+ end
+ """
+
+ @type key :: atom
+ @type value :: any
+
+ @type t :: [{key, value}]
+ @type t(value) :: [{key, value}]
+
+ @type ok(value) :: {:ok, value}
+ @type error :: {:error, any}
+
+ @doc """
+ Validates the `opts` keyword list according to `config`, combines defaults.
+
+ For intended use see the module documentation.
+
+ # Config variable
+
+ The `config` parameter should be a keyword list with the following keys:
+
+ - `:valid` ([atom]) --- Parameters that your function accepts.
+ - `:defaults` ([atom: any]) --- Default values for the options in `:valid`.
+
+ Returns `{:ok, opts}` on succes, `{:error, invalid_keys}` on failure.
+
+ # Examples
+
+ iex> config = [valid: ~w(foo bar)a, defaults: [foo: "some", bar: "value"]]
+ iex> Option.combine([foo: "another"], config)
+ {:ok, [bar: "value", foo: "another"]}
+
+ iex> config = [valid: ~w(bar baz)a, defaults: [bar: "good", baz: "values"]]
+ iex> Option.combine([boom: "this blows up"], config)
+ {:error, [:boom]}
+
+ """
+ @spec combine(t, t([atom]) | t(t)) :: ok(t) | error
+ def combine(opts, config) do
+ combine(opts, config, &Elixir.Keyword.merge(&1, &2))
+ end
+
+ @doc """
+ This function is the same as `combine/2`, except it returns `options` on
+ validation succes and throws `ArgumentError` on validation failure.
+
+ # Examples
+
+ iex> config = [valid: ~w(foo bar)a, defaults: [foo: "some", bar: "value"]]
+ iex> Option.combine!([foo: "another"], config)
+ [bar: "value", foo: "another"]
+
+ iex> config = [valid: ~w(bar baz)a, defaults: [bar: "good", baz: "values"]]
+ iex> Option.combine!([boom: "this blows up"], config)
+ ** (ArgumentError) invalid key boom
+
+ """
+ @spec combine!(t, t([atom]) | t(t)) :: t
+ def combine!(opts, config) do
+ combine!(opts, config, &Elixir.Keyword.merge(&1, &2))
+ end
+
+ @doc """
+ Validate `opts` according to `config`, combines according to `combinator`
+
+ Behavior is the same as `combine/2`, except that you can specify how `opts`
+ and `config[:defaults]` are merged by passing a `combinator` function.
+
+ This function should combine the two keyword lists into one. It receives
+ `config[:defaults]` as the first parameter and the validated `opts` as the
+ second.
+
+ # Examples
+
+ Contrived example showing of the use of `combinator`.
+
+ iex> config = [valid: ~w(foo bar)a, defaults: [foo: "some", bar: "value"]]
+ iex> combinator = &Keyword.merge/2
+ iex> Option.combine([foo: "again"], config, combinator)
+ {:ok, [bar: "value", foo: "again"]}
+
+ """
+ @spec combine(t, t | t(t), (t, t -> t)) :: ok(t) | error
+ def combine(opts, config, combinator) do
+ case validate(opts, config[:valid]) do
+ {:ok, _} -> {:ok, config[:defaults] |> combinator.(opts) |> sort_options}
+ {:error, invalid} -> {:error, invalid}
+ end
+ end
+
+ defp sort_options(options) do
+ Enum.sort(options, fn {key1, _}, {key2, _} -> key1 <= key2 end)
+ end
+
+ @doc ~S"""
+ Throwing version of `combine/3`
+
+ # Examples
+
+ iex> config = [valid: ~w(foo bar)a, defaults: [foo: "some", bar: "value"]]
+ iex> combinator = fn(_, _) -> nil end
+ iex> Option.combine!([baz: "fail"], config, combinator)
+ ** (ArgumentError) invalid key baz
+ """
+ @spec combine!(t, t | t(t), (t, t -> t)) :: t
+ def combine!(opts, config, combinator) do
+ case combine(opts, config, combinator) do
+ {:ok, opts} ->
+ opts
+
+ {:error, invalid} ->
+ invalid = invalid |> Enum.join(" ")
+ raise ArgumentError, message: "invalid key #{invalid}"
+ end
+ end
+
+ @doc ~S"""
+ Checks a `opts` for keys not in `valid`.
+
+ Returns {:ok, []} if all options are kosher, otherwise {:error, list},
+ where list is a list of all invalid keys.
+
+ # Examples
+
+ iex> Option.validate([good: "", good_opt: ""], [:good, :good_opt])
+ {:ok, []}
+
+ iex> Option.validate([good: "", bad: ""], [:good])
+ {:error, [:bad]}
+
+ """
+ @spec validate(t, [atom]) :: ok([]) | error
+ def validate(opts, valid) do
+ if Enum.empty?(invalid_options(opts, valid)) do
+ {:ok, []}
+ else
+ {:error, invalid_options(opts, valid)}
+ end
+ end
+
+ @doc ~S"""
+ Throwing version of `Option.validate`
+
+ # Examples
+
+ iex> Option.validate!([good: "", bad: ""], [:good])
+ ** (ArgumentError) invalid key bad
+
+ iex> Option.validate!([good: "", bad: "", worse: ""], [:good])
+ ** (ArgumentError) invalid key bad, worse
+
+ iex> Option.validate!([good: ""], [:good])
+ true
+ """
+ @spec validate!(t, [atom]) :: true
+ def validate!(opts, valid) do
+ case validate(opts, valid) do
+ {:ok, _} ->
+ true
+
+ {:error, invalid_options} ->
+ raise ArgumentError, "invalid key " <> Enum.join(invalid_options, ", ")
+ end
+ end
+
+ @doc ~S"""
+ Check `opts` for keys not in `valid`.
+
+ Return `false` when a bad key is found, otherwise return `true`.
+
+ # Examples
+
+ iex> Option.all_valid?([good: "", good_opt: ".", bad: "!"], [:good, :good_opt])
+ false
+
+ iex> Option.all_valid?([good: "", good_opt: "."], [:good, :good_opt])
+ true
+ """
+ @spec all_valid?(t, [atom]) :: boolean
+ def all_valid?(opts, valid) do
+ Enum.empty?(invalid_options(opts, valid))
+ end
+
+ defp invalid_options(opts, valid) do
+ opts
+ |> Keyword.keys()
+ |> Enum.reject(&(&1 in valid))
+ end
+end
diff --git a/lib/crutches/string.ex b/lib/crutches/string.ex
new file mode 100644
index 0000000..fb75fa2
--- /dev/null
+++ b/lib/crutches/string.ex
@@ -0,0 +1,255 @@
+defmodule Crutches.String do
+ alias Crutches.Option
+
+ import String,
+ only: [
+ replace: 3,
+ slice: 2,
+ trim: 1
+ ]
+
+ @moduledoc ~s"""
+ Convenience functions for strings.
+
+ This module provides several convenience functions operating on strings.
+ Simply call any function (with any options if applicable) to make use of it.
+ """
+
+ # Access
+
+ @doc ~S"""
+ Gives a substring of `string` from the given `position`.
+
+ If `position` is positive, counts from the start of the string.
+ If `position` is negative, count from the end of the string.
+
+ ## Examples
+ iex> String.from("hello", 0)
+ "hello"
+
+ iex> String.from("hello", 3)
+ "lo"
+
+ iex> String.from("hello", -2)
+ "lo"
+
+ iex> String.from("hello", -7)
+ ""
+
+ You can mix it with +to+ method and do fun things like:
+
+ iex> "hello"
+ iex> |> String.from(0)
+ iex> |> String.to(-1)
+ "hello"
+
+ iex> "hello"
+ iex> |> String.from(1)
+ iex> |> String.to(-2)
+ "ell"
+
+ iex> "a"
+ iex> |> String.from(1)
+ iex> |> String.to(1500)
+ ""
+
+ iex> "elixir"
+ iex> |> String.from(-10)
+ iex> |> String.to(-7)
+ ""
+ """
+ @spec from(String.t(), integer) :: String.t()
+ def from(string, position) when position >= 0 do
+ slice(string, position..(String.length(string) - 1))
+ end
+
+ def from(string, position) when position < 0 do
+ new_position = String.length(string) + position
+
+ case new_position < 0 do
+ true -> ""
+ false -> slice(string, new_position..(String.length(string) - 1))
+ end
+ end
+
+ @doc ~S"""
+ Returns a substring from the beginning of the string to the given position.
+ If the position is negative, it is counted from the end of the string.
+
+ ## Examples
+ iex> String.to("hello", 0)
+ "h"
+
+ iex> String.to("hello", 3)
+ "hell"
+
+ iex> String.to("hello", -2)
+ "hell"
+
+ You can mix it with +from+ method and do fun things like:
+ iex> "hello"
+ iex> |> String.from(0)
+ iex> |> String.to(-1)
+ "hello"
+
+ iex> "hello"
+ iex> |> String.from(1)
+ iex> |> String.to(-2)
+ "ell"
+ """
+ @spec to(String.t(), integer) :: String.t()
+ def to(string, length) when length >= 0 do
+ slice(string, 0..length)
+ end
+
+ def to(string, length) when length < 0 do
+ slice(string, 0..(String.length(string) + length))
+ end
+
+ # Filters
+
+ @doc ~S"""
+ Returns the string, first removing all whitespace on both ends of
+ the string, and then changing remaining consecutive whitespace
+ groups into one space each.
+
+ ## Examples
+ iex> str = "A multi line
+ iex> string"
+ iex> String.squish(str)
+ "A multi line string"
+
+ iex> str = " foo bar \n \t boo"
+ iex> String.squish(str)
+ "foo bar boo"
+ """
+ @spec squish(String.t()) :: String.t()
+ def squish(string) do
+ string |> replace(~r/[[:space:]]+/, " ") |> trim
+ end
+
+ @doc ~S"""
+ Remove all occurrences of `pattern` from `string`.
+
+ Can also take a list of `patterns`.
+
+ ## Examples
+ iex> String.remove("foo bar test", " test")
+ "foo bar"
+
+ iex> String.remove("foo bar test", ~r/foo /)
+ "bar test"
+
+ iex> String.remove("foo bar test", [~r/foo /, " test"])
+ "bar"
+ """
+ @spec remove(String.t(), String.t() | Regex.t() | list(any)) :: String.t()
+ def remove(string, patterns) when is_list(patterns) do
+ patterns |> Enum.reduce(string, &remove(&2, &1))
+ end
+
+ def remove(string, pattern) do
+ replace(string, pattern, "")
+ end
+
+ @doc ~S"""
+ Capitalizes every word in a string. Similar to ActiveSupport's #titleize.
+
+ iex> String.titlecase("the truth is rarely pure and never simple.")
+ "The Truth Is Rarely Pure And Never Simple."
+ iex> String.titlecase("THE TRUTH IS RARELY PURE AND NEVER SIMPLE.")
+ "The Truth Is Rarely Pure And Never Simple."
+ iex> String.titlecase("the truth is rarely pure and NEVER simple.")
+ "The Truth Is Rarely Pure And Never Simple."
+ """
+ @spec titlecase(String.t()) :: String.t()
+ def titlecase(string) when is_binary(string) do
+ string
+ |> String.split(" ")
+ |> Enum.map(&String.capitalize/1)
+ |> Enum.join(" ")
+ end
+
+ @doc ~S"""
+ Truncates a given `text` after a given `length` if `text` is longer than `length`:
+
+ Truncates a given text after a given `len`gth if text is longer than `len`th.
+ The last characters will be replaced with the `:omission` (defaults to “...”) for a total length not exceeding `len`.
+
+ Pass a `:separator` to truncate text at a natural break (the first occurence of that separator before the provided length).
+
+ ## Examples
+
+ iex> String.truncate("Once upon a time in a world far far away", 27)
+ "Once upon a time in a wo..."
+
+ iex> String.truncate("Once upon a time in a world far far away", 27, separator: " ")
+ "Once upon a time in a..."
+
+ iex> String.truncate("Once upon a time in a world far far away", 27, separator: ~r/\s/)
+ "Once upon a time in a..."
+
+ iex> String.truncate("Once upon a time in a world far far away", 35, separator: "far ")
+ "Once upon a time in a world far..."
+
+ iex> String.truncate("And they found that many people were sleeping better.", 25, omission: "... (continued)")
+ "And they f... (continued)"
+
+ iex> String.truncate("Supercalifragilisticexpialidocious", 24, separator: ~r/\s/)
+ "Supercalifragilistice..."
+ """
+ @truncate [
+ valid: ~w(separator omission)a,
+ defaults: [
+ separator: nil,
+ omission: "..."
+ ]
+ ]
+ def truncate(string, len, opts \\ [])
+
+ def truncate(string, len, opts) when is_binary(string) and is_integer(len) do
+ opts = Option.combine!(opts, @truncate)
+
+ if String.length(string) > len do
+ length_with_room = len - String.length(opts[:omission])
+ do_truncate(string, length_with_room, opts[:separator], opts[:omission])
+ else
+ string
+ end
+ end
+
+ defp do_truncate(string, length, sep, omission) when is_nil(sep) do
+ String.slice(string, 0, length) <> omission
+ end
+
+ defp do_truncate(string, length, sep, omission) when is_binary(sep) do
+ sep_size = String.length(sep)
+
+ chunk_indexes =
+ string
+ |> String.codepoints()
+ |> Enum.take(length)
+ |> Enum.with_index()
+ |> Enum.chunk_every(sep_size)
+ |> Enum.reverse()
+ |> Enum.find(fn chars ->
+ str = chars |> Enum.map(&elem(&1, 0)) |> Enum.join("")
+ str == sep
+ end)
+
+ {_, index} = if chunk_indexes, do: List.last(chunk_indexes), else: {nil, length}
+
+ do_truncate(string, index, nil, omission)
+ end
+
+ defp do_truncate(string, length, sep, omission) do
+ case Regex.scan(sep, string, return: :index) do
+ [_ | _] = captures ->
+ [{index, _}] = captures |> Enum.reverse() |> Enum.find(fn [{i, _}] -> i <= length end)
+ do_truncate(string, index, nil, omission)
+
+ [] ->
+ do_truncate(string, length, nil, omission)
+ end
+ end
+end
diff --git a/lib/imagine.ex b/lib/imagine.ex
new file mode 100644
index 0000000..d8e1a59
--- /dev/null
+++ b/lib/imagine.ex
@@ -0,0 +1,9 @@
+defmodule Imagine do
+ @moduledoc """
+ Imagine keeps the contexts that define your domain
+ and business logic.
+
+ Contexts are also responsible for managing your data, regardless
+ if it comes from the database, an external API or others.
+ """
+end
diff --git a/lib/imagine/accounts.ex b/lib/imagine/accounts.ex
new file mode 100644
index 0000000..803db42
--- /dev/null
+++ b/lib/imagine/accounts.ex
@@ -0,0 +1,124 @@
+defmodule Imagine.Accounts do
+ @moduledoc """
+ The Accounts context.
+ """
+
+ import Ecto.Query, warn: false
+ alias Imagine.Repo
+
+ alias Imagine.Accounts.User
+
+ @doc """
+ Returns the list of users.
+
+ ## Examples
+
+ iex> list_users()
+ [%User{}, ...]
+
+ """
+ def list_users do
+ Repo.all(User |> order_by(:username))
+ end
+
+ @doc """
+ Gets a single user.
+
+ Raises `Ecto.NoResultsError` if the User does not exist.
+
+ ## Examples
+
+ iex> get_user!(123)
+ %User{}
+
+ iex> get_user!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_user!(id), do: Repo.get!(User, id)
+
+ def get_user(id), do: Repo.get(User, id)
+
+ def get_user_by_username_or_email(username_or_email) do
+ Repo.get_by(User, username: username_or_email) ||
+ Repo.get_by(User, email: username_or_email)
+ end
+
+ @doc """
+ Creates a user.
+
+ ## Examples
+
+ iex> create_user(%{field: value})
+ {:ok, %User{}}
+
+ iex> create_user(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_user(attrs) do
+ %User{}
+ |> User.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a user.
+
+ ## Examples
+
+ iex> update_user(user, %{field: new_value})
+ {:ok, %User{}}
+
+ iex> update_user(user, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_user(%User{} = user, attrs) do
+ user
+ |> User.changeset(attrs)
+ |> Repo.update()
+ end
+
+ def update_user_change_password(%User{} = user, attrs) do
+ user
+ |> User.change_password_changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc false
+ def update_user_set_is_superuser(%User{} = user, val) do
+ user
+ |> User.is_superuser_changeset(%{is_superuser: val})
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a User.
+
+ ## Examples
+
+ iex> delete_user(user)
+ {:ok, %User{}}
+
+ iex> delete_user(user)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_user(%User{} = user) do
+ Repo.delete(user)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking user changes.
+
+ ## Examples
+
+ iex> change_user(user)
+ %Ecto.Changeset{source: %User{}}
+
+ """
+ def change_user(%User{} = user) do
+ User.changeset(user, %{})
+ end
+end
diff --git a/lib/imagine/accounts/user.ex b/lib/imagine/accounts/user.ex
new file mode 100644
index 0000000..33fc31b
--- /dev/null
+++ b/lib/imagine/accounts/user.ex
@@ -0,0 +1,126 @@
+defmodule Imagine.Accounts.User do
+ @moduledoc """
+ User - for authentication, authorization, auditing
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ schema "users" do
+ field :username, :string
+ field :current_password, :string, virtual: true
+ field :password, :string, virtual: true
+ field :password_hash, :string
+ field :password_hash_type, :string
+
+ field :first_name, :string
+ field :last_name, :string
+ field :email, :string
+
+ field :dynamic_fields, :string
+
+ field :active, :boolean, default: false
+ field :is_superuser, :boolean, default: false
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ def name(user) do
+ names = [to_string(user.first_name), to_string(user.last_name)]
+
+ case names do
+ ["", ""] -> user.email
+ _ -> Enum.join(names, " ")
+ end
+ end
+
+ @doc false
+ def changeset(user, attrs) do
+ case to_string(attrs["password"] || attrs[:password]) do
+ "" ->
+ user
+ |> cast(attrs, [:username, :first_name, :last_name, :email, :active])
+ |> validate_required([:username, :email, :active])
+
+ _ ->
+ changeset_with_password(user, attrs)
+ end
+ end
+
+ def changeset_with_password(user, attrs) do
+ user
+ |> cast(attrs, [:username, :password, :first_name, :last_name, :email, :active])
+ |> validate_required([:username, :password, :email, :active])
+ |> validate_length(:password, min: 8)
+ |> validate_confirmation(:password)
+ |> put_pass_hash()
+ end
+
+ def change_password_changeset(user, attrs) do
+ user
+ |> cast(attrs, [:current_password, :password])
+ |> validate_required([:current_password, :password])
+ |> validate_length(:password, min: 8)
+ |> validate_confirmation(:password)
+ |> validate_current_password(user)
+ |> put_pass_hash()
+ end
+
+ # def registration_changeset(user, attrs) do
+ # user
+ # |> cast(attrs, [:username, :password, :first_name, :last_name, :email])
+ # |> put_change(:active, true)
+ # |> validate_length(:password, min: 8)
+ # |> validate_confirmation(:password)
+ # |> put_pass_hash()
+ # end
+
+ @doc false
+ def is_superuser_changeset(user, attrs) do
+ user
+ |> cast(attrs, [:is_superuser])
+ |> validate_required([:is_superuser])
+ end
+
+ defp validate_current_password(
+ %Ecto.Changeset{valid?: true, changes: %{current_password: password}} = changeset,
+ user
+ ) do
+ case check_password(user, password) do
+ true -> changeset
+ false -> add_error(changeset, :current_password, "is not correct")
+ end
+ end
+
+ defp validate_current_password(changeset, _user), do: changeset
+
+ defp put_pass_hash(%Ecto.Changeset{valid?: true, changes: %{password: password}} = changeset) do
+ %{password_hash: hash} = Argon2.add_hash(password)
+
+ changeset
+ |> put_change(:password_hash, hash)
+ |> put_change(:password_hash_type, "argon2")
+ end
+
+ defp put_pass_hash(changeset), do: changeset
+
+ # works with new argon2 hashes and legacy sha1 hashes (and others can be added)
+ # every legacy installation should have used the default 16-char salt
+ # ... but if not, we'll find out pretty quick
+ def check_password(%__MODULE__{} = user, password, saltlen \\ 16) do
+ case user.password_hash_type do
+ "argon2" ->
+ Argon2.verify_pass(password, user.password_hash)
+
+ _ ->
+ # legacy hash
+ salt = String.slice(user.password_hash, 0..(saltlen - 1))
+ legacy_sha1_hash(password, salt) == user.password_hash
+ end
+ end
+
+ def legacy_sha1_hash(password, salt) do
+ hash = :crypto.hash(:sha, salt <> password) |> Base.encode16() |> String.downcase()
+ salt <> hash
+ end
+end
diff --git a/lib/imagine/application.ex b/lib/imagine/application.ex
new file mode 100644
index 0000000..cfcf938
--- /dev/null
+++ b/lib/imagine/application.ex
@@ -0,0 +1,33 @@
+defmodule Imagine.Application do
+ # See https://hexdocs.pm/elixir/Application.html
+ # for more information on OTP Applications
+ @moduledoc false
+
+ use Application
+
+ def start(_type, _args) do
+ # List all child processes to be supervised
+ children = [
+ Imagine.Repo,
+ Imagine.Cache,
+ %{
+ id: NodeJS,
+ start:
+ {NodeJS, :start_link,
+ [[path: Application.app_dir(:imagine_cms, "priv/js"), pool_size: 2]]}
+ }
+ ]
+
+ # See https://hexdocs.pm/elixir/Supervisor.html
+ # for other strategies and supported options
+ opts = [strategy: :one_for_one, name: Imagine.Supervisor]
+ Supervisor.start_link(children, opts)
+ end
+
+ # Tell Phoenix to update the endpoint configuration
+ # whenever the application is updated.
+ def config_change(_changed, _new, _removed) do
+ # ImagineWeb.Endpoint.config_change(changed, removed)
+ :ok
+ end
+end
diff --git a/lib/imagine/cache.ex b/lib/imagine/cache.ex
new file mode 100644
index 0000000..65a73b0
--- /dev/null
+++ b/lib/imagine/cache.ex
@@ -0,0 +1,5 @@
+defmodule Imagine.Cache do
+ use Nebulex.Cache,
+ otp_app: :imagine_cms,
+ adapter: Nebulex.Adapters.Local
+end
diff --git a/lib/imagine/cms_pages.ex b/lib/imagine/cms_pages.ex
new file mode 100644
index 0000000..f386e9a
--- /dev/null
+++ b/lib/imagine/cms_pages.ex
@@ -0,0 +1,618 @@
+defmodule Imagine.CmsPages do
+ @moduledoc """
+ The CmsPages context.
+ """
+
+ import Ecto.Query, warn: false
+ alias Imagine.Repo
+
+ alias Imagine.CmsPages.{CmsPage, CmsPageObject, CmsPageTag, CmsPageVersion}
+
+ # alias Imagine.Accounts.User
+
+ @doc """
+ Returns the list of cms_pages.
+
+ ## Examples
+
+ iex> list_cms_pages()
+ [%CmsPage{}, ...]
+
+ """
+ def list_cms_pages(order_by \\ [asc: :path], limit \\ 1000) do
+ Repo.all(from p in active_pages_query(), order_by: ^order_by, limit: ^limit)
+ end
+
+ def list_recent_cms_pages(limit \\ 10) do
+ Repo.all(from p in active_pages_query(), order_by: [desc: :updated_on], limit: ^limit)
+ end
+
+ def active_pages_query do
+ from(p in CmsPage, where: is_nil(p.discarded_at), preload: [:sub_pages])
+ end
+
+ def active_versions_query do
+ from(v in CmsPageVersion, where: is_nil(v.discarded_at))
+ end
+
+ def discarded_pages_query do
+ from(p in CmsPage, where: not is_nil(p.discarded_at))
+ end
+
+ def list_discarded_cms_pages do
+ Repo.all(from p in discarded_pages_query(), order_by: [desc: :discarded_at])
+ end
+
+ def get_home_page! do
+ Repo.get_by(active_pages_query(), path: "") || Repo.get!(Page, id: 1)
+ end
+
+ def get_trash_page do
+ %CmsPage{
+ id: "_trash",
+ name: "_trash",
+ path: "_trash",
+ discarded_at: NaiveDateTime.utc_now(),
+ sub_pages:
+ list_discarded_cms_pages()
+ |> Enum.map(fn p -> %{p | path: "_trash/#{p.name}", sub_pages: []} end)
+ }
+ end
+
+ @doc """
+ Gets a single cms_page.
+
+ Raises `Ecto.NoResultsError` if the Cms page does not exist.
+
+ ## Examples
+
+ iex> get_cms_page!(123)
+ %CmsPage{}
+
+ iex> get_cms_page!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_page!(id),
+ do: Repo.get!(active_pages_query(), id)
+
+ def get_cms_page!(id, opts) do
+ queryable =
+ case opts[:include_deleted] do
+ true -> CmsPage
+ _ -> active_pages_query()
+ end
+
+ ret = Repo.get!(queryable, id)
+
+ ret =
+ case opts[:preload_versions] do
+ true ->
+ ret
+ |> Repo.preload(
+ versions:
+ from(v in CmsPageVersion,
+ where: is_nil(v.discarded_at),
+ order_by: [desc: v.version],
+ select: [:id, :version, :updated_by, :updated_by_username]
+ )
+ )
+
+ _ ->
+ ret
+ end
+
+ ret
+ end
+
+ def get_cms_page(id),
+ do: Repo.get(active_pages_query(), id)
+
+ def get_cms_page(id, include_deleted: true),
+ do: Repo.get(CmsPage, id)
+
+ def get_cms_page_with_objects!(id, version \\ nil)
+ def get_cms_page_with_objects!(id, ""), do: get_cms_page_with_objects!(id, nil)
+
+ def get_cms_page_with_objects!(id, nil) do
+ id
+ |> get_cms_page!
+ |> get_published_version
+ |> preload_objects_and_versions()
+ end
+
+ def get_cms_page_with_objects!(id, version) do
+ get_cms_page_version_by(cms_page_id: id, version: version)
+ |> preload_objects_and_versions()
+ end
+
+ def get_cms_page_by_path(path) do
+ Repo.get_by(active_pages_query(), path: to_string(path))
+ end
+
+ def get_cms_page_by_path_for_nav(path) do
+ Repo.get_by(active_pages_query(), path: to_string(path))
+ |> Repo.preload(sub_pages: [:sub_pages])
+ end
+
+ def get_cms_page_version_by(params) do
+ Repo.get_by(active_versions_query(), params)
+ end
+
+ def get_cms_page_by_path_with_objects(path, version \\ nil)
+
+ def get_cms_page_by_path_with_objects(path, nil) do
+ path
+ |> get_cms_page_by_path
+ |> get_published_version
+ |> preload_objects_and_versions()
+ end
+
+ def get_cms_page_by_path_with_objects(path, version) do
+ get_cms_page_version_by(path: to_string(path), version: version)
+ |> preload_objects_and_versions()
+ end
+
+ defp get_published_version(%CmsPage{published_version: v} = page),
+ do: get_published_version(page, v)
+
+ defp get_published_version(_, nil), do: nil
+ defp get_published_version(_, -1), do: nil
+ defp get_published_version(page, 0), do: page
+
+ defp get_published_version(page, version) do
+ get_cms_page_version_by(path: page.path, version: version)
+ end
+
+ def preload_objects_and_versions(nil), do: nil
+
+ def preload_objects_and_versions(%{version: version} = page_or_version) do
+ page_or_version
+ |> Repo.preload([:sub_pages])
+ |> Repo.preload(
+ objects: from(o in CmsPageObject, where: o.cms_page_version == ^version),
+ versions:
+ from(v in CmsPageVersion,
+ where: is_nil(v.discarded_at),
+ order_by: [desc: v.version],
+ select: [:id, :version, :updated_by, :updated_by_username, :created_on]
+ )
+ )
+ end
+
+ @doc """
+ Creates a cms_page.
+
+ ## Examples
+
+ iex> create_cms_page(%{field: value})
+ {:ok, %CmsPage{}}
+
+ iex> create_cms_page(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_page(attrs, current_user, iteration \\ 0) do
+ # if this isn't the first time, there was a naming conflict, try again
+ new_attrs =
+ case iteration do
+ 0 -> attrs
+ i -> Map.put(attrs, :name, "#{attrs[:name]}-#{i}")
+ end
+
+ # changeset calculates path, we can use that to check for duplicates
+ changeset =
+ %CmsPage{}
+ |> CmsPage.changeset(new_attrs, true, current_user)
+
+ if iteration < 100 && get_cms_page_by_path(changeset.changes.path) do
+ create_cms_page(attrs, current_user, iteration + 1)
+ else
+ result = Repo.insert(changeset)
+
+ case result do
+ {:ok, new_cms_page} ->
+ {:ok, _version} = create_cms_page_version(new_cms_page)
+ result
+
+ _ ->
+ result
+ end
+ end
+ end
+
+ @doc """
+ Updates a cms_page, optionally creating a new version (third argument). When creating a new version,
+ the fourth argument should be the Imagine.Accounts.User who made the change.
+
+ ## Examples
+
+ iex> update_cms_page(cms_page, %{field: new_value})
+ {:ok, %CmsPage{}}
+
+ iex> update_cms_page(cms_page, %{field: bad_value}, true, current_user)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_cms_page(
+ %CmsPage{} = cms_page,
+ attrs,
+ save_new_version \\ false,
+ current_user \\ nil
+ ) do
+ changeset = CmsPage.changeset(cms_page, attrs, save_new_version, current_user)
+
+ result = Repo.update(changeset)
+
+ case result do
+ {:ok, new_cms_page} ->
+ # do not combine the case statements; both could be true
+ case changeset do
+ %{changes: %{parent_id: _new_parent_id}} ->
+ CmsPage.update_descendant_paths(new_cms_page)
+
+ %{changes: %{path: _new_path}} ->
+ from(v in CmsPageVersion, where: v.cms_page_id == ^new_cms_page.id)
+ |> Repo.update_all(set: [path: new_cms_page.path])
+
+ CmsPage.update_descendant_paths(new_cms_page)
+
+ _ ->
+ nil
+ end
+
+ case changeset do
+ %{changes: %{version: _new_version}} ->
+ {:ok, _version} = create_cms_page_version(new_cms_page)
+
+ _ ->
+ nil
+ end
+
+ _ ->
+ nil
+ end
+
+ Imagine.Cache.flush()
+
+ result
+ end
+
+ @doc """
+ Deletes a CmsPage.
+
+ ## Examples
+
+ iex> delete_cms_page(cms_page)
+ {:ok, %CmsPage{}}
+
+ iex> delete_cms_page(cms_page)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_cms_page(%CmsPage{} = cms_page) do
+ now = NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second)
+
+ result =
+ cms_page
+ |> Ecto.Changeset.change(%{discarded_at: now})
+ |> Repo.update()
+
+ from(v in CmsPageVersion, where: v.cms_page_id == ^cms_page.id)
+ |> Repo.update_all(set: [discarded_at: now])
+
+ Imagine.Cache.flush()
+
+ result
+ end
+
+ def undelete_cms_page(%CmsPage{} = cms_page) do
+ result =
+ cms_page
+ |> Ecto.Changeset.change(%{discarded_at: nil})
+ |> Repo.update()
+
+ from(v in CmsPageVersion, where: v.cms_page_id == ^cms_page.id)
+ |> Repo.update_all(set: [discarded_at: nil])
+
+ Imagine.Cache.flush()
+
+ result
+ end
+
+ def destroy_cms_page(%CmsPage{} = cms_page) do
+ result = Repo.delete(cms_page)
+
+ Imagine.Cache.flush()
+
+ result
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking cms_page changes.
+
+ ## Examples
+
+ iex> change_cms_page(cms_page)
+ %Ecto.Changeset{source: %CmsPage{}}
+
+ """
+ def change_cms_page(%CmsPage{} = cms_page) do
+ Ecto.Changeset.change(cms_page)
+ end
+
+ @doc """
+ Returns the list of cms_page_versions.
+
+ ## Examples
+
+ iex> list_cms_page_versions()
+ [%CmsPageVersion{}, ...]
+
+ """
+ def list_cms_page_versions do
+ Repo.all(active_versions_query())
+ end
+
+ @doc """
+ Gets a single cms_page_version.
+
+ Raises `Ecto.NoResultsError` if the Cms page version does not exist.
+
+ ## Examples
+
+ iex> get_cms_page_version!(123)
+ %CmsPageVersion{}
+
+ iex> get_cms_page_version!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_page_version!(id),
+ do: Repo.get!(active_versions_query(), id)
+
+ @doc """
+ Creates a cms_page_version.
+
+ ## Examples
+
+ iex> create_cms_page_version(%{field: value})
+ {:ok, %CmsPageVersion{}}
+
+ iex> create_cms_page_version(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_page_version(cms_page) do
+ %CmsPageVersion{}
+ |> CmsPageVersion.changeset(cms_page)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Returns the list of cms_page_objects.
+
+ ## Examples
+
+ iex> list_cms_page_objects()
+ [%CmsPageObject{}, ...]
+
+ """
+ def list_cms_page_objects do
+ Repo.all(CmsPageObject)
+ end
+
+ @doc """
+ Gets a single cms_page_object.
+
+ Raises `Ecto.NoResultsError` if the Cms page object does not exist.
+
+ ## Examples
+
+ iex> get_cms_page_object!(123)
+ %CmsPageObject{}
+
+ iex> get_cms_page_object!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_page_object!(id),
+ do: Repo.get!(CmsPageObject, id)
+
+ def build_cms_page_object(
+ %CmsPage{id: cms_page_id, version: cms_page_version},
+ obj_name,
+ obj_type
+ ) do
+ build_cms_page_object(cms_page_id, cms_page_version, obj_name, obj_type)
+ end
+
+ def build_cms_page_object(
+ %CmsPageVersion{cms_page_id: cms_page_id, version: cms_page_version},
+ obj_name,
+ obj_type
+ ) do
+ build_cms_page_object(cms_page_id, cms_page_version, obj_name, obj_type)
+ end
+
+ def build_cms_page_object(cms_page_id, cms_page_version, obj_name, obj_type) do
+ %CmsPageObject{cms_page_id: cms_page_id}
+ |> Ecto.Changeset.change(
+ name: obj_name,
+ obj_type: obj_type,
+ cms_page_version: cms_page_version
+ )
+ end
+
+ @doc """
+ Creates a cms_page_object.
+
+ ## Examples
+
+ iex> create_cms_page_object(%{field: value})
+ {:ok, %CmsPageObject{}}
+
+ iex> create_cms_page_object(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_page_object(cms_page, attrs \\ %{}) do
+ cms_page
+ |> Ecto.build_assoc(:objects)
+ |> CmsPageObject.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a cms_page_object.
+
+ ## Examples
+
+ iex> update_cms_page_object(cms_page_object, %{field: new_value})
+ {:ok, %CmsPageObject{}}
+
+ iex> update_cms_page_object(cms_page_object, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_cms_page_object(%CmsPageObject{} = cms_page_object, attrs) do
+ cms_page_object
+ |> CmsPageObject.changeset(attrs)
+ |> Repo.update()
+ end
+
+ def clone_and_update_cms_page_object(%CmsPageObject{} = cms_page_object, attrs) do
+ %CmsPageObject{}
+ |> CmsPageObject.changeset(Map.from_struct(cms_page_object))
+ |> CmsPageObject.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ def update_cms_page_objects([], [], _new_version) do
+ # IO.puts("==== All page objects processed. ====")
+ end
+
+ def update_cms_page_objects(
+ [cms_page_object | cms_page_objects],
+ [attrs | attrses],
+ new_version
+ ) do
+ # IO.puts("==== Processing page object #{inspect(cms_page_object)} -> #{inspect(attrs)} ====")
+
+ {:ok, _} =
+ clone_and_update_cms_page_object(
+ cms_page_object,
+ Map.put(attrs, "cms_page_version", new_version)
+ )
+
+ update_cms_page_objects(cms_page_objects, attrses, new_version)
+ end
+
+ # @doc """
+ # Returns an `%Ecto.Changeset{}` for tracking cms_page_object changes.
+
+ # ## Examples
+
+ # iex> change_cms_page_object(cms_page_object)
+ # %Ecto.Changeset{source: %CmsPageObject{}}
+
+ # """
+ # def change_cms_page_object(%CmsPageObject{} = cms_page_object) do
+ # CmsPageObject.changeset(cms_page_object, %{})
+ # end
+
+ @doc """
+ Returns the list of cms_page_tags.
+
+ ## Examples
+
+ iex> list_cms_page_tags()
+ [%CmsPageTag{}, ...]
+
+ """
+ def list_cms_page_tags do
+ Repo.all(CmsPageTag)
+ end
+
+ @doc """
+ Gets a single cms_page_tag.
+
+ Raises `Ecto.NoResultsError` if the Cms page tag does not exist.
+
+ ## Examples
+
+ iex> get_cms_page_tag!(123)
+ %CmsPageTag{}
+
+ iex> get_cms_page_tag!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_page_tag!(id),
+ do: Repo.get!(CmsPageTag, id)
+
+ @doc """
+ Creates a cms_page_tag.
+
+ ## Examples
+
+ iex> create_cms_page_tag(%{field: value})
+ {:ok, %CmsPageTag{}}
+
+ iex> create_cms_page_tag(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_page_tag(attrs) do
+ %CmsPageTag{}
+ |> CmsPageTag.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a cms_page_tag.
+
+ ## Examples
+
+ iex> update_cms_page_tag(cms_page_tag, %{field: new_value})
+ {:ok, %CmsPageTag{}}
+
+ iex> update_cms_page_tag(cms_page_tag, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_cms_page_tag(%CmsPageTag{} = cms_page_tag, attrs) do
+ cms_page_tag
+ |> CmsPageTag.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a CmsPageTag.
+
+ ## Examples
+
+ iex> delete_cms_page_tag(cms_page_tag)
+ {:ok, %CmsPageTag{}}
+
+ iex> delete_cms_page_tag(cms_page_tag)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_cms_page_tag(%CmsPageTag{} = cms_page_tag) do
+ Repo.delete(cms_page_tag)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking cms_page_tag changes.
+
+ ## Examples
+
+ iex> change_cms_page_tag(cms_page_tag)
+ %Ecto.Changeset{source: %CmsPageTag{}}
+
+ """
+ def change_cms_page_tag(%CmsPageTag{} = cms_page_tag) do
+ CmsPageTag.changeset(cms_page_tag, %{})
+ end
+end
diff --git a/lib/imagine/cms_pages/cms_page.ex b/lib/imagine/cms_pages/cms_page.ex
new file mode 100644
index 0000000..0eb0b2b
--- /dev/null
+++ b/lib/imagine/cms_pages/cms_page.ex
@@ -0,0 +1,361 @@
+defmodule Imagine.CmsPages.CmsPage do
+ @moduledoc """
+ CMS Page (versioned, parent-child tree)
+ has_many objects, tags, sub_pages
+ belongs_to cms_template, parent
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+ import Ecto.Query, warn: false
+
+ alias Imagine.Repo
+
+ alias Imagine.CmsPages
+ alias Imagine.CmsPages.{CmsPage, CmsPageObject, CmsPageTag, CmsPageVersion}
+ # alias Imagine.CmsTemplates
+ alias Imagine.CmsTemplates.CmsTemplate
+
+ alias Imagine.Accounts.User
+
+ @derive {Jason.Encoder,
+ only: [
+ :version,
+ :path,
+ :name,
+ :title,
+ :published_date,
+ :article_date,
+ :article_end_date,
+ :expiration_date,
+ :summary,
+ :thumbnail_path,
+ :feature_image_path,
+ :position,
+ :index
+ ]}
+
+ schema "cms_pages" do
+ has_many :versions, CmsPageVersion, on_delete: :delete_all
+ has_many :objects, CmsPageObject
+ has_many :tags, CmsPageTag
+
+ belongs_to :cms_template, CmsTemplate
+ field :cms_template_version, :integer
+
+ belongs_to :parent, CmsPage
+ has_many :sub_pages, CmsPage, foreign_key: :parent_id, where: [discarded_at: nil]
+
+ field :layout, :string
+
+ field :version, :integer
+
+ field :path, :string
+ field :name, :string
+ field :title, :string
+
+ field :published_version, :integer
+ field :published_date, :naive_datetime
+ field :article_date, :naive_datetime
+ field :article_end_date, :naive_datetime
+ field :expiration_date, :naive_datetime
+ field :expires, :boolean, default: false
+
+ field :summary, :string
+ field :html_head, :string
+ field :thumbnail_path, :string
+ field :feature_image_path, :string
+
+ field :redirect_enabled, :boolean, default: false
+ field :redirect_to, :string
+
+ field :position, :integer
+ field :index, :integer, virtual: true
+
+ # field :comment_count, :integer
+ field :search_index, :string
+
+ field :updated_by, :integer
+ field :updated_by_username, :string
+
+ field :discarded_at, :naive_datetime
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ def is_home_page?(cms_page) do
+ cms_page.id && (cms_page.path == "" || cms_page.id == 1)
+ end
+
+ @doc false
+ def changeset(
+ cms_page,
+ attrs,
+ save_new_version \\ false,
+ current_user \\ nil
+ ) do
+ cms_page
+ |> cast(attrs, [
+ :title,
+ :cms_template_id,
+ :parent_id,
+ :published_version,
+ :expires,
+ :summary,
+ :html_head,
+ :thumbnail_path,
+ :feature_image_path,
+ :redirect_enabled,
+ :redirect_to,
+ :position
+ ])
+ |> put_name(attrs)
+ |> put_path
+ |> put_date_with_default(:published_date, attrs)
+ |> put_date_with_default(:article_date, attrs)
+ |> put_date(:article_end_date, attrs)
+ |> put_date(:expiration_date, attrs)
+ |> put_change(:search_index, generate_search_index(cms_page))
+ |> validate_required([
+ :cms_template_id,
+ :title,
+ :published_date,
+ :expires,
+ :redirect_enabled,
+ :position
+ ])
+ |> put_template_version
+ |> validate_required([
+ :cms_template_version
+ ])
+ |> put_version(cms_page, save_new_version)
+ |> put_updated_by(current_user)
+ |> validate_parent(cms_page.id)
+ |> receive_file(attrs["thumbnail_file"], :thumbnail_path)
+ |> receive_file(attrs["feature_image_file"], :feature_image_path)
+ end
+
+ def receive_file(changeset, nil, _attr), do: changeset
+
+ def receive_file(changeset, upload, attr) do
+ with cms_page_id <- get_field(changeset, :id),
+ {:ok, _new_or_existing, original_path, filename} <- store_original(upload),
+ final_path <- link_original_to_page_path(original_path, filename, cms_page_id) do
+ put_change(changeset, attr, final_path)
+ else
+ {:error, _reason} = error -> error
+ end
+ end
+
+ def store_original(%Plug.Upload{filename: filename, path: tmp_path}),
+ do: store_original(filename, tmp_path)
+
+ def store_original(filename, tmp_path) do
+ with {:ok, %File.Stat{size: _size}} <- File.stat(tmp_path),
+ hash <- hash_from_file(tmp_path, :sha256),
+ original_path <-
+ Path.join(["uploads", "originals"] ++ hashed_path(hash)),
+ original_filepath <- Path.join(original_path, hash) do
+ if File.exists?(original_filepath) do
+ {:ok, :existing, original_filepath, filename}
+ else
+ File.mkdir_p!(original_path)
+ File.cp!(tmp_path, original_filepath)
+ {:ok, :new, original_filepath, filename}
+ end
+ else
+ {:error, _reason} = error -> error
+ end
+ end
+
+ def hashed_path(name, levels \\ 2) do
+ name |> String.split("", trim: true) |> Enum.take(levels)
+ end
+
+ # TODO: in the event that the file is *not* new and a link pointing to the
+ # target already exists, no need to increment the filename
+ def link_original_to_page_path(original_path, filename, cms_page_id) do
+ public_dir = Path.join(["public"])
+ local_path = Path.join([public_dir, "assets", to_string(cms_page_id)])
+ unique_filename = unique_filename_for_path(filename, local_path)
+ final_filepath = Path.join(local_path, unique_filename)
+ File.mkdir_p!(local_path)
+ File.ln_s!(build_relative_path_to(original_path, from: local_path), final_filepath)
+ "/" <> Path.relative_to(final_filepath, public_dir)
+ end
+
+ defp build_relative_path_to(path, from: cwd) do
+ cwd_segments = Path.split(cwd)
+ Path.join(Enum.map(cwd_segments, fn _ -> ".." end) ++ [path])
+ end
+
+ defp unique_filename_for_path(filename, path) do
+ # FIXME: check to see whether file is identical before incrementing
+ if File.exists?(Path.join(path, filename)),
+ do: unique_filename_for_path(filename, path, 1),
+ else: filename
+ end
+
+ defp unique_filename_for_path(filename, path, iteration) do
+ extension = Path.extname(filename)
+ basename = Path.basename(filename, extension)
+ new_filename = "#{basename}-#{iteration}#{extension}"
+
+ # FIXME: check to see whether file is identical before incrementing
+ if File.exists?(Path.join(path, new_filename)),
+ do: unique_filename_for_path(filename, path, iteration + 1),
+ else: new_filename
+ end
+
+ def hash_from_file(path, algorithm, chunk_size \\ 2048) do
+ path |> File.stream!([], chunk_size) |> hash_from_chunks(algorithm)
+ end
+
+ def hash_from_chunks(chunks_enum, algorithm) do
+ chunks_enum
+ |> Enum.reduce(:crypto.hash_init(algorithm), &:crypto.hash_update(&2, &1))
+ |> :crypto.hash_final()
+ |> Base.encode16()
+ |> String.downcase()
+ end
+
+ defp put_date(changeset, attr, attrs) when is_atom(attr) do
+ if val = attrs[Atom.to_string(attr)],
+ do: put_change(changeset, attr, format_date(val)),
+ else: changeset
+ end
+
+ defp put_date_with_default(changeset, attr, attrs) when is_atom(attr) do
+ if val = attrs[Atom.to_string(attr)],
+ do: put_change(changeset, attr, format_date(val)),
+ else: put_change(changeset, attr, NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second))
+ end
+
+ defp put_template_version(changeset) do
+ case get_field(changeset, :cms_template_id) do
+ nil ->
+ changeset
+
+ id ->
+ cms_template = Imagine.CmsTemplates.get_cms_template!(id)
+ put_change(changeset, :cms_template_version, cms_template.version)
+ end
+ end
+
+ defp put_version(changeset, cms_page, false) do
+ put_change(changeset, :version, cms_page.version || 0)
+ end
+
+ defp put_version(changeset, cms_page, true) do
+ put_change(changeset, :version, (cms_page.version || 0) + 1)
+ end
+
+ defp put_updated_by(changeset, nil) do
+ changeset
+ end
+
+ defp put_updated_by(changeset, %User{id: user_id, username: username}) do
+ changeset
+ |> put_change(:updated_by, user_id)
+ |> put_change(:updated_by_username, username)
+ |> validate_required([:updated_by, :updated_by_username])
+ end
+
+ defp put_updated_by(changeset, _current_user), do: changeset
+
+ defp validate_parent(changeset, my_id),
+ do: validate_parent(changeset, my_id, get_field(changeset, :parent_id))
+
+ defp validate_parent(changeset, nil, _), do: changeset
+ defp validate_parent(changeset, _, nil), do: changeset
+
+ defp validate_parent(changeset, my_id, parent_id) when my_id == parent_id do
+ add_error(
+ changeset,
+ :parent_id,
+ "cannot be this page or one of its descendants (would create a cycle)"
+ )
+ end
+
+ defp validate_parent(changeset, my_id, parent_id) do
+ parent = CmsPages.get_cms_page(parent_id)
+
+ case parent do
+ nil -> changeset
+ _ -> validate_parent(changeset, my_id, parent.parent_id)
+ end
+ end
+
+ def get_all_parents(page, parents \\ []) do
+ page = Imagine.Repo.preload(page, [:parent])
+
+ if page.parent do
+ get_all_parents(page.parent, [page.parent | parents])
+ else
+ parents
+ end
+ end
+
+ def update_descendant_paths(nil), do: {:error, nil}
+
+ def update_descendant_paths(cms_page) do
+ update_descendant_paths(Imagine.Repo.preload(cms_page, :sub_pages).sub_pages, cms_page.path)
+ end
+
+ def update_descendant_paths([], _path), do: :ok
+
+ def update_descendant_paths([cms_page | cms_pages], path) do
+ new_path =
+ [path, cms_page.name]
+ |> Enum.reject(fn p -> p in [nil, ""] end)
+ |> Enum.join("/")
+
+ {:ok, updated_cms_page} =
+ cms_page
+ |> change(%{path: new_path})
+ |> Imagine.Repo.update()
+
+ new_id = updated_cms_page.id
+
+ from(v in CmsPageVersion, where: v.cms_page_id == ^new_id)
+ |> Repo.update_all(set: [path: updated_cms_page.path])
+
+ Imagine.Repo.preload(updated_cms_page, :sub_pages).sub_pages
+ |> update_descendant_paths(new_path)
+
+ update_descendant_paths(cms_pages, path)
+ end
+
+ def format_date(nil), do: nil
+
+ def format_date(str) do
+ case Timex.parse(str, "{YYYY}-{0M}-{0D}") do
+ {:ok, date} -> date
+ {:error, _} -> nil
+ end
+ end
+
+ def put_name(changeset, attrs) do
+ put_change(changeset, :name, attrs["name"] || attrs[:name])
+ end
+
+ def put_path(changeset) do
+ path = calculate_path(get_field(changeset, :parent_id), get_field(changeset, :name), [])
+
+ put_change(changeset, :path, path)
+ end
+
+ def calculate_path(nil, name, path) do
+ [name | path] |> Enum.reject(fn p -> p in [nil, ""] end) |> Enum.join("/")
+ end
+
+ def calculate_path(parent_id, name, path) do
+ parent = CmsPages.get_cms_page!(parent_id)
+ calculate_path(parent.parent_id, parent.name, [name | path])
+ end
+
+ def generate_search_index(cms_page) do
+ # FIXME
+ cms_page.name
+ end
+end
diff --git a/lib/imagine/cms_pages/cms_page_object.ex b/lib/imagine/cms_pages/cms_page_object.ex
new file mode 100644
index 0000000..3e0fe50
--- /dev/null
+++ b/lib/imagine/cms_pages/cms_page_object.ex
@@ -0,0 +1,98 @@
+defmodule Imagine.CmsPages.CmsPageObject do
+ @moduledoc """
+ CmsPageObject - holds the actual content of CmsPage
+ See the View and Edit render helpers to see how these are manipulated.
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ alias Imagine.CmsPages.CmsPage
+
+ schema "cms_page_objects" do
+ belongs_to :cms_page, CmsPage
+ field :cms_page_version, :integer
+
+ field :name, :string
+ field :obj_type, :string
+
+ field :content, :string
+ field :options, :string
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ @doc false
+ def changeset(cms_page_object, attrs) do
+ cms_page_object
+ |> cast(attrs, [:cms_page_id, :cms_page_version, :name, :obj_type, :content, :options])
+ |> validate_required([:cms_page_id, :cms_page_version, :name, :obj_type])
+
+ # |> clean_up_invalid_chars([:content])
+ end
+
+ def to_filename("", ""), do: "image"
+
+ def to_filename("", data_filename) do
+ ext = Path.extname(data_filename)
+ Path.basename(data_filename, ext)
+ end
+
+ def to_filename(title, _) do
+ String.replace(title, ~r/[^-_A-Za-z0-9]+/, "-")
+ end
+
+ def write_data_url_to_file(data_url) do
+ mime_type = String.replace(data_url, ~r{^data:(image/.+?);.*$}, "\\1")
+
+ # determine extension by either removing leading "image/" or by specifying directly
+ extension =
+ %{
+ "image/jpeg" => "jpg",
+ "image/svg+xml" => "svg"
+ }[mime_type] || String.replace(mime_type, "image/", "")
+
+ data = String.replace(data_url, ~r{^data:image/(\w+);base64,(.*)$}, "\\2")
+
+ path =
+ Path.join([System.tmp_dir!(), "image-#{System.unique_integer([:positive])}.#{extension}"])
+
+ File.write!(path, Base.decode64!(data))
+ path
+ end
+
+ # this doesn't seem to work as intended... :-(
+ def clean_up_invalid_chars(changeset, fields) do
+ for f <- fields do
+ content =
+ changeset
+ |> get_field(f)
+ |> IO.inspect(label: "#{f} before strip_utf8")
+ # IO.inspect(String.valid?(content), "String.valid?(#{f})")
+ # content = content
+ |> strip_utf8
+ |> IO.inspect(label: "#{f} after strip_utf8")
+
+ put_change(changeset, f, content)
+ end
+
+ changeset
+ end
+
+ def strip_utf8(nil), do: nil
+ def strip_utf8(str), do: for(<>, into: "", do: <>)
+
+ def extract_page_objects_from_page(%{objects: objects}) do
+ objects
+ end
+
+ def find_object([], _obj_name, _obj_type), do: nil
+
+ def find_object([object | objects], obj_name, obj_type) do
+ if object.name == obj_name && object.obj_type == obj_type do
+ object
+ else
+ find_object(objects, obj_name, obj_type)
+ end
+ end
+end
diff --git a/lib/imagine/cms_pages/cms_page_tag.ex b/lib/imagine/cms_pages/cms_page_tag.ex
new file mode 100644
index 0000000..8bbc20e
--- /dev/null
+++ b/lib/imagine/cms_pages/cms_page_tag.ex
@@ -0,0 +1,23 @@
+defmodule Imagine.CmsPages.CmsPageTag do
+ @moduledoc """
+ CmsPageTag - simple string tags attached to pages
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ schema "cms_page_tags" do
+ belongs_to :cms_page, Imagine.CmsPages.CmsPage
+
+ field :name, :string
+
+ timestamps(inserted_at: :created_on, updated_at: nil)
+ end
+
+ @doc false
+ def changeset(cms_page_tag, attrs) do
+ cms_page_tag
+ |> cast(attrs, [:cms_page_id, :name])
+ |> validate_required([:cms_page_id, :name])
+ end
+end
diff --git a/lib/imagine/cms_pages/cms_page_version.ex b/lib/imagine/cms_pages/cms_page_version.ex
new file mode 100644
index 0000000..1bbcb71
--- /dev/null
+++ b/lib/imagine/cms_pages/cms_page_version.ex
@@ -0,0 +1,107 @@
+defmodule Imagine.CmsPages.CmsPageVersion do
+ @moduledoc """
+ CmsPageVersion - a single version of CmsPage
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ alias Imagine.CmsPages.CmsPage
+ alias Imagine.CmsTemplates.CmsTemplate
+
+ @derive {Jason.Encoder,
+ only: [
+ :version,
+ :path,
+ :name,
+ :title,
+ :published_date,
+ :article_date,
+ :article_end_date,
+ :expiration_date,
+ :summary,
+ :thumbnail_path,
+ :feature_image_path,
+ :position
+ ]}
+
+ schema "cms_page_versions" do
+ belongs_to :cms_page, CmsPage
+
+ has_many :versions, through: [:cms_page, :versions]
+ has_many :objects, through: [:cms_page, :objects]
+ has_many :tags, through: [:cms_page, :tags]
+
+ belongs_to :cms_template, CmsTemplate
+ field :cms_template_version, :integer
+
+ field :version, :integer
+
+ field :parent_id, :integer
+ field :path, :string
+ field :name, :string
+ field :title, :string
+
+ field :layout, :string
+
+ field :published_version, :integer
+ field :published_date, :naive_datetime
+ field :article_date, :naive_datetime
+ field :article_end_date, :naive_datetime
+ field :expiration_date, :naive_datetime
+ field :expires, :boolean, default: false
+
+ field :summary, :string
+ field :html_head, :string
+ field :thumbnail_path, :string
+ field :feature_image_path, :string
+
+ field :redirect_enabled, :boolean, default: false
+ field :redirect_to, :string
+
+ field :position, :integer
+
+ field :comment_count, :integer
+ field :search_index, :string
+
+ field :updated_by, :integer
+ field :updated_by_username, :string
+
+ field :discarded_at, :naive_datetime
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ @doc false
+ def changeset(cms_page_version, %CmsPage{} = cms_page) do
+ cms_page_version
+ |> cast(Map.from_struct(cms_page), [
+ :version,
+ :cms_template_id,
+ :cms_template_version,
+ :parent_id,
+ :path,
+ :name,
+ :title,
+ :layout,
+ :published_version,
+ :published_date,
+ :article_date,
+ :article_end_date,
+ :expiration_date,
+ :expires,
+ :summary,
+ :html_head,
+ :thumbnail_path,
+ :feature_image_path,
+ :redirect_enabled,
+ :redirect_to,
+ :position,
+ :search_index,
+ :updated_by,
+ :updated_by_username
+ ])
+ |> put_change(:cms_page_id, cms_page.id)
+ |> validate_required([:cms_page_id, :version, :title])
+ end
+end
diff --git a/lib/imagine/cms_templates.ex b/lib/imagine/cms_templates.ex
new file mode 100644
index 0000000..7bf5136
--- /dev/null
+++ b/lib/imagine/cms_templates.ex
@@ -0,0 +1,369 @@
+defmodule Imagine.CmsTemplates do
+ @moduledoc """
+ The CmsTemplates context.
+ """
+
+ import Ecto.Query, warn: false
+ alias Imagine.Repo
+
+ alias Imagine.CmsTemplates.{CmsSnippet, CmsSnippetVersion, CmsTemplate, CmsTemplateVersion}
+
+ @doc """
+ Returns the list of cms_templates.
+
+ ## Examples
+
+ iex> list_cms_templates()
+ [%CmsTemplate{}, ...]
+
+ """
+ def list_cms_templates do
+ Repo.all(CmsTemplate |> order_by(:name))
+ end
+
+ @doc """
+ Gets a single cms_template.
+
+ Raises `Ecto.NoResultsError` if the Cms template does not exist.
+
+ ## Examples
+
+ iex> get_cms_template!(123)
+ %CmsTemplate{}
+
+ iex> get_cms_template!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_template!(id),
+ do: Repo.get!(CmsTemplate, id)
+
+ def get_cms_template_by(params),
+ do: Repo.get_by(CmsTemplate, params)
+
+ @doc """
+ Creates a cms_template.
+
+ ## Examples
+
+ iex> create_cms_template(%{field: value})
+ {:ok, %CmsTemplate{}}
+
+ iex> create_cms_template(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_template(attrs) do
+ result =
+ %CmsTemplate{}
+ |> CmsTemplate.changeset(attrs)
+ |> Repo.insert()
+
+ case result do
+ {:ok, cms_template} ->
+ {:ok, _version} = create_cms_template_version(cms_template)
+ result
+
+ _ ->
+ result
+ end
+ end
+
+ @doc """
+ Updates a cms_template.
+
+ ## Examples
+
+ iex> update_cms_template(cms_template, %{field: new_value})
+ {:ok, %CmsTemplate{}}
+
+ iex> update_cms_template(cms_template, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_cms_template(%CmsTemplate{} = cms_template, attrs) do
+ changeset = CmsTemplate.changeset(cms_template, attrs)
+
+ Imagine.Cache.flush()
+
+ case CmsTemplate.test_render(changeset) do
+ {:ok, _rendered_output} ->
+ result = Repo.update(changeset)
+
+ case result do
+ {:ok, cms_template} ->
+ {:ok, _version} = create_cms_template_version(cms_template)
+ result
+
+ _ ->
+ result
+ end
+
+ {:error, err} ->
+ {:error,
+ Ecto.Changeset.add_error(
+ changeset,
+ :content_eex,
+ "Could not compile template.",
+ additional: "Line #{err.line}: #{err.description}"
+ )}
+ end
+ end
+
+ @doc """
+ Deletes a CmsTemplate.
+
+ ## Examples
+
+ iex> delete_cms_template(cms_template)
+ {:ok, %CmsTemplate{}}
+
+ iex> delete_cms_template(cms_template)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_cms_template(%CmsTemplate{} = cms_template) do
+ result = Repo.delete(cms_template)
+
+ Imagine.Cache.flush()
+
+ result
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking cms_template changes.
+
+ ## Examples
+
+ iex> change_cms_template(cms_template)
+ %Ecto.Changeset{source: %CmsTemplate{}}
+
+ """
+ def change_cms_template(%CmsTemplate{} = cms_template) do
+ CmsTemplate.changeset(cms_template, %{})
+ end
+
+ @doc """
+ Returns the list of cms_template_versions.
+
+ ## Examples
+
+ iex> list_cms_template_versions()
+ [%CmsSnippetVersion{}, ...]
+
+ """
+ def list_cms_template_versions do
+ Repo.all(CmsTemplateVersion)
+ end
+
+ @doc """
+ Gets a single cms_template_version.
+
+ Raises `Ecto.NoResultsError` if the Cms template version does not exist.
+
+ ## Examples
+
+ iex> get_cms_template_version!(123)
+ %CmsTemplateVersion{}
+
+ iex> get_cms_template_version!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_template_version!(id),
+ do: Repo.get!(CmsTemplateVersion, id)
+
+ def get_cms_template_version_by(params),
+ do: Repo.get_by(CmsTemplateVersion, params)
+
+ @doc """
+ Creates a cms_template_version.
+
+ ## Examples
+
+ iex> create_cms_template_version(%{field: value})
+ {:ok, %CmsTemplateVersion{}}
+
+ iex> create_cms_template_version(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_template_version(%CmsTemplate{} = cms_template) do
+ %CmsTemplateVersion{}
+ |> CmsTemplateVersion.changeset(cms_template)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Returns the list of cms_snippets.
+
+ ## Examples
+
+ iex> list_cms_snippets()
+ [%CmsSnippet{}, ...]
+
+ """
+ def list_cms_snippets do
+ Repo.all(CmsSnippet |> order_by(:name))
+ end
+
+ @doc """
+ Gets a single cms_snippet.
+
+ Raises `Ecto.NoResultsError` if the Cms snippet does not exist.
+
+ ## Examples
+
+ iex> get_cms_snippet!(123)
+ %CmsSnippet{}
+
+ iex> get_cms_snippet!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_snippet!(id),
+ do: Repo.get!(CmsSnippet, id)
+
+ def get_cms_snippet_by_name(name) do
+ Repo.get_by(CmsSnippet, name: name)
+ end
+
+ @doc """
+ Creates a cms_snippet.
+
+ ## Examples
+
+ iex> create_cms_snippet(%{field: value})
+ {:ok, %CmsSnippet{}}
+
+ iex> create_cms_snippet(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_snippet(attrs) do
+ result =
+ %CmsSnippet{}
+ |> CmsSnippet.changeset(attrs)
+ |> Repo.insert()
+
+ case result do
+ {:ok, cms_snippet} ->
+ {:ok, _version} = create_cms_snippet_version(cms_snippet)
+ result
+
+ {:error, _} ->
+ result
+ end
+ end
+
+ @doc """
+ Updates a cms_snippet.
+
+ ## Examples
+
+ iex> update_cms_snippet(cms_snippet, %{field: new_value})
+ {:ok, %CmsSnippet{}}
+
+ iex> update_cms_snippet(cms_snippet, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_cms_snippet(%CmsSnippet{} = cms_snippet, attrs) do
+ result =
+ cms_snippet
+ |> CmsSnippet.changeset(attrs)
+ |> Repo.update()
+
+ Imagine.Cache.flush()
+
+ case result do
+ {:ok, cms_snippet} ->
+ {:ok, _version} = create_cms_snippet_version(cms_snippet)
+ result
+
+ {:error, _} ->
+ result
+ end
+ end
+
+ @doc """
+ Deletes a CmsSnippet.
+
+ ## Examples
+
+ iex> delete_cms_snippet(cms_snippet)
+ {:ok, %CmsSnippet{}}
+
+ iex> delete_cms_snippet(cms_snippet)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_cms_snippet(%CmsSnippet{} = cms_snippet) do
+ result = Repo.delete(cms_snippet)
+
+ Imagine.Cache.flush()
+
+ result
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking cms_snippet changes.
+
+ ## Examples
+
+ iex> change_cms_snippet(cms_snippet)
+ %Ecto.Changeset{source: %CmsSnippet{}}
+
+ """
+ def change_cms_snippet(%CmsSnippet{} = cms_snippet) do
+ CmsSnippet.changeset(cms_snippet, %{})
+ end
+
+ @doc """
+ Returns the list of cms_snippet_versions.
+
+ ## Examples
+
+ iex> list_cms_snippet_versions()
+ [%CmsSnippetVersion{}, ...]
+
+ """
+ def list_cms_snippet_versions do
+ Repo.all(CmsSnippetVersion)
+ end
+
+ @doc """
+ Gets a single cms_snippet_version.
+
+ Raises `Ecto.NoResultsError` if the Cms snippet version does not exist.
+
+ ## Examples
+
+ iex> get_cms_snippet_version!(123)
+ %CmsSnippetVersion{}
+
+ iex> get_cms_snippet_version!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_cms_snippet_version!(id),
+ do: Repo.get!(CmsSnippetVersion, id)
+
+ @doc """
+ Creates a cms_snippet_version.
+
+ ## Examples
+
+ iex> create_cms_snippet_version(%{field: value})
+ {:ok, %CmsSnippetVersion{}}
+
+ iex> create_cms_snippet_version(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_cms_snippet_version(%CmsSnippet{} = cms_snippet) do
+ %CmsSnippetVersion{}
+ |> CmsSnippetVersion.changeset(cms_snippet)
+ |> Repo.insert()
+ end
+end
diff --git a/lib/imagine/cms_templates/cms_snippet.ex b/lib/imagine/cms_templates/cms_snippet.ex
new file mode 100644
index 0000000..c31c9ea
--- /dev/null
+++ b/lib/imagine/cms_templates/cms_snippet.ex
@@ -0,0 +1,33 @@
+defmodule Imagine.CmsTemplates.CmsSnippet do
+ @moduledoc """
+ CmsSnippet - like templates, but used for smaller bits of code. Often used within templates.
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+ alias Imagine.CmsTemplates.CmsTemplate
+
+ schema "cms_snippets" do
+ has_many :versions, Imagine.CmsTemplates.CmsSnippetVersion
+
+ field :version, :integer
+
+ field :name, :string
+ field :description, :string
+ field :content, :string
+ field :content_eex, :string
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ @doc false
+ def changeset(cms_snippet, attrs) do
+ content = attrs["content_eex"] || attrs[:content_eex] || cms_snippet.content_eex
+
+ cms_snippet
+ |> cast(attrs, [:name, :description])
+ |> put_change(:version, (cms_snippet.version || 0) + 1)
+ |> put_change(:content_eex, CmsTemplate.sanitize_content(content))
+ |> validate_required([:name, :version])
+ end
+end
diff --git a/lib/imagine/cms_templates/cms_snippet_version.ex b/lib/imagine/cms_templates/cms_snippet_version.ex
new file mode 100644
index 0000000..c6ba630
--- /dev/null
+++ b/lib/imagine/cms_templates/cms_snippet_version.ex
@@ -0,0 +1,35 @@
+defmodule Imagine.CmsTemplates.CmsSnippetVersion do
+ @moduledoc """
+ CmsSnippetVersion - a single version of CmsSnippet
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ schema "cms_snippet_versions" do
+ belongs_to :cms_snippet, Imagine.CmsTemplates.CmsSnippet
+
+ field :version, :integer
+
+ field :name, :string
+ field :description, :string
+ field :content, :string
+ field :content_eex, :string
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ @doc false
+ def changeset(cms_snippet_version, cms_snippet) do
+ cms_snippet_version
+ |> cast(Map.from_struct(cms_snippet), [
+ :name,
+ :description,
+ :content,
+ :content_eex,
+ :version
+ ])
+ |> put_change(:cms_snippet_id, cms_snippet.id)
+ |> validate_required([:name, :version, :cms_snippet_id])
+ end
+end
diff --git a/lib/imagine/cms_templates/cms_template.ex b/lib/imagine/cms_templates/cms_template.ex
new file mode 100644
index 0000000..42f32fe
--- /dev/null
+++ b/lib/imagine/cms_templates/cms_template.ex
@@ -0,0 +1,159 @@
+defmodule Imagine.CmsTemplates.CmsTemplate do
+ @moduledoc """
+ CMS Template (versioned)
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ alias Imagine.CmsPages.CmsPage
+
+ schema "cms_templates" do
+ has_many :versions, Imagine.CmsTemplates.CmsTemplateVersion
+
+ field :version, :integer
+
+ field :name, :string
+ field :description, :string
+
+ # new fields
+ field :content_eex, :string
+ field :options_json, :string
+
+ # legacy fields (deprecated, but retained so that 5 and 6 can operate side-by-side on the same db)
+ field :content, :string
+ field :options_yaml, :string
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ @doc false
+ def changeset(cms_template, attrs) do
+ content = attrs["content_eex"] || attrs[:content_eex] || cms_template.content_eex
+
+ cms_template
+ |> cast(attrs, [:name, :description, :options_json])
+ |> put_change(:version, (cms_template.version || 0) + 1)
+ |> put_change(:content_eex, content)
+ |> validate_required([:name, :version])
+ end
+
+ def test_render(%Ecto.Changeset{} = changeset) do
+ content = get_field(changeset, :content_eex)
+
+ cms_page = %CmsPage{id: 1, objects: [], versions: []}
+ test_conn = %Plug.Conn{}
+
+ try do
+ {:ok, render(:view, content, cms_page, test_conn)}
+ rescue
+ e in CompileError ->
+ {:error, e}
+
+ e in SyntaxError ->
+ {:error, e}
+
+ e in TokenMissingError ->
+ {:error, e}
+
+ e in EEx.SyntaxError ->
+ {:error, Map.put(e, :description, e.message)}
+
+ e in UndefinedFunctionError ->
+ {:error,
+ e |> Map.put(:description, UndefinedFunctionError.message(e)) |> Map.put(:line, "?")}
+
+ e in Protocol.UndefinedError ->
+ {:error,
+ e |> Map.put(:description, Protocol.UndefinedError.message(e)) |> Map.put(:line, "?")}
+ end
+ end
+
+ @render_helpers "use Phoenix.HTML; alias Imagine.{CmsPages, CmsPages.CmsPage}; import Kernel, only: [sigil_r: 2, sigil_s: 2, sigil_S: 2, if: 2, ==: 2, !=: 2, |>: 2, ||: 2, &&: 2];"
+ def render(:view, content, cms_page, %Plug.Conn{} = conn) do
+ header = "<% import Imagine.CmsTemplates.RenderViewHelpers; #{@render_helpers} %>"
+
+ EEx.eval_string(
+ header <> content,
+ [assigns: [conn: Plug.Conn.assign(conn, :cms_page, cms_page), cms_page: cms_page]],
+ engine: Phoenix.HTML.Engine
+ )
+ end
+
+ # someday take a closer look at this:
+ # https://elixirforum.com/t/using-code-eval-string-to-call-other-functions-in-the-module/12866/7
+ def render(:edit, content, cms_page, %Plug.Conn{} = conn) do
+ # keep this to one line (without a newline at the end) so that line numbers in error messages make sense
+ header = "<% import Imagine.CmsTemplates.RenderEditHelpers; #{@render_helpers} %>"
+
+ EEx.eval_string(
+ header <> content,
+ [assigns: [conn: Plug.Conn.assign(conn, :cms_page, cms_page), cms_page: cms_page]],
+ engine: Phoenix.HTML.Engine
+ )
+ end
+
+ # *very* rudimentary security measure to sanitize the worst (expected!) attack vectors
+ def sanitize_content(nil), do: nil
+
+ def sanitize_content(content) do
+ # list all modules in this application
+ {:ok, modules} = :application.get_key(:imagine_cms, :modules)
+
+ # add on a few more dangerous ones
+ modules =
+ (modules ++
+ [
+ Agent,
+ Application,
+ Behaviour,
+ Code,
+ Config,
+ Dict,
+ DynamicSupervisor,
+ EEx,
+ Exunit,
+ File,
+ GenEvent,
+ GenServer,
+ HashDict,
+ HashSet,
+ IEx,
+ IO,
+ Macro,
+ Mix,
+ Node,
+ Path,
+ Port,
+ Process,
+ Registry,
+ Set,
+ Supervisor,
+ System,
+ Task,
+ Ecto,
+ Phoenix,
+ Plug,
+ :file
+ ])
+ |> Enum.map(&to_string/1)
+ |> Enum.map(fn s -> String.replace(s, ~r/^Elixir\./, "") end)
+ |> Enum.sort(fn a, b -> String.length(a) > String.length(b) end)
+
+ content
+ |> escape_modules(modules)
+ |> escape_import_and_alias()
+ end
+
+ # deletes banned modules from template code
+ defp escape_modules(content, []), do: content
+
+ defp escape_modules(content, [module | modules]) do
+ escape_modules(String.replace(content, ~r/(<%.*?)#{module}\.(.*?%>)/ms, "\\1\\2"), modules)
+ end
+
+ # deletes import and alias keywords, e.g. "import EEx", "alias Imagine.Repo"
+ defp escape_import_and_alias(content) do
+ String.replace(content, ~r/(<%.*?)(import|alias)([\(\s].*?%>)/ms, "\\1\\3")
+ end
+end
diff --git a/lib/imagine/cms_templates/cms_template_version.ex b/lib/imagine/cms_templates/cms_template_version.ex
new file mode 100644
index 0000000..d3cd911
--- /dev/null
+++ b/lib/imagine/cms_templates/cms_template_version.ex
@@ -0,0 +1,45 @@
+defmodule Imagine.CmsTemplates.CmsTemplateVersion do
+ @moduledoc """
+ CmsTemplateVersion - a single version of CmsTemplate
+ """
+
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ alias Imagine.CmsTemplates.CmsTemplate
+
+ schema "cms_template_versions" do
+ belongs_to :cms_template, CmsTemplate
+
+ field :version, :integer
+
+ field :name, :string
+ field :description, :string
+
+ # new fields
+ field :content_eex, :string
+ field :options_json, :string
+
+ # legacy fields (deprecated, but retained so that 5 and 6 can operate side-by-side on the same db)
+ field :content, :string
+ field :options_yaml, :string
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ @doc false
+ def changeset(cms_template_version, %CmsTemplate{} = cms_template) do
+ cms_template_version
+ |> cast(Map.from_struct(cms_template), [
+ :name,
+ :description,
+ :content,
+ :content_eex,
+ :options_yaml,
+ :options_json,
+ :version
+ ])
+ |> put_change(:cms_template_id, cms_template.id)
+ |> validate_required([:name, :version, :cms_template_id])
+ end
+end
diff --git a/lib/imagine/cms_templates/render_edit_helpers.ex b/lib/imagine/cms_templates/render_edit_helpers.ex
new file mode 100644
index 0000000..9304d9a
--- /dev/null
+++ b/lib/imagine/cms_templates/render_edit_helpers.ex
@@ -0,0 +1,116 @@
+defmodule Imagine.CmsTemplates.RenderEditHelpers do
+ @moduledoc """
+ Defines CMS template helpers like text_editor in Edit mode (i.e. editor controls)
+ """
+
+ use Phoenix.HTML
+ alias Imagine.CmsPages.CmsPageObject
+ alias Imagine.CmsTemplates.RenderViewHelpers
+
+ # add shortened, @conn-free versions of all the helpers to make templates look nicer
+ defmacro text_editor(obj_name, opts \\ []) when is_binary(obj_name) do
+ quote do
+ text_editor(var!(assigns)[:conn], unquote(obj_name), unquote(opts))
+ end
+ end
+
+ defmacro snippet(obj_name, opts \\ []) when is_binary(obj_name) do
+ quote do
+ snippet(var!(assigns)[:conn], unquote(obj_name), unquote(opts))
+ end
+ end
+
+ defmacro page_list(obj_name, opts \\ []) when is_binary(obj_name) do
+ quote do
+ page_list(var!(assigns)[:conn], unquote(obj_name), unquote(opts))
+ end
+ end
+
+ def text_editor(%Plug.Conn{assigns: %{cms_page: cms_page}}, obj_name, _opts) do
+ new_obj = Imagine.CmsPages.build_cms_page_object(cms_page, obj_name, "text")
+
+ # Imagine.CmsTemplates.RenderEditHelpers.text_editor(%Plug.Conn{adapter: {Plug.MissingAdapter},
+ # assigns: %{cms_page: %Imagine.CmsPages.CmsPage{}}, before_send: [], body_params: %Plug.Conn.Unfetched{aspect: :body_params}, cookies: %Plug.Conn.Unfetched{aspect: :cookies}, halted: false, host: "www.example.com", method: "GET", owner: nil, params: %Plug.Conn.Unfetched{aspect: :params}, path_info: [], path_params: %{}, port: 0, private: %{}, query_params: %Plug.Conn.Unfetched{aspect: :query_params}, query_string: "", remote_ip: nil, req_cookies: %Plug.Conn.Unfetched{aspect: :cookies}, req_headers: [], request_path: "", resp_body: nil, resp_cookies: %{}, resp_headers: [{"cache-control", "max-age=0, private, must-revalidate"}], scheme: :http, script_name: [], secret_key_base: nil, state: :unset, status: nil}, "Content", [])
+ obj =
+ cms_page
+ |> CmsPageObject.extract_page_objects_from_page()
+ |> CmsPageObject.find_object(obj_name, "text")
+
+ obj =
+ case obj do
+ nil -> Imagine.Repo.insert!(new_obj)
+ _ -> obj
+ end
+
+ atom = String.to_atom("cms_page_objects[]")
+
+ content_tag :div,
+ id: "CmsPageObject-#{obj.id}-container",
+ class: "Imagine-CmsPageObject-TextEditor" do
+ [
+ # content_tag(:div, raw(obj.content), id: "CmsPageObject-#{obj.id}"),
+ textarea(atom, :content,
+ value: raw(obj.content),
+ name: "cms_page[objects][#{obj.id}][content]",
+ id: "CmsPageObject-#{obj.id}",
+ class: "rteditor"
+ )
+ # hidden_input(atom, :id, value: obj.id, name: "cms_page[objects][#{obj.id}][id]"),
+ # hidden_input(atom, :cms_page_version,
+ # value: obj.cms_page_version,
+ # name: "cms_page[objects][#{obj.id}][cms_page_version]"
+ # ),
+ # hidden_input(atom, :name, value: obj.name, name: "cms_page[objects][#{obj.id}][name]"),
+ # hidden_input(atom, :obj_type,
+ # value: obj.obj_type,
+ # name: "cms_page[objects][#{obj.id}][obj_type]"
+ # ),
+ # hidden_input(atom, :options,
+ # value: obj.options,
+ # name: "cms_page[objects][#{obj.id}][options]"
+ # )
+ ]
+ end
+ end
+
+ # def text_editor(_conn, _, _) do
+ # "text_editor(): Invalid arguments provided. First argument should be @conn. Second argument should be a name."
+ # end
+
+ def snippet(conn, obj_name, opts) do
+ RenderViewHelpers.snippet(conn, obj_name, opts)
+ end
+
+ def page_list(_conn, _obj_name, _opts) do
+ "Page List modal not implemented yet (edit in template)"
+ end
+
+ def template_option(_opt_name, :string) do
+ "template_option(opt_name, :string) not implemented yet"
+ end
+
+ def template_option(_opt_name, :checkbox) do
+ "template_option(opt_name, :checkbox) not implemented yet"
+ end
+
+ #
+ # older insert_object syntax
+ #
+ # defmacro insert_object(obj_name, type, opts \\ [])
+
+ # defmacro insert_object(obj_name, :text, opts) do
+ # text_editor(obj_name, opts)
+ # end
+
+ # defmacro insert_object(obj_name, :snippet, opts) do
+ # snippet(obj_name, opts)
+ # end
+
+ # defmacro insert_object(obj_name, :page_list, opts) do
+ # page_list(obj_name, opts)
+ # end
+
+ def render(_conn, [partial: _partial_path] = _opts) do
+ "render(partial: ...) not implemented yet"
+ end
+end
diff --git a/lib/imagine/cms_templates/render_view_helpers.ex b/lib/imagine/cms_templates/render_view_helpers.ex
new file mode 100644
index 0000000..3859995
--- /dev/null
+++ b/lib/imagine/cms_templates/render_view_helpers.ex
@@ -0,0 +1,186 @@
+defmodule Imagine.CmsTemplates.RenderViewHelpers do
+ @moduledoc """
+ Defines CMS template helpers like text_editor in View mode (i.e. the rendered output)
+ """
+
+ use Phoenix.HTML
+
+ alias Imagine.CmsPages
+ alias Imagine.CmsPages.{CmsPage, CmsPageObject}
+ # alias Imagine.CmsTemplates
+ alias Imagine.CmsTemplates.CmsTemplate
+ alias Imagine.Repo
+
+ # add shortened, @conn-free versions of all the helpers to make templates look nicer
+ defmacro text_editor(obj_name, opts \\ []) when is_binary(obj_name) do
+ quote do
+ text_editor(var!(assigns)[:conn], unquote(obj_name), unquote(opts))
+ end
+ end
+
+ defmacro snippet(obj_name, opts \\ []) when is_binary(obj_name) do
+ quote do
+ snippet(var!(assigns)[:conn], unquote(obj_name), unquote(opts))
+ end
+ end
+
+ defmacro page_list(obj_name, opts \\ []) when is_binary(obj_name) do
+ quote do
+ page_list(var!(assigns)[:conn], unquote(obj_name), unquote(opts))
+ end
+ end
+
+ def text_editor(%Plug.Conn{assigns: %{cms_page: cms_page}}, obj_name, _opts) do
+ obj =
+ cms_page
+ |> CmsPageObject.extract_page_objects_from_page()
+ |> CmsPageObject.find_object(obj_name, "text")
+
+ case obj do
+ nil -> nil
+ _ -> raw(obj.content)
+ end
+ end
+
+ # def text_editor(_conn, _, _) do
+ # {:safe,
+ # "text_editor(): Invalid arguments provided. First argument should be @conn. Second argument should be a name."}
+ # end
+
+ def snippet(%Plug.Conn{} = conn, obj_name, _opts) do
+ cms_page = conn.assigns[:cms_page] || %CmsPage{}
+ snippet = Imagine.CmsTemplates.get_cms_snippet_by_name(obj_name)
+
+ case snippet do
+ nil -> "Could not find snippet \"#{obj_name}\" in the database."
+ _ -> CmsTemplate.render(:edit, snippet.content, cms_page, conn)
+ end
+ end
+
+ def sort_pages(pages, key1, :asc) do
+ Enum.sort(pages, &cmp_asc(&1, &2, key1))
+ end
+
+ def sort_pages(pages, key1, :desc) do
+ Enum.sort(pages, &cmp_desc(&1, &2, key1))
+ end
+
+ # def sort_pages(pages, key1, key1dir, key2, key2dir) do
+ # Enum.sort(pages, &cmp_asc(&1, &2, key1))
+ # end
+
+ def cmp_eq(a, b, key) when is_binary(key), do: cmp_eq(a, b, String.to_existing_atom(key))
+
+ def cmp_eq(a, b, key) do
+ Map.get(a, key) == Map.get(b, key)
+ end
+
+ def cmp_asc(a, b, key) do
+ Map.get(a, key) <= Map.get(b, key)
+ end
+
+ def cmp_desc(a, b, key) do
+ Map.get(b, key) <= Map.get(a, key)
+ end
+
+ def page_list(%Plug.Conn{assigns: %{cms_page: cms_page}}, obj_name, opts) do
+ pages = gather_pages_from_folders(opts[:folders])
+ # TODO: combine with pages from tags
+
+ pages =
+ sort_pages(
+ pages,
+ opts[:primary_sort_key] || :article_date,
+ opts[:primary_sort_direction] || :desc
+ )
+
+ output = render_page_list(pages, cms_page, opts)
+
+ id = "PageList-#{obj_name}-container"
+ class = "Imagine-CmsPageObject-PageList"
+
+ content_tag :div, id: id, class: class do
+ raw(output)
+ end
+ end
+
+ def render_page_list(pages, containing_page, opts) do
+ [
+ hbrender(opts[:header], containing_page),
+ render_page_list_pages(pages, containing_page, opts),
+ hbrender(opts[:footer], containing_page)
+ ]
+ end
+
+ def hbrender(nil, _context), do: ""
+
+ def hbrender(content, context) do
+ NodeJS.call!("hbrender", [content, context], binary: true)
+ end
+
+ def render_page_list_pages(cms_pages, containing_page, opts, index \\ 1)
+ def render_page_list_pages([], _containing_page, _opts, _index), do: []
+
+ def render_page_list_pages([cms_page | cms_pages], containing_page, opts, index) do
+ context =
+ cms_page
+ |> Map.put(:containing_page, containing_page)
+ |> Map.put(:index, index)
+
+ # NOTE: the Jason encoder ultimately determines which attributes are exposed to hbrender
+ output = hbrender(opts[:template], context)
+ [output, render_page_list_pages(cms_pages, containing_page, opts, index + 1)]
+ end
+
+ def gather_pages_from_folders(folders) when is_binary(folders) do
+ gather_pages_from_folders(folders |> String.split(",") |> Enum.map(&String.trim/1))
+ end
+
+ def gather_pages_from_folders(nil), do: []
+ def gather_pages_from_folders([]), do: []
+
+ def gather_pages_from_folders([folder | folders]) do
+ cms_page =
+ folder
+ |> CmsPages.get_cms_page_by_path()
+ |> Repo.preload(:sub_pages)
+
+ sub_pages =
+ case cms_page do
+ # can be nil when page list is pointed at a non-existent path
+ nil -> []
+ _ -> cms_page.sub_pages
+ end
+
+ sub_pages ++ gather_pages_from_folders(folders)
+ end
+
+ def template_option(_opt_name, :string) do
+ "template_option(opt_name, :string) not implemented yet"
+ end
+
+ def template_option(_opt_name, :checkbox, do: _expression) do
+ "template_option(opt_name, :checkbox) not implemented yet"
+ end
+
+ #
+ # older insert_object syntax
+ #
+ # defmacro insert_object(obj_name, type, opts \\ [])
+
+ # defmacro insert_object(obj_name, :text, opts) do
+ # text_editor(obj_name, opts)
+ # end
+
+ # defmacro insert_object(obj_name, :snippet, opts) do
+ # snippet(obj_name, opts)
+ # end
+
+ # defmacro insert_object(conn, obj_name, :page_list, opts) do
+ # page_list(obj_name, opts)
+ # end
+
+ def render(_conn, [partial: _partial_path] = _opts) do
+ "render(partial: ...) not implemented yet"
+ end
+end
diff --git a/lib/imagine/config.ex b/lib/imagine/config.ex
new file mode 100644
index 0000000..648542a
--- /dev/null
+++ b/lib/imagine/config.ex
@@ -0,0 +1,8 @@
+defmodule Imagine.Config do
+ def version, do: Imagine.MixProject.project()[:version]
+
+ def build_number,
+ do: System.cmd("git", ["rev-list", "HEAD", "--count"]) |> elem(0) |> String.trim()
+
+ def release_built_at, do: DateTime.utc_now()
+end
diff --git a/lib/imagine/release_tasks.ex b/lib/imagine/release_tasks.ex
new file mode 100644
index 0000000..a369586
--- /dev/null
+++ b/lib/imagine/release_tasks.ex
@@ -0,0 +1,11 @@
+defmodule Imagine.ReleaseTasks do
+ @moduledoc """
+ ReleaseTasks - allows us to run database migrations in production without Mix
+ """
+
+ def migrate do
+ {:ok, _} = Application.ensure_all_started(:imagine_cms)
+ path = Application.app_dir(:imagine_cms, "priv/repo/migrations")
+ Ecto.Migrator.run(Imagine.Repo, path, :up, all: true)
+ end
+end
diff --git a/lib/imagine/repo.ex b/lib/imagine/repo.ex
new file mode 100644
index 0000000..09f35e0
--- /dev/null
+++ b/lib/imagine/repo.ex
@@ -0,0 +1,5 @@
+defmodule Imagine.Repo do
+ use Ecto.Repo,
+ otp_app: :imagine_cms,
+ adapter: Ecto.Adapters.MyXQL
+end
diff --git a/lib/imagine_web.ex b/lib/imagine_web.ex
new file mode 100644
index 0000000..488fe98
--- /dev/null
+++ b/lib/imagine_web.ex
@@ -0,0 +1,103 @@
+defmodule ImagineWeb do
+ @moduledoc """
+ The entrypoint for defining your web interface, such
+ as controllers, views, channels and so on.
+
+ This can be used in your application as:
+
+ use ImagineWeb, :controller
+ use ImagineWeb, :view
+
+ The definitions below will be executed for every view,
+ controller, etc, so keep them short and clean, focused
+ on imports, uses and aliases.
+
+ Do NOT define functions inside the quoted expressions
+ below. Instead, define any helper function in modules
+ and import those modules here.
+ """
+
+ def controller do
+ quote do
+ use Phoenix.Controller, namespace: ImagineWeb
+
+ import Plug.Conn
+ import ImagineWeb.Gettext
+ alias ImagineWeb.Router.Helpers, as: Routes
+ end
+ end
+
+ def view do
+ quote do
+ use Phoenix.View,
+ root: "lib/imagine_web/templates",
+ pattern: "**/*",
+ namespace: ImagineWeb
+
+ # Import convenience functions from controllers
+ import Phoenix.Controller,
+ only: [get_flash: 1, get_flash: 2, view_module: 1, view_template: 1]
+
+ # Include shared imports and aliases for views
+ unquote(view_helpers())
+ end
+ end
+
+ def live_view do
+ quote do
+ use Phoenix.LiveView,
+ layout: {ImagineWeb.LayoutView, "live.html"}
+
+ unquote(view_helpers())
+ end
+ end
+
+ def live_component do
+ quote do
+ use Phoenix.LiveComponent
+
+ unquote(view_helpers())
+ end
+ end
+
+ def router do
+ quote do
+ use Phoenix.Router
+
+ import Plug.Conn
+ import Phoenix.Controller
+ import Phoenix.LiveView.Router
+ end
+ end
+
+ def channel do
+ quote do
+ use Phoenix.Channel
+ import ImagineWeb.Gettext
+ end
+ end
+
+ defp view_helpers do
+ quote do
+ # Use all HTML functionality (forms, tags, etc)
+ use Phoenix.HTML
+
+ # Import LiveView helpers (live_render, live_component, live_patch, etc)
+ import Phoenix.LiveView.Helpers
+
+ # Import basic rendering functionality (render, render_layout, etc)
+ import Phoenix.View
+
+ import ImagineWeb.ErrorHelpers
+ import ImagineWeb.Gettext
+ alias ImagineWeb.Router.Helpers, as: Routes
+ end
+ end
+
+ @doc """
+ When used, dispatch to the appropriate controller/view/etc.
+ """
+ defmacro __using__(which) when is_atom(which) do
+ apply(__MODULE__, which, [])
+ end
+end
diff --git a/lib/imagine_web/channels/user_socket.ex b/lib/imagine_web/channels/user_socket.ex
new file mode 100644
index 0000000..0bfb43c
--- /dev/null
+++ b/lib/imagine_web/channels/user_socket.ex
@@ -0,0 +1,33 @@
+defmodule ImagineWeb.UserSocket do
+ use Phoenix.Socket
+
+ ## Channels
+ # channel "room:*", ImagineWeb.RoomChannel
+
+ # Socket params are passed from the client and can
+ # be used to verify and authenticate a user. After
+ # verification, you can put default assigns into
+ # the socket that will be set for all channels, ie
+ #
+ # {:ok, assign(socket, :user_id, verified_user_id)}
+ #
+ # To deny connection, return `:error`.
+ #
+ # See `Phoenix.Token` documentation for examples in
+ # performing token verification on connect.
+ def connect(_params, socket, _connect_info) do
+ {:ok, socket}
+ end
+
+ # Socket id's are topics that allow you to identify all sockets for a given user:
+ #
+ # def id(socket), do: "user_socket:#{socket.assigns.user_id}"
+ #
+ # Would allow you to broadcast a "disconnect" event and terminate
+ # all active sockets and channels for a given user:
+ #
+ # ImagineWeb.Endpoint.broadcast("user_socket:#{user.id}", "disconnect", %{})
+ #
+ # Returning `nil` makes this socket anonymous.
+ def id(_socket), do: nil
+end
diff --git a/lib/imagine_web/controllers/account_controller.ex b/lib/imagine_web/controllers/account_controller.ex
new file mode 100644
index 0000000..1587c51
--- /dev/null
+++ b/lib/imagine_web/controllers/account_controller.ex
@@ -0,0 +1,27 @@
+defmodule ImagineWeb.AccountController do
+ use ImagineWeb, :controller
+
+ alias Imagine.Accounts
+ require Logger
+
+ def edit(conn, _params) do
+ user = conn.assigns[:current_user]
+ changeset = Accounts.change_user(user)
+
+ render(conn, "edit.html", page_title: "Account", changeset: changeset)
+ end
+
+ def update(conn, %{"user" => attrs}) do
+ user = conn.assigns[:current_user]
+
+ case Accounts.update_user_change_password(user, attrs) do
+ {:ok, _user} ->
+ conn
+ |> put_flash(:info, "Account updated successfully.")
+ |> redirect(to: Routes.account_path(conn, :edit))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "edit.html", page_title: "Account", changeset: changeset)
+ end
+ end
+end
diff --git a/lib/imagine_web/controllers/auth_controller.ex b/lib/imagine_web/controllers/auth_controller.ex
new file mode 100644
index 0000000..4d9b284
--- /dev/null
+++ b/lib/imagine_web/controllers/auth_controller.ex
@@ -0,0 +1,45 @@
+defmodule ImagineWeb.AuthController do
+ use ImagineWeb, :controller
+
+ alias Imagine.Accounts
+ alias Imagine.Accounts.User
+
+ def login(conn, params) do
+ conn
+ |> assign(:csrf_token, get_csrf_token())
+ |> assign(:return_to, params["return_to"])
+ |> render("login.html")
+ end
+
+ def handle_login(conn, %{"user" => %{"username" => username}} = params) do
+ user = Accounts.get_user_by_username_or_email(username)
+ password = params["user"]["password"]
+
+ return_to =
+ if params["system"]["return_to"] == "",
+ do: Routes.cms_path(conn, :index),
+ else: params["system"]["return_to"]
+
+ case user && User.check_password(user, password) do
+ true ->
+ conn
+ |> Plug.Conn.put_session(:user_id, user.id)
+ |> put_flash(:notice, "Logged in successfully.")
+ |> redirect(to: return_to)
+
+ _ ->
+ conn
+ |> put_flash(:error, "Invalid username or password, please try again.")
+ |> assign(:csrf_token, get_csrf_token())
+ |> assign(:return_to, return_to)
+ |> render("login.html")
+ end
+ end
+
+ def handle_logout(conn, _params) do
+ conn
+ |> Plug.Conn.delete_session(:user_id)
+ |> put_flash(:notice, "You have been logged out of the system.")
+ |> redirect(to: Routes.auth_path(conn, :login))
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_controller.ex b/lib/imagine_web/controllers/cms_controller.ex
new file mode 100644
index 0000000..bca050e
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_controller.ex
@@ -0,0 +1,7 @@
+defmodule ImagineWeb.CmsController do
+ use ImagineWeb, :controller
+
+ def index(conn, _params) do
+ render(conn, "index.html")
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_page_controller.ex b/lib/imagine_web/controllers/cms_page_controller.ex
new file mode 100644
index 0000000..0861d17
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_page_controller.ex
@@ -0,0 +1,210 @@
+defmodule ImagineWeb.CmsPageController do
+ use ImagineWeb, :controller
+
+ alias Imagine.Repo
+ alias Imagine.CmsPages
+ alias Imagine.CmsPages.CmsPage
+ alias Imagine.CmsTemplates
+ alias Imagine.CmsTemplates.CmsTemplate
+
+ def index(conn, params) do
+ cms_pages =
+ CmsPages.list_recent_cms_pages(10)
+ |> Repo.preload(:cms_template)
+
+ conn
+ |> set_page_id_in_session(params["cms_page_id"])
+ |> render("index.html", cms_pages: cms_pages)
+ end
+
+ def new(conn, params) do
+ parent_id = params["parent_id"]
+
+ conn = put_session(conn, :cms_page_id, parent_id)
+
+ changeset =
+ CmsPages.change_cms_page(%CmsPage{
+ published_date: NaiveDateTime.utc_now(),
+ position: 1,
+ parent_id: parent_id
+ })
+
+ cms_templates = CmsTemplates.list_cms_templates()
+ cms_pages = CmsPages.list_cms_pages()
+
+ render(conn, "new.html",
+ changeset: changeset,
+ cms_templates: cms_templates,
+ cms_pages: cms_pages
+ )
+ end
+
+ def create(conn, %{"cms_page" => cms_page_params}) do
+ current_user = conn.assigns[:current_user]
+
+ case CmsPages.create_cms_page(cms_page_params, current_user) do
+ {:ok, cms_page} ->
+ conn
+ |> put_flash(:info, "Page created successfully.")
+ |> put_session(:cms_page_id, cms_page.id)
+ |> redirect(to: Routes.cms_page_path(conn, :index))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ cms_templates = CmsTemplates.list_cms_templates()
+ cms_pages = CmsPages.list_cms_pages()
+
+ render(conn, "new.html",
+ changeset: changeset,
+ cms_templates: cms_templates,
+ cms_pages: cms_pages
+ )
+ end
+ end
+
+ def show(conn, %{"id" => id}) do
+ cms_page =
+ CmsPages.get_cms_page!(id, include_deleted: true)
+ |> Repo.preload(:sub_pages)
+
+ conn = put_session(conn, :cms_page_id, cms_page.id)
+ render(conn, "show.html", cms_page: cms_page)
+ end
+
+ def edit(conn, %{"id" => id}) do
+ cms_page = CmsPages.get_cms_page!(id, preload_versions: true)
+ conn = put_session(conn, :cms_page_id, cms_page.id)
+
+ changeset = CmsPages.change_cms_page(cms_page)
+ cms_templates = CmsTemplates.list_cms_templates()
+ cms_pages = CmsPages.list_cms_pages()
+
+ render(conn, "edit.html",
+ cms_page: cms_page,
+ changeset: changeset,
+ cms_templates: cms_templates,
+ cms_pages: cms_pages
+ )
+ end
+
+ def update(conn, %{"id" => id, "cms_page" => cms_page_params} = params) do
+ cms_page = CmsPages.get_cms_page!(id)
+ current_user = conn.assigns[:current_user]
+
+ return_to = params["return_to"] || Routes.cms_page_path(conn, :index)
+
+ case CmsPages.update_cms_page(cms_page, cms_page_params, false, current_user) do
+ {:ok, cms_page} ->
+ conn
+ |> put_flash(:info, "Page properties saved.")
+ |> put_session(:cms_page_id, cms_page.id)
+ |> redirect(to: return_to)
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ cms_page = CmsPages.get_cms_page!(id, preload_versions: true)
+ cms_templates = CmsTemplates.list_cms_templates()
+ cms_pages = CmsPages.list_cms_pages()
+
+ render(conn, "edit.html",
+ cms_page: cms_page,
+ changeset: changeset,
+ cms_templates: cms_templates,
+ cms_pages: cms_pages
+ )
+ end
+ end
+
+ def edit_content(conn, %{"id" => id} = params) do
+ version = params["version"]
+
+ cms_page =
+ id
+ |> CmsPages.get_cms_page_with_objects!(version)
+ |> Imagine.Repo.preload([:cms_template, :tags])
+
+ output = CmsTemplate.render(:edit, cms_page.cms_template.content, cms_page, conn)
+
+ conn
+ |> set_page_id_in_session(params["id"])
+ |> render("edit_content.html",
+ output: output,
+ cms_page: cms_page,
+ version: version,
+ csrf_token: get_csrf_token(),
+ layout: {ImagineWeb.LayoutView, "app.html"}
+ )
+ end
+
+ def update_content(conn, %{"id" => id} = params) do
+ version = params["version"]
+
+ cms_page =
+ id
+ |> CmsPages.get_cms_page_with_objects!(version)
+ |> Repo.preload([:cms_template, :tags])
+
+ current_user = conn.assigns[:current_user]
+
+ # FIXME: Create something like CmsPages.update_cms_page_and_objects that uses Ecto.Multi
+ {:ok, new_cms_page} =
+ CmsPages.update_cms_page(CmsPages.get_cms_page!(id), %{}, true, current_user)
+
+ attrses = build_attrs_list(cms_page.objects, params["cms_page"]["objects"])
+ CmsPages.update_cms_page_objects(cms_page.objects, attrses, new_cms_page.version)
+
+ redirect(conn, to: "/#{cms_page.path}")
+ end
+
+ def set_published_version(conn, %{"id" => id, "version" => version}) do
+ cms_page = CmsPages.get_cms_page!(id)
+ current_user = conn.assigns[:current_user]
+
+ attrs = %{"published_version" => version}
+
+ {:ok, _updated_cms_page} = CmsPages.update_cms_page(cms_page, attrs, false, current_user)
+
+ conn
+ |> resp(200, "success")
+ end
+
+ def delete(conn, %{"id" => id}) do
+ {:ok, cms_page} = id |> CmsPages.get_cms_page!() |> CmsPages.delete_cms_page()
+
+ conn
+ |> put_flash(:info, "Page moved to trash.")
+ |> put_session(:cms_page_id, cms_page.parent_id)
+ |> redirect(to: Routes.cms_page_path(conn, :index))
+ end
+
+ def undelete(conn, %{"id" => id}) do
+ {:ok, cms_page} =
+ id
+ |> CmsPages.get_cms_page!(include_deleted: true)
+ |> CmsPages.undelete_cms_page()
+
+ conn
+ |> put_flash(:info, "Page restored to original location.")
+ |> put_session(:cms_page_id, cms_page.id)
+ |> redirect(to: Routes.cms_page_path(conn, :index))
+ end
+
+ def destroy(conn, %{"id" => id}) do
+ {:ok, _cms_page} =
+ id
+ |> CmsPages.get_cms_page!(include_deleted: true)
+ |> CmsPages.destroy_cms_page()
+
+ conn
+ |> put_flash(:info, "Page deleted permanently.")
+ |> put_session(:cms_page_id, "_trash")
+ |> redirect(to: Routes.cms_page_path(conn, :index))
+ end
+
+ defp set_page_id_in_session(conn, nil), do: conn
+ defp set_page_id_in_session(conn, page_id), do: put_session(conn, :cms_page_id, page_id)
+
+ defp build_attrs_list(objects, obj_params) do
+ objects
+ |> Enum.map(fn obj -> to_string(obj.id) end)
+ |> Enum.map(fn id -> obj_params[id] end)
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_page_version_controller.ex b/lib/imagine_web/controllers/cms_page_version_controller.ex
new file mode 100644
index 0000000..b60cdf1
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_page_version_controller.ex
@@ -0,0 +1,23 @@
+defmodule ImagineWeb.CmsPageVersionController do
+ use ImagineWeb, :controller
+
+ alias Imagine.CmsPages
+
+ def index(conn, params) do
+ cms_page =
+ params["cms_page_id"]
+ |> CmsPages.get_cms_page!()
+ |> Imagine.Repo.preload(versions: [:cms_template])
+
+ render(conn, "index.html",
+ cms_page: cms_page,
+ cms_page_versions: cms_page.versions
+ )
+ end
+
+ def show(conn, %{"id" => id} = params) do
+ cms_page = CmsPages.get_cms_page!(params["cms_page_id"])
+ cms_page_version = CmsPages.get_cms_page_version!(id)
+ render(conn, "show.html", cms_page: cms_page, cms_page_version: cms_page_version)
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_renderer_controller.ex b/lib/imagine_web/controllers/cms_renderer_controller.ex
new file mode 100644
index 0000000..57e9a86
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_renderer_controller.ex
@@ -0,0 +1,191 @@
+defmodule ImagineWeb.CmsRendererController do
+ use ImagineWeb, :controller
+
+ alias Imagine.CmsPages
+ alias Imagine.CmsPages.CmsPage
+ alias Imagine.CmsTemplates
+ alias Imagine.CmsTemplates.CmsTemplate
+ alias Phoenix.HTML
+
+ def show(conn, %{"path" => path_elements}) do
+ case path_elements |> Enum.reverse() do
+ ["edit", version, "version" | elements] ->
+ path = elements |> Enum.reverse() |> Enum.join("/")
+ cms_page = CmsPages.get_cms_page_by_path(path)
+
+ redirect(conn,
+ to: Routes.cms_page_path(conn, :edit_content, cms_page.id, version: version)
+ )
+
+ [version, "version" | elements] ->
+ if conn.assigns[:current_user] do
+ path = elements |> Enum.reverse() |> Enum.join("/")
+ render_cms_page(conn, path, version)
+ else
+ path = [version, "version" | elements] |> Enum.reverse() |> Enum.join("/")
+ redirect(conn, to: Routes.auth_path(conn, :login, return_to: "/#{path}"))
+ end
+
+ ["login" | elements] ->
+ path = elements |> Enum.reverse() |> Enum.join("/")
+ redirect(conn, to: Routes.auth_path(conn, :login, return_to: "/#{path}"))
+
+ ["edit" | elements] ->
+ path = elements |> Enum.reverse() |> Enum.join("/")
+ cms_page = CmsPages.get_cms_page_by_path(path)
+ redirect(conn, to: Routes.cms_page_path(conn, :edit_content, cms_page.id))
+
+ _ ->
+ path = path_elements |> Enum.join("/")
+ render_cms_page(conn, path)
+ end
+ end
+
+ defp render_cms_page(conn, path, version \\ 0)
+
+ defp render_cms_page(%Plug.Conn{} = conn, path, version) do
+ if cms_page = CmsPages.get_cms_page_by_path(path) do
+ case cms_page.redirect_enabled do
+ true -> redirect(conn, external: cms_page.redirect_to)
+ _ -> check_cache_and_render_cms_page(conn, cms_page, version)
+ end
+ else
+ render_404(conn)
+ end
+ end
+
+ defp check_cache_and_render_cms_page(conn, cms_page, version) do
+ render_uncached_cms_page(conn, cms_page, version)
+ end
+
+ defp render_uncached_cms_page(%Plug.Conn{} = conn, cms_page, version) do
+ user = conn.assigns[:current_user]
+
+ key = {{"cms_page", cms_page.id}}
+ cached_result = if user, do: nil, else: Imagine.Cache.get(key)
+
+ cms_page =
+ cached_result ||
+ Imagine.Cache.set(
+ key,
+ cms_page
+ |> CmsPages.preload_objects_and_versions()
+ |> Imagine.Repo.preload([:cms_template, :tags])
+ )
+
+ cms_page_version = get_requested_cms_page_version(cms_page, version)
+
+ render_requested_cms_page_version(conn, cms_page, cms_page_version)
+ end
+
+ defp render_requested_cms_page_version(conn, nil, _), do: render_404(conn)
+
+ defp render_requested_cms_page_version(%Plug.Conn{} = conn, cms_page, cms_page_version) do
+ user = conn.assigns[:current_user]
+
+ key = {{"rendered_template_output", cms_page.id, cms_page_version.version}}
+ cached_result = if user, do: nil, else: Imagine.Cache.get(key)
+
+ output =
+ case cached_result do
+ nil ->
+ cms_template_content =
+ get_cms_template_content(
+ cms_page,
+ cms_page_version.version,
+ cms_page_version.cms_template_id,
+ cms_page_version.cms_template_version
+ )
+
+ output = CmsTemplate.render(:view, cms_template_content, cms_page_version, conn)
+ Imagine.Cache.set(key, output)
+
+ _ ->
+ cached_result
+ end
+
+ if user do
+ # for properties modal
+ changeset = CmsPages.change_cms_page(cms_page)
+ cms_templates = CmsTemplates.list_cms_templates()
+ cms_pages = CmsPages.list_cms_pages()
+
+ render(conn, "show.html",
+ # layout: layout,
+ output: output,
+ cms_page: cms_page,
+ changeset: changeset,
+ cms_templates: cms_templates,
+ cms_pages: cms_pages,
+ display_version_options:
+ version_option_tags(cms_page.versions, "Display: ", cms_page_version.version),
+ published_version_options:
+ version_option_tags(cms_page.versions, "Publish: ", cms_page.published_version),
+ csrf_token: Phoenix.Controller.get_csrf_token(),
+ action: Routes.cms_page_path(conn, :update, cms_page)
+ )
+ else
+ if cms_page.published_version == -1 do
+ render_404(conn)
+ else
+ render(conn, "show.html",
+ # layout: {ImagineWeb.LayoutView, "app.html"},
+ output: output,
+ cms_page: cms_page
+ )
+ end
+ end
+ end
+
+ def render_404(conn) do
+ # layout = {ImagineWeb.LayoutView, "app.html"}
+ render(put_status(conn, :not_found), "404.html", cms_page: nil)
+ # layout: layout)
+ end
+
+ defp get_requested_cms_page_version(nil, _), do: nil
+ defp get_requested_cms_page_version(cms_page, version) when version == 0, do: cms_page
+
+ defp get_requested_cms_page_version(%CmsPage{version: pg_version} = cms_page, version)
+ when version == pg_version,
+ do: cms_page
+
+ defp get_requested_cms_page_version(%CmsPage{} = cms_page, version) do
+ cms_page.path
+ |> CmsPages.get_cms_page_by_path_with_objects(version)
+ |> Imagine.Repo.preload([:cms_template, :tags])
+ end
+
+ # if page version is latest (0 or pg_version), use latest template version.
+ # this is a legacy behavior, but one which I believe is still the least
+ # surprising (no need to re-save all pages to see template changes)
+ defp get_cms_template_content(%CmsPage{} = cms_page, 0, _, _),
+ do: cms_page.cms_template.content_eex
+
+ defp get_cms_template_content(%CmsPage{version: pg_version} = cms_page, version, _, _)
+ when version == pg_version,
+ do: cms_page.cms_template.content_eex
+
+ defp get_cms_template_content(_, _, cms_template_id, cms_template_version) do
+ CmsTemplates.get_cms_template_version_by(
+ cms_template_id: cms_template_id,
+ version: cms_template_version
+ ).content_eex
+ end
+
+ defp version_option_tags(versions, prefix, selected) do
+ version_tuples =
+ Enum.map(versions, fn v ->
+ {v.version, "#{prefix}#{v.version} - #{v.updated_on} by #{v.updated_by_username}"}
+ end)
+
+ version_tuples =
+ case prefix do
+ "Publish: " -> [{0, "Publish: [Latest]"}] ++ version_tuples ++ [{-1, "[Offline]"}]
+ _ -> version_tuples
+ end
+
+ for {version, str} <- version_tuples,
+ do: HTML.Tag.content_tag(:option, str, value: version, selected: version == selected)
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_snippet_controller.ex b/lib/imagine_web/controllers/cms_snippet_controller.ex
new file mode 100644
index 0000000..d2987e9
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_snippet_controller.ex
@@ -0,0 +1,64 @@
+defmodule ImagineWeb.CmsSnippetController do
+ use ImagineWeb, :controller
+
+ alias Imagine.CmsTemplates
+ alias Imagine.CmsTemplates.CmsSnippet
+
+ def index(conn, _params) do
+ cms_snippets = CmsTemplates.list_cms_snippets()
+ render(conn, "index.html", cms_snippets: cms_snippets)
+ end
+
+ def new(conn, _params) do
+ changeset = CmsTemplates.change_cms_snippet(%CmsSnippet{})
+ render(conn, "new.html", changeset: changeset)
+ end
+
+ def create(conn, %{"cms_snippet" => cms_snippet_params}) do
+ case CmsTemplates.create_cms_snippet(cms_snippet_params) do
+ {:ok, cms_snippet} ->
+ conn
+ |> put_flash(:info, "Snippet created successfully.")
+ |> redirect(to: Routes.cms_snippet_path(conn, :show, cms_snippet))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "new.html", changeset: changeset)
+ end
+ end
+
+ def show(conn, %{"id" => id}) do
+ cms_snippet = CmsTemplates.get_cms_snippet!(id)
+ render(conn, "show.html", cms_snippet: cms_snippet)
+ end
+
+ def edit(conn, %{"id" => id}) do
+ cms_snippet = CmsTemplates.get_cms_snippet!(id)
+ changeset = CmsTemplates.change_cms_snippet(cms_snippet)
+ render(conn, "edit.html", cms_snippet: cms_snippet, changeset: changeset)
+ end
+
+ def update(conn, %{"id" => id, "cms_snippet" => cms_snippet_params}) do
+ cms_snippet = CmsTemplates.get_cms_snippet!(id)
+
+ case CmsTemplates.update_cms_snippet(cms_snippet, cms_snippet_params) do
+ {:ok, cms_snippet} ->
+ changeset = CmsTemplates.change_cms_snippet(cms_snippet)
+
+ conn
+ |> put_flash(:info, "Snippet updated successfully.")
+ |> render("edit.html", cms_snippet: cms_snippet, changeset: changeset)
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "edit.html", cms_snippet: cms_snippet, changeset: changeset)
+ end
+ end
+
+ def delete(conn, %{"id" => id}) do
+ cms_snippet = CmsTemplates.get_cms_snippet!(id)
+ {:ok, _cms_snippet} = CmsTemplates.delete_cms_snippet(cms_snippet)
+
+ conn
+ |> put_flash(:info, "Snippet deleted successfully.")
+ |> redirect(to: Routes.cms_snippet_path(conn, :index))
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_snippet_version_controller.ex b/lib/imagine_web/controllers/cms_snippet_version_controller.ex
new file mode 100644
index 0000000..2542855
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_snippet_version_controller.ex
@@ -0,0 +1,24 @@
+defmodule ImagineWeb.CmsSnippetVersionController do
+ use ImagineWeb, :controller
+
+ alias Imagine.CmsTemplates
+ # alias Imagine.CmsTemplates.CmsSnippetVersion
+
+ def index(conn, params) do
+ cms_snippet =
+ params["cms_snippet_id"]
+ |> CmsTemplates.get_cms_snippet!()
+ |> Imagine.Repo.preload([:versions])
+
+ render(conn, "index.html",
+ cms_snippet: cms_snippet,
+ cms_snippet_versions: cms_snippet.versions
+ )
+ end
+
+ def show(conn, %{"id" => id} = params) do
+ cms_snippet = CmsTemplates.get_cms_snippet!(params["cms_snippet_id"])
+ cms_snippet_version = CmsTemplates.get_cms_snippet_version!(id)
+ render(conn, "show.html", cms_snippet: cms_snippet, cms_snippet_version: cms_snippet_version)
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_template_controller.ex b/lib/imagine_web/controllers/cms_template_controller.ex
new file mode 100644
index 0000000..6558261
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_template_controller.ex
@@ -0,0 +1,65 @@
+defmodule ImagineWeb.CmsTemplateController do
+ use ImagineWeb, :controller
+
+ alias Imagine.CmsTemplates
+ alias Imagine.CmsTemplates.CmsTemplate
+
+ def index(conn, _params) do
+ cms_templates = CmsTemplates.list_cms_templates()
+ render(conn, "index.html", cms_templates: cms_templates)
+ end
+
+ def new(conn, _params) do
+ changeset = CmsTemplates.change_cms_template(%CmsTemplate{})
+ render(conn, "new.html", changeset: changeset)
+ end
+
+ def create(conn, %{"cms_template" => cms_template_params}) do
+ case CmsTemplates.create_cms_template(cms_template_params) do
+ {:ok, cms_template} ->
+ conn
+ |> put_flash(:info, "Template created successfully.")
+ |> redirect(to: Routes.cms_template_path(conn, :show, cms_template))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "new.html", changeset: changeset)
+ end
+ end
+
+ def show(conn, %{"id" => id}) do
+ cms_template = CmsTemplates.get_cms_template!(id)
+ render(conn, "show.html", cms_template: cms_template)
+ end
+
+ def edit(conn, %{"id" => id}) do
+ cms_template = CmsTemplates.get_cms_template!(id)
+ changeset = CmsTemplates.change_cms_template(cms_template)
+ render(conn, "edit.html", cms_template: cms_template, changeset: changeset)
+ end
+
+ def update(conn, %{"id" => id, "cms_template" => cms_template_params}) do
+ cms_template = CmsTemplates.get_cms_template!(id)
+
+ case CmsTemplates.update_cms_template(cms_template, cms_template_params) do
+ {:ok, cms_template} ->
+ changeset = CmsTemplates.change_cms_template(cms_template)
+
+ conn
+ |> put_flash(:info, "Template updated successfully.")
+ |> render("edit.html", cms_template: cms_template, changeset: changeset)
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ changeset = %{changeset | action: :update}
+ render(conn, "edit.html", cms_template: cms_template, changeset: changeset)
+ end
+ end
+
+ def delete(conn, %{"id" => id}) do
+ cms_template = CmsTemplates.get_cms_template!(id)
+ {:ok, _cms_template} = CmsTemplates.delete_cms_template(cms_template)
+
+ conn
+ |> put_flash(:info, "Template deleted successfully.")
+ |> redirect(to: Routes.cms_template_path(conn, :index))
+ end
+end
diff --git a/lib/imagine_web/controllers/cms_template_version_controller.ex b/lib/imagine_web/controllers/cms_template_version_controller.ex
new file mode 100644
index 0000000..dfc2ebc
--- /dev/null
+++ b/lib/imagine_web/controllers/cms_template_version_controller.ex
@@ -0,0 +1,28 @@
+defmodule ImagineWeb.CmsTemplateVersionController do
+ use ImagineWeb, :controller
+
+ alias Imagine.CmsTemplates
+ # alias Imagine.CmsTemplates.CmsTemplateVersion
+
+ def index(conn, params) do
+ cms_template =
+ params["cms_template_id"]
+ |> CmsTemplates.get_cms_template!()
+ |> Imagine.Repo.preload([:versions])
+
+ render(conn, "index.html",
+ cms_template: cms_template,
+ cms_template_versions: cms_template.versions
+ )
+ end
+
+ def show(conn, %{"id" => id} = params) do
+ cms_template = CmsTemplates.get_cms_template!(params["cms_template_id"])
+ cms_template_version = CmsTemplates.get_cms_template_version!(id)
+
+ render(conn, "show.html",
+ cms_template: cms_template,
+ cms_template_version: cms_template_version
+ )
+ end
+end
diff --git a/lib/imagine_web/controllers/user_controller.ex b/lib/imagine_web/controllers/user_controller.ex
new file mode 100644
index 0000000..d74dc99
--- /dev/null
+++ b/lib/imagine_web/controllers/user_controller.ex
@@ -0,0 +1,106 @@
+defmodule ImagineWeb.UserController do
+ use ImagineWeb, :controller
+
+ alias Imagine.Accounts
+ alias Imagine.Accounts.User
+
+ def index(conn, _params) do
+ users = Accounts.list_users()
+ render(conn, "index.html", page_title: "New User < Users", users: users)
+ end
+
+ def new(conn, _params) do
+ changeset = Accounts.change_user(%User{active: true})
+ render(conn, "new.html", page_title: "New User < Users", changeset: changeset)
+ end
+
+ def create(conn, %{"user" => user_params}) do
+ case Accounts.create_user(user_params) do
+ {:ok, user} ->
+ conn
+ |> put_flash(:info, "User created successfully.")
+ |> redirect(to: Routes.user_path(conn, :show, user))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "new.html", page_title: "New User < Users", changeset: changeset)
+ end
+ end
+
+ def show(conn, %{"id" => id}) do
+ user = Accounts.get_user!(id)
+ render(conn, "show.html", page_title: "#{user.username} < Users", user: user)
+ end
+
+ def disable(conn, %{"id" => id}) do
+ user = Accounts.get_user!(id)
+
+ case Accounts.update_user(user, %{active: false}) do
+ {:ok, user} ->
+ conn
+ |> put_flash(:info, "User disabled.")
+ |> redirect(to: Routes.user_path(conn, :show, user))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn,
+ page_title: "Edit #{user.username} < Users",
+ user: user,
+ changeset: changeset
+ )
+ end
+ end
+
+ def enable(conn, %{"id" => id}) do
+ user = Accounts.get_user!(id)
+
+ case Accounts.update_user(user, %{active: true}) do
+ {:ok, user} ->
+ conn
+ |> put_flash(:info, "User enabled.")
+ |> redirect(to: Routes.user_path(conn, :show, user))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn,
+ page_title: "Edit #{user.username} < Users",
+ user: user,
+ changeset: changeset
+ )
+ end
+ end
+
+ def edit(conn, %{"id" => id}) do
+ user = Accounts.get_user!(id)
+ changeset = Accounts.change_user(user)
+
+ render(conn, "edit.html",
+ page_title: "Edit #{user.username} < Users",
+ user: user,
+ changeset: changeset
+ )
+ end
+
+ def update(conn, %{"id" => id, "user" => user_params}) do
+ user = Accounts.get_user!(id)
+
+ case Accounts.update_user(user, user_params) do
+ {:ok, user} ->
+ conn
+ |> put_flash(:info, "User updated successfully.")
+ |> redirect(to: Routes.user_path(conn, :show, user))
+
+ {:error, %Ecto.Changeset{} = changeset} ->
+ render(conn, "edit.html",
+ page_title: "Edit #{user.username} < Users",
+ user: user,
+ changeset: changeset
+ )
+ end
+ end
+
+ def delete(conn, %{"id" => id}) do
+ {:ok, _user} = id |> Accounts.get_user!() |> Accounts.delete_user()
+
+ conn
+ |> put_flash(:info, "User deleted successfully.")
+ |> redirect(to: Routes.user_path(conn, :index))
+ end
+end
diff --git a/lib/imagine_web/gettext.ex b/lib/imagine_web/gettext.ex
new file mode 100644
index 0000000..f9730f0
--- /dev/null
+++ b/lib/imagine_web/gettext.ex
@@ -0,0 +1,24 @@
+defmodule ImagineWeb.Gettext do
+ @moduledoc """
+ A module providing Internationalization with a gettext-based API.
+
+ By using [Gettext](https://hexdocs.pm/gettext),
+ your module gains a set of macros for translations, for example:
+
+ import ImagineWeb.Gettext
+
+ # Simple translation
+ gettext("Here is the string to translate")
+
+ # Plural translation
+ ngettext("Here is the string to translate",
+ "Here are the strings to translate",
+ 3)
+
+ # Domain-based translation
+ dgettext("errors", "Here is the error message to translate")
+
+ See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage.
+ """
+ use Gettext, otp_app: :imagine_cms
+end
diff --git a/lib/imagine_web/live/cms_page/browser.ex b/lib/imagine_web/live/cms_page/browser.ex
new file mode 100644
index 0000000..694d82e
--- /dev/null
+++ b/lib/imagine_web/live/cms_page/browser.ex
@@ -0,0 +1,124 @@
+defmodule ImagineWeb.Live.CmsPage.Browser do
+ @moduledoc """
+ Live View implementation for cms page column browser
+ """
+
+ use Phoenix.LiveView
+
+ alias Imagine.Repo
+ alias Imagine.CmsPages
+ alias Imagine.CmsTemplates
+
+ alias ImagineWeb.Router.Helpers, as: Routes
+
+ def render(assigns) do
+ Phoenix.View.render(ImagineWeb.CmsPageView, "browser.html", assigns)
+ end
+
+ def mount(_, session, socket) do
+ cms_page = get_page(session["cms_page_id"])
+
+ socket =
+ socket
+ |> assign(
+ user: session["current_user"],
+ cms_page: cms_page,
+ properties_modal: "",
+ timestamp: Time.utc_now(),
+ csrf_token: session["csrf_token"]
+ )
+
+ {:ok, socket}
+ end
+
+ def handle_event("new-page", %{"cms-page-id" => cms_page_id}, socket) do
+ user = socket.assigns[:user]
+ parent = get_page(cms_page_id)
+
+ attrs = %{
+ name: "new-page",
+ title: "My New Page",
+ cms_template_id: parent.cms_template_id,
+ parent_id: parent.id,
+ position: 1
+ }
+
+ {:ok, new_page} = CmsPages.create_cms_page(attrs, user)
+
+ {:noreply, assign(socket, cms_page: Repo.preload(new_page, [:versions, :sub_pages]))}
+ end
+
+ def handle_event("select-page", %{"cms-page-id" => "_trash"}, socket) do
+ {:noreply, assign(socket, cms_page: CmsPages.get_trash_page(), properties_modal: "")}
+ end
+
+ def handle_event("select-page", %{"cms-page-id" => cms_page_id}, socket) do
+ {:noreply, assign(socket, cms_page: get_page(cms_page_id), properties_modal: "")}
+ end
+
+ def handle_event("properties", _values, socket) do
+ cms_page = socket.assigns[:cms_page]
+
+ changeset = CmsPages.change_cms_page(cms_page)
+ action = Routes.cms_page_path(socket, :update, cms_page)
+ cms_templates = CmsTemplates.list_cms_templates()
+
+ cms_pages = CmsPages.list_cms_pages()
+
+ socket =
+ assign(socket,
+ changeset: changeset,
+ action: action,
+ cms_templates: cms_templates,
+ cms_pages: cms_pages,
+ timestamp: Time.utc_now(),
+ return_to: Routes.cms_page_path(socket, :index)
+ )
+
+ output = Phoenix.View.render(ImagineWeb.CmsPageView, "_properties_modal.html", socket.assigns)
+
+ {:noreply, assign(socket, :properties_modal, output)}
+ end
+
+ def handle_event("delete-page", %{"cms-page-id" => cms_page_id}, socket) do
+ {:ok, cms_page} =
+ cms_page_id
+ |> CmsPages.get_cms_page!()
+ |> CmsPages.delete_cms_page()
+
+ {:noreply, assign(socket, cms_page: get_page(cms_page.parent_id))}
+ end
+
+ def handle_event("undelete-page", %{"cms-page-id" => cms_page_id}, socket) do
+ {:ok, _cms_page} =
+ cms_page_id
+ |> CmsPages.get_cms_page!(include_deleted: true)
+ |> CmsPages.undelete_cms_page()
+
+ {:noreply, assign(socket, cms_page: get_page(cms_page_id))}
+ end
+
+ def handle_event("destroy-page", %{"cms-page-id" => cms_page_id}, socket) do
+ {:ok, _cms_page} =
+ cms_page_id
+ |> CmsPages.get_cms_page!(include_deleted: true)
+ |> CmsPages.destroy_cms_page()
+
+ {:noreply, assign(socket, cms_page: get_page("_trash"))}
+ end
+
+ defp get_page("_trash") do
+ CmsPages.get_trash_page()
+ end
+
+ defp get_page(nil) do
+ CmsPages.get_home_page!()
+ |> Repo.preload([:sub_pages, :versions])
+ end
+
+ defp get_page(cms_page_id) do
+ (CmsPages.get_cms_page(cms_page_id, include_deleted: true) ||
+ CmsPages.get_home_page!())
+ |> Repo.preload([:sub_pages, :versions])
+ end
+end
diff --git a/lib/imagine_web/plugs/auth.ex b/lib/imagine_web/plugs/auth.ex
new file mode 100644
index 0000000..f3b54d1
--- /dev/null
+++ b/lib/imagine_web/plugs/auth.ex
@@ -0,0 +1,26 @@
+defmodule ImagineWeb.Plugs.Auth do
+ @moduledoc """
+ Auth plug - looks up user based on session[:user_id] and sets conn.assigns[:current_user]
+ """
+
+ import Plug.Conn
+
+ @spec init(any) :: any
+ def init(opts), do: opts
+
+ @spec call(Plug.Conn.t(), any) :: Plug.Conn.t()
+ def call(conn, _opts) do
+ user_id = get_session(conn, :user_id)
+ user = user_id && Imagine.Accounts.get_user(user_id)
+
+ if user do
+ assign(conn, :current_user, user)
+ else
+ if System.get_env("MIX_ENV") == "test" do
+ assign(conn, :current_user, %Imagine.Accounts.User{id: 1, username: "test_user"})
+ else
+ conn
+ end
+ end
+ end
+end
diff --git a/lib/imagine_web/plugs/ensure_user.ex b/lib/imagine_web/plugs/ensure_user.ex
new file mode 100644
index 0000000..2cb9d2d
--- /dev/null
+++ b/lib/imagine_web/plugs/ensure_user.ex
@@ -0,0 +1,23 @@
+defmodule ImagineWeb.Plugs.EnsureUser do
+ @moduledoc """
+ EnsureUser plug - redirects to login if conn.assigns[:current_user] is not present
+ """
+
+ import Plug.Conn
+ import Phoenix.Controller
+ alias ImagineWeb.Router.Helpers, as: Routes
+
+ @spec init(any) :: any
+ def init(opts), do: opts
+
+ def call(%{assigns: %{current_user: _user}} = conn, _opts) do
+ conn
+ end
+
+ def call(conn, _opts) do
+ conn
+ |> put_flash(:notice, "This is an admin-only function. To continue, please log in.")
+ |> redirect(to: Routes.auth_path(conn, :login))
+ |> halt()
+ end
+end
diff --git a/lib/imagine_web/plugs/set_manage_root_layout.ex b/lib/imagine_web/plugs/set_manage_root_layout.ex
new file mode 100644
index 0000000..5ed400b
--- /dev/null
+++ b/lib/imagine_web/plugs/set_manage_root_layout.ex
@@ -0,0 +1,13 @@
+defmodule ImagineWeb.Plugs.SetManageRootLayout do
+ @moduledoc """
+ SetManageLayout plug - sets root layout to manage.html
+ """
+
+ def init(opts) do
+ opts
+ end
+
+ def call(conn, _opts) do
+ Phoenix.Controller.put_root_layout(conn, {ImagineWeb.LayoutView, :manage})
+ end
+end
diff --git a/lib/imagine_web/router.ex b/lib/imagine_web/router.ex
new file mode 100644
index 0000000..4c7cd3b
--- /dev/null
+++ b/lib/imagine_web/router.ex
@@ -0,0 +1,74 @@
+defmodule ImagineWeb.Router do
+ use Plug.ErrorHandler
+
+ use ImagineWeb, :router
+
+ pipeline :browser do
+ plug :accepts, ["html"]
+ plug :fetch_session
+ plug :fetch_flash
+ plug :fetch_live_flash
+ plug :put_root_layout, {ImagineWeb.LayoutView, :root}
+ plug :protect_from_forgery
+ plug :put_secure_browser_headers
+ plug ImagineWeb.Plugs.Auth
+ end
+
+ pipeline :manage do
+ plug ImagineWeb.Plugs.SetManageRootLayout
+ plug ImagineWeb.Plugs.EnsureUser
+ end
+
+ pipeline :cms do
+ plug :put_layout, {ImagineWeb.LayoutView, :app}
+ end
+
+ scope "/manage", ImagineWeb do
+ pipe_through [:browser, :manage]
+
+ get "/", CmsController, :index
+
+ get "/cms_pages/:id/edit_content", CmsPageController, :edit_content
+ post "/cms_pages/:id/update_content", CmsPageController, :update_content
+
+ post "/cms_pages/:id/set_published_version/:version",
+ CmsPageController,
+ :set_published_version
+
+ post "/cms_pages/:id/undelete", CmsPageController, :undelete
+ delete "/cms_pages/:id/destroy", CmsPageController, :destroy
+
+ resources "/cms_pages", CmsPageController do
+ resources "/versions", CmsPageVersionController, as: :version
+ end
+
+ resources "/cms_snippets", CmsSnippetController do
+ resources "/versions", CmsSnippetVersionController, as: :version
+ end
+
+ resources "/cms_templates", CmsTemplateController do
+ resources "/versions", CmsTemplateVersionController, as: :version
+ end
+
+ get "/account/edit", AccountController, :edit
+ post "/account/update", AccountController, :update
+
+ post "/users/:id/disable", UserController, :disable
+ post "/users/:id/enable", UserController, :enable
+ resources "/users", UserController
+ end
+
+ scope "/", ImagineWeb do
+ pipe_through [:browser, :manage]
+
+ get "/manage/login", AuthController, :login
+ post "/manage/login", AuthController, :handle_login
+ delete "/manage/logout", AuthController, :handle_logout
+ end
+
+ scope "/", ImagineWeb do
+ pipe_through [:browser, :cms]
+
+ get "/*path", CmsRendererController, :show
+ end
+end
diff --git a/lib/imagine_web/templates/account/edit.html.eex b/lib/imagine_web/templates/account/edit.html.eex
new file mode 100644
index 0000000..4814fb5
--- /dev/null
+++ b/lib/imagine_web/templates/account/edit.html.eex
@@ -0,0 +1,33 @@
+Account
+
+<%= form_for @changeset, Routes.account_path(@conn, :update), [method: :post, class: "ui form" <> (if @changeset.action, do: " warning error", else: "")], fn f -> %>
+ <%= if @changeset.action do %>
+
+
Something went wrong, please check the errors below.
+
+ <% end %>
+
+
+ <%= label f, :current_password, "Current Password" %>
+ <%= password_input f, :current_password %>
+ <%= error_tag f, :current_password %>
+
+
+
+ <%= label f, :password, "New Password" %>
+ <%= password_input f, :password %>
+ <%= error_tag f, :password %>
+
+
+
+ <%= label f, :password_confirmation, "New Password (confirm)" %>
+ <%= password_input f, :password_confirmation %>
+ <%= error_tag f, :password_confirmation %>
+
+
+
+ <%= submit "Update", class: "ui primary button" %>
+ <%= link "Cancel", to: Routes.cms_page_path(@conn, :index), class: "ui button" %>
+
+
+<% end %>
\ No newline at end of file
diff --git a/lib/imagine_web/templates/auth/login.html.eex b/lib/imagine_web/templates/auth/login.html.eex
new file mode 100644
index 0000000..07335c5
--- /dev/null
+++ b/lib/imagine_web/templates/auth/login.html.eex
@@ -0,0 +1,22 @@
+
diff --git a/lib/imagine_web/templates/cms/index.html.eex b/lib/imagine_web/templates/cms/index.html.eex
new file mode 100644
index 0000000..3af4e71
--- /dev/null
+++ b/lib/imagine_web/templates/cms/index.html.eex
@@ -0,0 +1,16 @@
+Imagine CMS Start Page
+
+
+ <%= link "Pages", to: Routes.cms_page_path(@conn, :index) %>
+ <%= link "Templates", to: Routes.cms_template_path(@conn, :index) %>
+ <%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index) %>
+ <%= link "Users", to: Routes.user_path(@conn, :index) %>
+
+
+
+ <%= link "View Site", to: "/" %>
+
+
+
+ <%= link "Account", to: Routes.account_path(@conn, :edit) %>
+
diff --git a/lib/imagine_web/templates/cms_page/_properties_modal.html.eex b/lib/imagine_web/templates/cms_page/_properties_modal.html.eex
new file mode 100644
index 0000000..ddc73b7
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/_properties_modal.html.eex
@@ -0,0 +1,145 @@
+<%
+ is_persisted = Ecto.get_meta(@changeset.data, :state) == :loaded
+%>
+
+<%= form_for @changeset, @action, [multipart: true, csrf_token: @csrf_token, id: "Imagine-Properties-Form", class: "ui form" <> (if @changeset.action, do: " warning error", else: "")], fn f -> %>
+ ">
+
+ <%= if @changeset.action do %>
+
+
Something went wrong, please check the errors below.
+
+ <% end %>
+
+
+ <%= label f, :title %>
+ <%= text_input f, :title %>
+ <%= error_tag f, :title %>
+
+
+
+
+ <%= label f, :name %>
+ <%= text_input f, :name, disabled: CmsPage.is_home_page?(@cms_page) %>
+ <%= error_tag f, :name %>
+
+
+
+ <%= label f, :cms_template_id, "Template" %>
+ <%= select f, :cms_template_id, cms_template_select_options(@cms_templates), class: "ui dropdown" %>
+ <%= error_tag f, :cms_template_id %>
+
+
+ <%= if is_persisted do %>
+
+ <%= label f, :published_version %>
+ <%= select f, :published_version, cms_page_version_select_options(@cms_page.versions), class: "ui dropdown" %>
+ <%= error_tag f, :published_version %>
+
+ <% end %>
+
+
+ <%= unless CmsPage.is_home_page?(@cms_page) do %>
+
+ <%= label f, :parent_id %>
+ <%= select f, :parent_id, cms_page_select_options(@cms_pages -- [@cms_page], @changeset.data), prompt: "– Select –", class: "ui search dropdown" %>
+ <%= error_tag f, :parent_id %>
+
+ <% end %>
+
+
+
+
+ <%= checkbox f, :redirect_enabled %>
+ <%= label f, :redirect_enabled %>
+ <%= error_tag f, :redirect_enabled %>
+
+ <%= text_input f, :redirect_to, placeholder: "URL" %>
+ <%= error_tag f, :redirect_to %>
+
+
+
+
+
+ <%= label f, :published_date %>
+ <%= date_input f, :published_date, value: if(@cms_page.published_date, do: Timex.to_date(@cms_page.published_date)) %>
+ <%= error_tag f, :published_date %>
+
+
+
+ <%= label f, :article_date %>
+ <%= date_input f, :article_date, value: if(@cms_page.article_date, do: Timex.to_date(@cms_page.article_date)) %>
+ <%= error_tag f, :article_date %>
+
+
+
+ <%= label f, :article_end_date %>
+ <%= date_input f, :article_end_date, value: if(@cms_page.article_end_date, do: Timex.to_date(@cms_page.article_end_date)) %>
+ <%= error_tag f, :article_end_date %>
+
+
+
+ <%= label f, :expiration_date %>
+ <%= date_input f, :expiration_date, value: if(@cms_page.expiration_date, do: Timex.to_date(@cms_page.expiration_date)) %>
+ <%= error_tag f, :expiration_date %>
+
+
+
+
+
+ <%= checkbox f, :expires %>
+ <%= label f, :expires %>
+ <%= error_tag f, :expires %>
+
+
+
+
+
+ <%= label f, :thumbnail_path, "Thumbnail" %>
+
+ <%= if @changeset.data.thumbnail_path do %>
+
+ <% else %>
+ [none]
+ <% end %>
+
+ <%= file_input f, :thumbnail_file %>
+ <%= text_input f, :thumbnail_path %>
+ <%= error_tag f, :thumbnail_path %>
+
+
+
+ <%= label f, :feature_image_path, "Feature Image" %>
+
+ <%= if @changeset.data.feature_image_path do %>
+
+ <% else %>
+ [none]
+ <% end %>
+
+ <%= file_input f, :feature_image_file %>
+ <%= text_input f, :feature_image_path %>
+ <%= error_tag f, :feature_image_path %>
+
+
+
+
+
+ <%= label f, :position %>
+ <%= number_input f, :position %>
+ <%= error_tag f, :position %>
+
+
+
+
+ <%= label f, :summary %>
+ <%= textarea f, :summary %>
+ <%= error_tag f, :summary %>
+
+
+
+ <%= label f, :html_head, "HTML Head (Advanced)" %>
+ <%= textarea f, :html_head %>
+ <%= error_tag f, :html_head %>
+
+<% end %>
diff --git a/lib/imagine_web/templates/cms_page/browser.html.leex b/lib/imagine_web/templates/cms_page/browser.html.leex
new file mode 100644
index 0000000..cdd98e6
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/browser.html.leex
@@ -0,0 +1,143 @@
+<% columns = cms_page_browser(@cms_page) %>
+
+
+ <%= if @cms_page.discarded_at do %>
+ <%= if @cms_page.id == "_trash" do %>
+ <%#= link raw(~s( Properties)), to: "#", class: "ui icon labeled disabled button" %>
+ <%#= link raw(~s( Restore)), to: "#", class: "ui icon labeled disabled button" %>
+ <%#= link raw(~s( Delete Forever)), to: "#", class: "ui icon labeled negative basic disabled button" %>
+ <% else %>
+ <%= link raw(~s( Properties)), to: Routes.cms_page_path(@socket, :show, @cms_page), "phx-click": "properties", "phx-value-cms-page-id": @cms_page.id, id: "Imagine-Page-Properties-Button", class: "ui icon labeled button" %>
+ <%#= link raw(~s( Preview)), to: "/#{@cms_page.path}/version/#{@cms_page.version}", class: "ui icon labeled button" %>
+ <%= link raw(~s( Restore)), to: "#", "phx-click": "undelete-page", "phx-value-cms-page-id": @cms_page.id, class: "ui icon labeled button" %>
+ <%= link raw(~s( Delete Forever)), to: "#", "phx-click": "destroy-page", "phx-value-cms-page-id": @cms_page.id, data: [confirm: "Are you sure you want to delete this PERMANENTLY? There is no undo."], class: "ui icon labeled negative basic button" %>
+ <% end %>
+ <% else %>
+ <%#= link raw(~s( New Page)), to: Routes.cms_page_path(@socket, :new, parent_id: @cms_page.id), "phx-click": "new-page", "phx-value-cms-page-id": @cms_page.id, class: "ui labeled icon button" %>
+ <%= link raw(~s( New Page)), to: "#", "phx-click": "new-page", "phx-value-cms-page-id": @cms_page.id, class: "ui labeled icon button" %>
+ <%= link raw(~s( Edit)), to: Routes.cms_page_path(@socket, :edit_content, @cms_page), class: "ui icon labeled button" %>
+ <%= link raw(~s( Properties)), to: "#", "phx-click": "properties", "phx-value-cms-page-id": @cms_page.id, id: "Imagine-Page-Properties-Button", class: "ui icon labeled button" %>
+ <%= link raw(~s( Preview)), to: "/#{@cms_page.path}", class: "ui icon labeled button" %>
+ <%#= link raw(~s( Versions)), to: Routes.cms_page_version_path(@socket, :index, @cms_page), class: "ui icon labeled button" %>
+ <%= if @cms_page.path == "" || length(@cms_page.sub_pages) > 0 do %>
+ <%= link raw(~s( Trash)), to: "#", title: "This page cannot be moved to Trash.", class: "ui icon labeled disabled basic button" %>
+ <% else %>
+ <%= link raw(~s( Trash)), to: "#", "phx-click": "delete-page", "phx-value-cms-page-id": @cms_page.id, data: [confirm: "Are you sure you want to move this page to Trash?"], class: "ui icon labeled negative basic button" %>
+ <% end %>
+ <% end %>
+
+
+
+
+ <%= for column <- columns do %>
+
+
+ <% end %>
+
+
+
+<%= if @cms_page.id != "_trash" do %>
+
+
+
+
+ <%= @properties_modal %>
+
+
+
+
+
+<% end %>
diff --git a/lib/imagine_web/templates/cms_page/edit.html.eex b/lib/imagine_web/templates/cms_page/edit.html.eex
new file mode 100644
index 0000000..42a8e20
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/edit.html.eex
@@ -0,0 +1,3 @@
+<%= link "Pages", to: Routes.cms_page_path(@conn, :index) %> / <%= link @cms_page.path, to: Routes.cms_page_path(@conn, :show, @cms_page) %>
+
+<%= render "form.html", Map.put(assigns, :action, Routes.cms_page_path(@conn, :update, @cms_page)) %>
diff --git a/lib/imagine_web/templates/cms_page/edit_content.html.eex b/lib/imagine_web/templates/cms_page/edit_content.html.eex
new file mode 100644
index 0000000..1208a0a
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/edit_content.html.eex
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/lib/imagine_web/templates/cms_page/form.html.eex b/lib/imagine_web/templates/cms_page/form.html.eex
new file mode 100644
index 0000000..8cc316e
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/form.html.eex
@@ -0,0 +1,139 @@
+<%
+ is_persisted = Ecto.get_meta(@changeset.data, :state) == :loaded
+%>
+
+<%= form_for @changeset, @action, [class: "ui form" <> (if @changeset.action, do: " warning error", else: "")], fn f -> %>
+ <%= if @changeset.action do %>
+
+
Something went wrong, please check the errors below.
+
+ <% end %>
+
+
+ <%= label f, :name %>
+ <%= text_input f, :name, disabled: CmsPage.is_home_page?(@cms_page) %>
+ <%= error_tag f, :name %>
+
+
+
+ <%= label f, :title %>
+ <%= text_input f, :title %>
+ <%= error_tag f, :title %>
+
+
+
+ <%= label f, :cms_template_id %>
+ <%= select f, :cms_template_id, cms_template_select_options(@cms_templates), class: "ui dropdown" %>
+ <%= error_tag f, :cms_template_id %>
+
+
+ <%= unless CmsPage.is_home_page?(@cms_page) do %>
+
+ <%= label f, :parent_id %>
+ <%= select f, :parent_id, cms_page_select_options(@cms_pages, @changeset.data), class: "ui search dropdown" %>
+ <%= error_tag f, :parent_id %>
+
+ <% end %>
+
+ <%= if is_persisted do %>
+
+ <%= label f, :published_version %>
+ <%= select f, :published_version, cms_page_version_select_options(@cms_page.versions) %>
+ <%= error_tag f, :published_version %>
+
+ <% end %>
+
+
+
+ <%= label f, :published_date %>
+ <%= date_input f, :published_date, value: if(@cms_page.published_date, do: Timex.to_date(@cms_page.published_date)) %>
+ <%= error_tag f, :published_date %>
+
+
+
+ <%= label f, :article_date %>
+ <%= date_input f, :article_date, value: if(@cms_page.article_date, do: Timex.to_date(@cms_page.article_date)) %>
+ <%= error_tag f, :article_date %>
+
+
+
+ <%= label f, :article_end_date %>
+ <%= date_input f, :article_end_date, value: if(@cms_page.article_end_date, do: Timex.to_date(@cms_page.article_end_date)) %>
+ <%= error_tag f, :article_end_date %>
+
+
+
+ <%= label f, :expiration_date %>
+ <%= date_input f, :expiration_date, value: if(@cms_page.expiration_date, do: Timex.to_date(@cms_page.expiration_date)) %>
+ <%= error_tag f, :expiration_date %>
+
+
+
+
+
+ <%= checkbox f, :expires %>
+ <%= label f, :expires %>
+ <%= error_tag f, :expires %>
+
+
+
+
+ <%= label f, :summary %>
+ <%= textarea f, :summary %>
+ <%= error_tag f, :summary %>
+
+
+
+ <%= label f, :html_head %>
+ <%= textarea f, :html_head %>
+ <%= error_tag f, :html_head %>
+
+
+
+ <%= label f, :thumbnail_path %>
+ <%= text_input f, :thumbnail_path %>
+ <%= error_tag f, :thumbnail_path %>
+
+
+
+ <%= label f, :feature_image_path %>
+ <%= text_input f, :feature_image_path %>
+ <%= error_tag f, :feature_image_path %>
+
+
+
+
+
+ <%= checkbox f, :redirect_enabled %>
+ <%= label f, :redirect_enabled %>
+ <%= error_tag f, :redirect_enabled %>
+
+ <%= text_input f, :redirect_to, placeholder: "URL" %>
+ <%= error_tag f, :redirect_to %>
+
+
+
+
+ <%= label f, :position %>
+ <%= number_input f, :position %>
+ <%= error_tag f, :position %>
+
+
+
+ <%= submit "Save", class: "ui primary button" %>
+ <%= link "Cancel", to: Routes.cms_page_path(@conn, :index), class: "ui button" %>
+
+<% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_page/index.html.eex b/lib/imagine_web/templates/cms_page/index.html.eex
new file mode 100644
index 0000000..99ff097
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/index.html.eex
@@ -0,0 +1,43 @@
+Pages
+
+<%= live_render(@conn, ImagineWeb.Live.CmsPage.Browser, session: %{
+ "current_user" => @current_user,
+ "cms_page_id" => Plug.Conn.get_session(@conn, :cms_page_id),
+ "csrf_token" => Phoenix.Controller.get_csrf_token()
+ }) %>
+
+
+Recently Modified
+
+
+
+
+ Title / Path
+ Article date
+ Template
+ Version
+
+
+
+
+ <%= for cms_page <- @cms_pages do %>
+
+
+ <%= link Crutches.String.truncate(cms_page.title, 50), to: Routes.cms_page_path(@conn, :show, cms_page) %>
+
+ <%= cms_page.path %>
+ <%= if cms_page.redirect_enabled, do: "(Redirect)" %>
+
+
+ <%= if cms_page.article_date, do: Timex.format!(cms_page.article_date, "{YYYY}-{0M}-{0D}") %>
+ <%= link cms_page.cms_template.name, to: Routes.cms_template_path(@conn, :show, cms_page.cms_template_id) %>
+ <%= cms_page.version %>
+
+ <%= link "Edit", to: Routes.cms_page_path(@conn, :edit_content, cms_page) %>
+ <%#= link "Properties", to: Routes.cms_page_path(@conn, :edit, cms_page) %>
+ <%= link "Preview", to: "/#{cms_page.path}" %>
+
+
+ <% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_page/new.html.eex b/lib/imagine_web/templates/cms_page/new.html.eex
new file mode 100644
index 0000000..c3d5408
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/new.html.eex
@@ -0,0 +1,3 @@
+<%= link "Pages", to: Routes.cms_page_path(@conn, :index) %> / New Page
+
+<%= render "form.html", Map.put(assigns, :action, Routes.cms_page_path(@conn, :create)) %>
diff --git a/lib/imagine_web/templates/cms_page/properties_modal.html.leex b/lib/imagine_web/templates/cms_page/properties_modal.html.leex
new file mode 100644
index 0000000..b5d98c9
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/properties_modal.html.leex
@@ -0,0 +1 @@
+<%= render ImagineWeb.CmsPageView, "_properties_modal.html", assigns %>
diff --git a/lib/imagine_web/templates/cms_page/show.html.eex b/lib/imagine_web/templates/cms_page/show.html.eex
new file mode 100644
index 0000000..f79d5ca
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page/show.html.eex
@@ -0,0 +1,137 @@
+<%= link "Pages", to: Routes.cms_page_path(@conn, :index) %> / <%= @cms_page.path %>
+
+
+ <%= if @cms_page.discarded_at do %>
+ <%#= link raw(~s( Properties)), to: Routes.cms_page_path(@conn, :edit, @cms_page), class: "ui icon labeled button" %>
+ <%#= link raw(~s( Preview)), to: "/#{@cms_page.path}/version/#{@cms_page.version}", class: "ui icon labeled button" %>
+ <% else %>
+ <%= link raw(~s( Edit)), to: Routes.cms_page_path(@conn, :edit_content, @cms_page), class: "ui icon labeled button" %>
+ <%= link raw(~s( Properties)), to: Routes.cms_page_path(@conn, :edit, @cms_page), class: "ui icon labeled button" %>
+ <%= link raw(~s( Preview)), to: "/#{@cms_page.path}", class: "ui icon labeled button" %>
+ <%= link raw(~s( Versions)), to: Routes.cms_page_version_path(@conn, :index, @cms_page), class: "ui icon labeled button" %>
+ <%= if @cms_page.path == "" || length(@cms_page.sub_pages) > 0 do %>
+ <%= link raw(~s( Trash)), to: "#", title: "This page cannot be moved to Trash.", class: "ui icon labeled disabled basic button" %>
+ <% else %>
+ <%= link raw(~s( Trash)), to: Routes.cms_page_path(@conn, :delete, @cms_page), method: :delete, data: [confirm: "Are you sure you want to move this page to Trash?"], class: "ui icon labeled negative basic button" %>
+ <% end %>
+ <% end %>
+
+
+
+
+
+ Version:
+ <%= @cms_page.version %>
+
+
+
+ Template:
+ <%= @cms_page.cms_template_id %>
+
+
+
+ Template version:
+ <%= @cms_page.cms_template_version %>
+
+
+
+ Parent:
+ <%= @cms_page.parent_id %>
+
+
+
+ Path:
+ <%= @cms_page.path %>
+
+
+
+ Name:
+ <%= @cms_page.name %>
+
+
+
+ Title:
+ <%= @cms_page.title %>
+
+
+
+ Published version:
+ <%= @cms_page.published_version %>
+
+
+
+ Published date:
+ <%= @cms_page.published_date %>
+
+
+
+ Article date:
+ <%= @cms_page.article_date %>
+
+
+
+ Article end date:
+ <%= @cms_page.article_end_date %>
+
+
+
+ Expiration date:
+ <%= @cms_page.expiration_date %>
+
+
+
+ Expires:
+ <%= @cms_page.expires %>
+
+
+
+ Summary:
+ <%= @cms_page.summary %>
+
+
+
+ Html head:
+ <%= @cms_page.html_head %>
+
+
+
+ Thumbnail path:
+ <%= @cms_page.thumbnail_path %>
+
+
+
+ Feature image path:
+ <%= @cms_page.feature_image_path %>
+
+
+
+ Redirect enabled:
+ <%= @cms_page.redirect_enabled %>
+
+
+
+ Redirect to:
+ <%= @cms_page.redirect_to %>
+
+
+
+ Position:
+ <%= @cms_page.position %>
+
+
+
+ Search index:
+ <%= @cms_page.search_index %>
+
+
+
+ Updated by:
+ <%= @cms_page.updated_by %>
+
+
+
+ Updated by username:
+ <%= @cms_page.updated_by_username %>
+
+
+
diff --git a/lib/imagine_web/templates/cms_page_version/index.html.eex b/lib/imagine_web/templates/cms_page_version/index.html.eex
new file mode 100644
index 0000000..1c9de3c
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page_version/index.html.eex
@@ -0,0 +1,28 @@
+<%= link "Pages", to: Routes.cms_page_path(@conn, :index) %> / <%= link @cms_page.path, to: Routes.cms_page_path(@conn, :show, @cms_page) %> / Versions
+
+
+
+
+ Version
+ Title
+ Template
+ Published date
+ Article date
+ Redirect to
+ Author
+
+
+
+ <%= for cms_page_version <- Enum.reverse(@cms_page_versions) do %>
+
+ <%= link "Version #{cms_page_version.version}", to: Routes.cms_page_version_path(@conn, :show, @cms_page, cms_page_version) %>
+ <%= cms_page_version.title %>
+ <%= link cms_page_version.cms_template.name, to: Routes.cms_template_version_path(@conn, :show, cms_page_version.cms_template_id, cms_page_version.cms_template_version) %>
+ <%= cms_page_version.published_date %>
+ <%= cms_page_version.article_date %>
+ <%= cms_page_version.redirect_to %>
+ <%= link cms_page_version.updated_by_username, to: Routes.user_path(@conn, :show, cms_page_version.updated_by) %>
+
+ <% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_page_version/show.html.eex b/lib/imagine_web/templates/cms_page_version/show.html.eex
new file mode 100644
index 0000000..d106f2a
--- /dev/null
+++ b/lib/imagine_web/templates/cms_page_version/show.html.eex
@@ -0,0 +1,130 @@
+<%= link "Pages", to: Routes.cms_page_path(@conn, :index) %> / <%= link @cms_page.path, to: Routes.cms_page_path(@conn, :show, @cms_page) %> / <%= link "Versions", to: Routes.cms_page_version_path(@conn, :index, @cms_page) %> / <%= "Version #{@cms_page_version.version}" %>
+
+
+ <%= link raw(~s( Edit)), to: Routes.cms_page_version_path(@conn, :edit, @cms_page_version), class: "ui icon labeled button" %>
+ <%= link raw(~s( Delete)), to: Routes.cms_page_version_path(@conn, :delete, @cms_page_version), method: :delete, data: [confirm: "Are you sure you want to delete this user? There is no undo."], class: "ui icon labeled negative basic button" %>
+
+
+
+
+
+ Cms page:
+ <%= @cms_page_version.cms_page_id %>
+
+
+
+ Version:
+ <%= @cms_page_version.version %>
+
+
+
+ Cms template:
+ <%= @cms_page_version.cms_template_id %>
+
+
+
+ Cms template version:
+ <%= @cms_page_version.cms_template_version %>
+
+
+
+ Parent:
+ <%= @cms_page_version.parent_id %>
+
+
+
+ Path:
+ <%= @cms_page_version.path %>
+
+
+
+ Name:
+ <%= @cms_page_version.name %>
+
+
+
+ Title:
+ <%= @cms_page_version.title %>
+
+
+
+ Published version:
+ <%= @cms_page_version.published_version %>
+
+
+
+ Published date:
+ <%= @cms_page_version.published_date %>
+
+
+
+ Article date:
+ <%= @cms_page_version.article_date %>
+
+
+
+ Article end date:
+ <%= @cms_page_version.article_end_date %>
+
+
+
+ Expiration date:
+ <%= @cms_page_version.expiration_date %>
+
+
+
+ Expires:
+ <%= @cms_page_version.expires %>
+
+
+
+ Summary:
+ <%= @cms_page_version.summary %>
+
+
+
+ Html head:
+ <%= @cms_page_version.html_head %>
+
+
+
+ Thumbnail path:
+ <%= @cms_page_version.thumbnail_path %>
+
+
+
+ Feature image path:
+ <%= @cms_page_version.feature_image_path %>
+
+
+
+ Redirect enabled:
+ <%= @cms_page_version.redirect_enabled %>
+
+
+
+ Redirect to:
+ <%= @cms_page_version.redirect_to %>
+
+
+
+ Position:
+ <%= @cms_page_version.position %>
+
+
+
+ Search index:
+ <%= @cms_page_version.search_index %>
+
+
+
+ Updated by:
+ <%= @cms_page_version.updated_by %>
+
+
+
+ Updated by username:
+ <%= @cms_page_version.updated_by_username %>
+
+
+
diff --git a/lib/imagine_web/templates/cms_renderer/404.html.eex b/lib/imagine_web/templates/cms_renderer/404.html.eex
new file mode 100644
index 0000000..85bba0e
--- /dev/null
+++ b/lib/imagine_web/templates/cms_renderer/404.html.eex
@@ -0,0 +1,3 @@
+404 Not Found
+
+<%= render ImagineWeb.CmsRendererView, "_toolbar.html", assigns %>
diff --git a/lib/imagine_web/templates/cms_renderer/_toolbar.html.eex b/lib/imagine_web/templates/cms_renderer/_toolbar.html.eex
new file mode 100644
index 0000000..3fe5941
--- /dev/null
+++ b/lib/imagine_web/templates/cms_renderer/_toolbar.html.eex
@@ -0,0 +1,32 @@
+<%= if @conn.assigns[:current_user] do %>
+
+<% end %>
+
+<%= if @cms_page do %>
+
+
+
+
+ <%= render ImagineWeb.CmsPageView, "_properties_modal.html", assigns %>
+
+
+
+<% end %>
diff --git a/lib/imagine_web/templates/cms_renderer/show.html.eex b/lib/imagine_web/templates/cms_renderer/show.html.eex
new file mode 100644
index 0000000..8a4abe7
--- /dev/null
+++ b/lib/imagine_web/templates/cms_renderer/show.html.eex
@@ -0,0 +1,16 @@
+<%= @output %>
+
+<%= if @conn.assigns[:current_user] do %>
+ <%= render ImagineWeb.CmsRendererView, "_toolbar.html", assigns %>
+
+
+<% end %>
diff --git a/lib/imagine_web/templates/cms_snippet/edit.html.eex b/lib/imagine_web/templates/cms_snippet/edit.html.eex
new file mode 100644
index 0000000..53f4152
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet/edit.html.eex
@@ -0,0 +1,3 @@
+<%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index) %> / <%= @cms_snippet.name %>
+
+<%= render "form.html", Map.put(assigns, :action, Routes.cms_snippet_path(@conn, :update, @cms_snippet)) %>
diff --git a/lib/imagine_web/templates/cms_snippet/form.html.eex b/lib/imagine_web/templates/cms_snippet/form.html.eex
new file mode 100644
index 0000000..7936306
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet/form.html.eex
@@ -0,0 +1,55 @@
+<%= form_for @changeset, @action, [id: "imagine-template-form", class: "ui form" <> (if @changeset.action, do: " warning error", else: "")], fn f -> %>
+ <%= if @changeset.action do %>
+
+
Something went wrong, please check the errors below.
+
+ <% end %>
+
+
+ <%= label f, :name %>
+ <%= text_input f, :name %>
+ <%= error_tag f, :name %>
+
+
+
+ <%= label f, :description %>
+ <%= text_input f, :description %>
+ <%= error_tag f, :description %>
+
+
+
+ <%= label f, :content_eex, "Content" %>
+ <%= textarea f, :content_eex %>
+ <%= error_tag f, :content_eex %>
+
+
+
+ <%= submit "Save", class: "ui primary button" %>
+ <%= if assigns[:cms_snippet] do %>
+ <%= link "Cancel", to: Routes.cms_snippet_path(@conn, :show, @cms_snippet), class: "ui button" %>
+ <% else %>
+ <%= link "Cancel", to: Routes.cms_snippet_path(@conn, :index), class: "ui button" %>
+ <% end %>
+
+<% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_snippet/index.html.eex b/lib/imagine_web/templates/cms_snippet/index.html.eex
new file mode 100644
index 0000000..0c3621c
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet/index.html.eex
@@ -0,0 +1,26 @@
+Snippets
+
+
+ <%= link raw(~s( New Snippet)), to: Routes.cms_snippet_path(@conn, :new), class: "ui labeled icon button" %>
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+<%= for cms_snippet <- @cms_snippets do %>
+
+ <%= link cms_snippet.name, to: Routes.cms_snippet_path(@conn, :show, cms_snippet) %>
+ <%= cms_snippet.description %>
+
+ <%= link "Edit", to: Routes.cms_snippet_path(@conn, :edit, cms_snippet) %>
+
+
+<% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_snippet/new.html.eex b/lib/imagine_web/templates/cms_snippet/new.html.eex
new file mode 100644
index 0000000..f6a508f
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet/new.html.eex
@@ -0,0 +1,3 @@
+<%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index) %> / New Snippet
+
+<%= render "form.html", Map.put(assigns, :action, Routes.cms_snippet_path(@conn, :create)) %>
diff --git a/lib/imagine_web/templates/cms_snippet/show.html.eex b/lib/imagine_web/templates/cms_snippet/show.html.eex
new file mode 100644
index 0000000..38c83fd
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet/show.html.eex
@@ -0,0 +1,31 @@
+<%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index) %> / <%= @cms_snippet.name %>
+
+
+ <%= link raw(~s( Edit)), to: Routes.cms_snippet_path(@conn, :edit, @cms_snippet), class: "ui icon labeled button" %>
+ <%= link raw(~s( Versions)), to: Routes.cms_snippet_version_path(@conn, :index, @cms_snippet), class: "ui icon labeled button" %>
+ <%= link raw(~s( Delete)), to: Routes.cms_snippet_path(@conn, :delete, @cms_snippet), method: :delete, data: [confirm: "Are you sure you want to delete this user? There is no undo."], class: "ui icon labeled negative basic button" %>
+
+
+
+
+
+ Name:
+ <%= @cms_snippet.name %>
+
+
+
+ Description:
+ <%= @cms_snippet.description %>
+
+
+
+ Content:
+ <%= Crutches.String.truncate @cms_snippet.content_eex, 100 %>
+
+
+
+ Version:
+ <%= @cms_snippet.version %>
+
+
+
diff --git a/lib/imagine_web/templates/cms_snippet_version/index.html.eex b/lib/imagine_web/templates/cms_snippet_version/index.html.eex
new file mode 100644
index 0000000..6b42a5d
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet_version/index.html.eex
@@ -0,0 +1,18 @@
+<%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index) %> / <%= link @cms_snippet.name, to: Routes.cms_snippet_path(@conn, :show, @cms_snippet) %> / Versions
+
+
+
+
+ Version
+ Date
+
+
+
+ <%= for cms_snippet_version <- Enum.reverse(@cms_snippet_versions) do %>
+
+ <%= link "Version #{cms_snippet_version.version}", to: Routes.cms_snippet_version_path(@conn, :show, @cms_snippet, cms_snippet_version) %>
+ <%= cms_snippet_version.updated_on %>
+
+ <% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_snippet_version/show.html.eex b/lib/imagine_web/templates/cms_snippet_version/show.html.eex
new file mode 100644
index 0000000..2c33bcb
--- /dev/null
+++ b/lib/imagine_web/templates/cms_snippet_version/show.html.eex
@@ -0,0 +1,30 @@
+<%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index) %> / <%= link @cms_snippet.name, to: Routes.cms_snippet_path(@conn, :show, @cms_snippet) %> / <%= link "Versions", to: Routes.cms_snippet_version_path(@conn, :index, @cms_snippet) %> / <%= "Version #{@cms_snippet_version.version}" %>
+
+
+
+ Name:
+ <%= link @cms_snippet_version.name, to: Routes.cms_snippet_path(@conn, :show, @cms_snippet) %>
+
+
+
+ Description:
+ <%= @cms_snippet_version.description %>
+
+
+
+ Content:
+ <%= textarea :f, :content_eex, value: @cms_snippet_version.content_eex %>
+
+
+
+
diff --git a/lib/imagine_web/templates/cms_template/edit.html.eex b/lib/imagine_web/templates/cms_template/edit.html.eex
new file mode 100644
index 0000000..a03d14d
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template/edit.html.eex
@@ -0,0 +1,3 @@
+<%= link "Templates", to: Routes.cms_template_path(@conn, :index) %> / <%= @cms_template.name %>
+
+<%= render "form.html", Map.put(assigns, :action, Routes.cms_template_path(@conn, :update, @cms_template)) %>
diff --git a/lib/imagine_web/templates/cms_template/form.html.eex b/lib/imagine_web/templates/cms_template/form.html.eex
new file mode 100644
index 0000000..b22a548
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template/form.html.eex
@@ -0,0 +1,121 @@
+<%= form_for @changeset, @action, [id: "imagine-template-form", class: "ui form" <> (if @changeset.action, do: " warning error", else: "")], fn f -> %>
+ <%= if @changeset.action do %>
+
+
Something went wrong, please check the errors below.
+
+ <% end %>
+
+
+ <%= label f, :name %>
+ <%= text_input f, :name %>
+ <%= error_tag f, :name %>
+
+
+
+ <%= label f, :description %>
+ <%= text_input f, :description %>
+ <%= error_tag f, :description %>
+
+
+
+ <%= label f, :content_eex, "Content" %>
+ <%= error_tag f, :content_eex %>
+ <%= textarea f, :content_eex %>
+
+
+
+ <%= submit "Save", class: "ui primary button" %>
+ <%= if assigns[:cms_template] do %>
+ <%= link "Cancel", to: Routes.cms_template_path(@conn, :show, @cms_template), class: "ui button" %>
+ <% else %>
+ <%= link "Cancel", to: Routes.cms_template_path(@conn, :index), class: "ui button" %>
+ <% end %>
+
+<% end %>
+
+
+
Reference
+
+
+<%%= text_editor("Content") %>
+
+
+
+<%%= snippet("Top Nav") %>
+
+
+
+<%%= page_list("Sidebar News",
+ template: "html", header: "html", footer: "html",
+ folders: "f1,f2", pages: "p1,p2",
+ include_tags: "t1,t2", exclude_tags: "t3,t4", require_tags: "t5,t6",
+ primary_sort_key: :article_date, primary_sort_direction: :desc,
+ item_count: 5, item_offset: 1, use_pagination: 1,
+ empty_message: "Nothing here yet. Check back soon!") %>
+
+
+
+<%%= template_option("Caption", :string) %>
+
+
+
+<%%= if template_option("Use sidebar?", :checkbox) do %>
+ ...
+<%% else %>
+ ...
+<%% end %>
+
+
+
+
+
+
diff --git a/lib/imagine_web/templates/cms_template/index.html.eex b/lib/imagine_web/templates/cms_template/index.html.eex
new file mode 100644
index 0000000..843524e
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template/index.html.eex
@@ -0,0 +1,26 @@
+Templates
+
+
+ <%= link raw(~s( New Template)), to: Routes.cms_template_path(@conn, :new), class: "ui labeled icon button" %>
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+<%= for cms_template <- @cms_templates do %>
+
+ <%= link cms_template.name, to: Routes.cms_template_path(@conn, :show, cms_template) %>
+ <%= cms_template.description %>
+
+ <%= link "Edit", to: Routes.cms_template_path(@conn, :edit, cms_template) %>
+
+
+<% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_template/new.html.eex b/lib/imagine_web/templates/cms_template/new.html.eex
new file mode 100644
index 0000000..e5cdfdc
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template/new.html.eex
@@ -0,0 +1,3 @@
+<%= link "Templates", to: Routes.cms_template_path(@conn, :index) %> / New Template
+
+<%= render "form.html", Map.put(assigns, :action, Routes.cms_template_path(@conn, :create)) %>
diff --git a/lib/imagine_web/templates/cms_template/show.html.eex b/lib/imagine_web/templates/cms_template/show.html.eex
new file mode 100644
index 0000000..520f80b
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template/show.html.eex
@@ -0,0 +1,36 @@
+<%= link "Templates", to: Routes.cms_template_path(@conn, :index) %> / <%= @cms_template.name %>
+
+
+ <%= link raw(~s( Edit)), to: Routes.cms_template_path(@conn, :edit, @cms_template), class: "ui icon labeled button" %>
+ <%= link raw(~s( Versions)), to: Routes.cms_template_version_path(@conn, :index, @cms_template), class: "ui icon labeled button" %>
+ <%= link raw(~s( Delete)), to: Routes.cms_template_path(@conn, :delete, @cms_template), method: :delete, data: [confirm: "Are you sure you want to delete this user? There is no undo."], class: "ui icon labeled negative basic button" %>
+
+
+
+
+
+ Name:
+ <%= @cms_template.name %>
+
+
+
+ Description:
+ <%= @cms_template.description %>
+
+
+
+ Content:
+ <%= Crutches.String.truncate @cms_template.content_eex, 100 %>
+
+
+
+
+
+ Version:
+ <%= @cms_template.version %>
+
+
+
diff --git a/lib/imagine_web/templates/cms_template_version/index.html.eex b/lib/imagine_web/templates/cms_template_version/index.html.eex
new file mode 100644
index 0000000..74b9ca4
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template_version/index.html.eex
@@ -0,0 +1,18 @@
+<%= link "Templates", to: Routes.cms_template_path(@conn, :index) %> / <%= link @cms_template.name, to: Routes.cms_template_path(@conn, :show, @cms_template) %> / Versions
+
+
+
+
+ Version
+ Date
+
+
+
+ <%= for cms_template_version <- Enum.reverse(@cms_template_versions) do %>
+
+ <%= link "Version #{cms_template_version.version}", to: Routes.cms_template_version_path(@conn, :show, @cms_template, cms_template_version) %>
+ <%= cms_template_version.updated_on %>
+
+ <% end %>
+
+
diff --git a/lib/imagine_web/templates/cms_template_version/show.html.eex b/lib/imagine_web/templates/cms_template_version/show.html.eex
new file mode 100644
index 0000000..5ae54a8
--- /dev/null
+++ b/lib/imagine_web/templates/cms_template_version/show.html.eex
@@ -0,0 +1,30 @@
+<%= link "Templates", to: Routes.cms_template_path(@conn, :index) %> / <%= link @cms_template.name, to: Routes.cms_template_path(@conn, :show, @cms_template) %> / <%= link "Versions", to: Routes.cms_template_version_path(@conn, :index, @cms_template) %> / <%= "Version #{@cms_template_version.version}" %>
+
+
+
+ Name:
+ <%= link @cms_template_version.name, to: Routes.cms_template_path(@conn, :show, @cms_template) %>
+
+
+
+ Description:
+ <%= @cms_template_version.description %>
+
+
+
+ Content:
+ <%= textarea :f, :content_eex, value: @cms_template_version.content_eex %>
+
+
+
+
diff --git a/lib/imagine_web/templates/error/500.html.eex b/lib/imagine_web/templates/error/500.html.eex
new file mode 100644
index 0000000..4806f63
--- /dev/null
+++ b/lib/imagine_web/templates/error/500.html.eex
@@ -0,0 +1,58 @@
+
+
+
+ We're sorry, but something went wrong (500)
+
+
+
+
+
+
Oops, something went wrong
+
+
Sorry about that!
+
We've been notified, please try again later.
+
+
+
diff --git a/lib/imagine_web/templates/layout/app.html.eex b/lib/imagine_web/templates/layout/app.html.eex
new file mode 100644
index 0000000..06147a2
--- /dev/null
+++ b/lib/imagine_web/templates/layout/app.html.eex
@@ -0,0 +1,17 @@
+
+ <%# error messages are persistent %>
+ <%= if err = get_flash(@conn, :error) do %>
+ <%= err %>
+ <% end %>
+
+ <%# simple information messages are not %>
+ <%= if info = get_flash(@conn, :notice) || get_flash(@conn, :info) do %>
+
+ <% end %>
+
+ <%= @inner_content %>
+
diff --git a/lib/imagine_web/templates/layout/live.html.leex b/lib/imagine_web/templates/layout/live.html.leex
new file mode 100644
index 0000000..6071a22
--- /dev/null
+++ b/lib/imagine_web/templates/layout/live.html.leex
@@ -0,0 +1,11 @@
+
+ <%= live_flash(@flash, :info) %>
+
+ <%= live_flash(@flash, :error) %>
+
+ <%= @inner_content %>
+
diff --git a/lib/imagine_web/templates/layout/manage.html.eex b/lib/imagine_web/templates/layout/manage.html.eex
new file mode 100644
index 0000000..87ade44
--- /dev/null
+++ b/lib/imagine_web/templates/layout/manage.html.eex
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ <%= csrf_meta_tag() %>
+
+ <%= assigns[:page_title] && "#{assigns[:page_title]} < " %>Manage < Imagine CMS
+
+ "/>
+
+
+
+
+
+ <%= link "Imagine CMS", to: "/manage", class: "header item" %>
+
+ <%= if assigns[:current_user] do %>
+ <%= link "Pages", to: Routes.cms_page_path(@conn, :index), class: "item" %>
+ <%= link "Templates", to: Routes.cms_template_path(@conn, :index), class: "item" %>
+ <%= link "Snippets", to: Routes.cms_snippet_path(@conn, :index), class: "item" %>
+ <%= link "Users", to: Routes.user_path(@conn, :index), class: "item" %>
+ <% end %>
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= @inner_content %>
+
+
+
+ Imagine <%= Imagine.Config.version() %>
+ (<%= Imagine.Config.build_number() %>) –
+ <%= Timex.format! Imagine.Config.release_built_at(), "{Mfull} {D}, {YYYY}" %>
+
+
+
+
+
diff --git a/lib/imagine_web/templates/user/edit.html.eex b/lib/imagine_web/templates/user/edit.html.eex
new file mode 100644
index 0000000..ace8059
--- /dev/null
+++ b/lib/imagine_web/templates/user/edit.html.eex
@@ -0,0 +1,3 @@
+<%= link "Users", to: Routes.user_path(@conn, :index) %> / <%= @user.username %>
+
+<%= render "form.html", Map.put(assigns, :action, Routes.user_path(@conn, :update, @user)) %>
diff --git a/lib/imagine_web/templates/user/form.html.eex b/lib/imagine_web/templates/user/form.html.eex
new file mode 100644
index 0000000..736b478
--- /dev/null
+++ b/lib/imagine_web/templates/user/form.html.eex
@@ -0,0 +1,61 @@
+<%= form_for @changeset, @action, [class: "ui form" <> (if @changeset.action, do: " warning error", else: "")], fn f -> %>
+ <%= if @changeset.action do %>
+
+
Something went wrong, please check the errors below.
+
+ <% end %>
+
+
+
+ <%= label f, :username %>
+ <%= text_input f, :username %>
+ <%= error_tag f, :username %>
+
+
+
+ <%= label f, :password %>
+ <%= password_input f, :password %>
+ <%= error_tag f, :password %>
+
+
+
+ <%= label f, :password_confirmation %>
+ <%= password_input f, :password_confirmation %>
+ <%= error_tag f, :password_confirmation %>
+
+
+
+
+ <%= label f, :first_name %>
+ <%= text_input f, :first_name %>
+ <%= error_tag f, :first_name %>
+
+
+
+ <%= label f, :last_name %>
+ <%= text_input f, :last_name %>
+ <%= error_tag f, :last_name %>
+
+
+
+ <%= label f, :email %>
+ <%= text_input f, :email %>
+ <%= error_tag f, :email %>
+
+
+
+
+ <%= checkbox f, :active %>
+ <%= label f, :active %>
+
+
+
+
+ <%= submit "Save", class: "ui primary button" %>
+ <%= if assigns[:user] do %>
+ <%= link "Cancel", to: Routes.user_path(@conn, :show, @user), class: "ui button" %>
+ <% else %>
+ <%= link "Cancel", to: Routes.user_path(@conn, :index), class: "ui button" %>
+ <% end %>
+
+<% end %>
diff --git a/lib/imagine_web/templates/user/index.html.eex b/lib/imagine_web/templates/user/index.html.eex
new file mode 100644
index 0000000..d3e4e3f
--- /dev/null
+++ b/lib/imagine_web/templates/user/index.html.eex
@@ -0,0 +1,34 @@
+Users
+
+
+ <%= link raw(~s( New User)), to: Routes.user_path(@conn, :new), class: "ui labeled icon button" %>
+
+
+
+
+
+ Username
+ First name
+ Last name
+ Email
+ Active?
+ Is Superuser?
+
+
+
+
+<%= for user <- @users do %>
+
+ <%= link user.username, to: Routes.user_path(@conn, :show, user) %>
+ <%= user.first_name %>
+ <%= user.last_name %>
+ <%= user.email %>
+ <%= user.active %>
+ <%= user.is_superuser %>
+
+ <%= link "Edit", to: Routes.user_path(@conn, :edit, user) %>
+
+
+<% end %>
+
+
diff --git a/lib/imagine_web/templates/user/new.html.eex b/lib/imagine_web/templates/user/new.html.eex
new file mode 100644
index 0000000..39c7863
--- /dev/null
+++ b/lib/imagine_web/templates/user/new.html.eex
@@ -0,0 +1,3 @@
+<%= link "Users", to: Routes.user_path(@conn, :index) %> / New User
+
+<%= render "form.html", Map.put(assigns, :action, Routes.user_path(@conn, :create)) %>
diff --git a/lib/imagine_web/templates/user/show.html.eex b/lib/imagine_web/templates/user/show.html.eex
new file mode 100644
index 0000000..13a0c9c
--- /dev/null
+++ b/lib/imagine_web/templates/user/show.html.eex
@@ -0,0 +1,43 @@
+<%= link "Users", to: Routes.user_path(@conn, :index) %> / <%= @user.username %>
+
+
+ <%= link raw(~s( Edit)), to: Routes.user_path(@conn, :edit, @user), class: "ui icon labeled button" %>
+ <%= if @user.active do %>
+ <%= link raw(~s( Disable)), to: Routes.user_path(@conn, :disable, @user), method: :post, class: "ui icon labeled button" %>
+ <% else %>
+ <%= link raw(~s( Enable)), to: Routes.user_path(@conn, :enable, @user), method: :post, class: "ui icon labeled button" %>
+ <%= link raw(~s( Delete)), to: Routes.user_path(@conn, :delete, @user), method: :delete, data: [confirm: "Are you sure you want to delete this user? There is no undo."], class: "ui icon labeled negative basic button" %>
+ <% end %>
+
+
+
+
+ Username:
+ <%= @user.username %>
+
+
+
+ First name:
+ <%= @user.first_name %>
+
+
+
+ Last name:
+ <%= @user.last_name %>
+
+
+
+ Email:
+ <%= @user.email %>
+
+
+
+ Active:
+ <%= if @user.active, do: "Yes", else: "No" %>
+
+
+
+ Superuser:
+ <%= if @user.is_superuser, do: "Yes", else: "No" %>
+
+
diff --git a/lib/imagine_web/views/account_view.ex b/lib/imagine_web/views/account_view.ex
new file mode 100644
index 0000000..77460e4
--- /dev/null
+++ b/lib/imagine_web/views/account_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.AccountView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/auth_view.ex b/lib/imagine_web/views/auth_view.ex
new file mode 100644
index 0000000..c787a8e
--- /dev/null
+++ b/lib/imagine_web/views/auth_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.AuthView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_page_version_view.ex b/lib/imagine_web/views/cms_page_version_view.ex
new file mode 100644
index 0000000..618f707
--- /dev/null
+++ b/lib/imagine_web/views/cms_page_version_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsPageVersionView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_page_view.ex b/lib/imagine_web/views/cms_page_view.ex
new file mode 100644
index 0000000..f09d894
--- /dev/null
+++ b/lib/imagine_web/views/cms_page_view.ex
@@ -0,0 +1,95 @@
+defmodule ImagineWeb.CmsPageView do
+ use ImagineWeb, :view
+
+ alias Imagine.CmsPages
+ alias Imagine.CmsPages.CmsPage
+
+ def cms_page_browser(nil) do
+ home = CmsPages.get_home_page!()
+ cms_page_browser(home)
+ end
+
+ def cms_page_browser(target) do
+ home = CmsPages.get_home_page!()
+ trash = CmsPages.get_trash_page()
+ cms_page_browser_columns(0, [home, trash], target)
+ end
+
+ def cms_page_browser_columns(0, pages, target) do
+ [pages] ++
+ cond do
+ target.path == "" ->
+ [Imagine.Repo.preload(Enum.at(pages, 0), sub_pages: :sub_pages).sub_pages]
+
+ target.path == "_trash" ->
+ [Enum.at(pages, 1).sub_pages]
+
+ target.discarded_at ->
+ [Enum.at(pages, 1).sub_pages]
+
+ true ->
+ sub_pages = Imagine.Repo.preload(Enum.at(pages, 0), sub_pages: :sub_pages).sub_pages
+ cms_page_browser_columns(1, sub_pages, target)
+ end
+ end
+
+ def cms_page_browser_columns(_level, [], _target), do: []
+
+ def cms_page_browser_columns(level, pages, target) do
+ if level > 10, do: raise("Too many levels")
+
+ sub_pages =
+ find_intermediate_page_sub_pages(
+ pages,
+ Enum.at(String.split(target.path, "/"), level - 1)
+ )
+
+ if target.id in Enum.map(pages, fn p -> p.id end) do
+ [pages] ++ [sub_pages]
+ else
+ # figure out which one contains the path we need
+ [pages] ++ cms_page_browser_columns(level + 1, sub_pages, target)
+ end
+ end
+
+ defp find_intermediate_page_sub_pages([], _name), do: []
+
+ defp find_intermediate_page_sub_pages([page | pages], name) do
+ if page.name == name do
+ Imagine.Repo.preload(page, sub_pages: :sub_pages).sub_pages
+ else
+ find_intermediate_page_sub_pages(pages, name)
+ end
+ end
+
+ def cms_template_select_options(cms_templates) do
+ for t <- cms_templates, do: {t.name, t.id}
+ end
+
+ def cms_page_select_options(cms_pages, %CmsPage{path: ""}) do
+ cms_page_select_options(cms_pages)
+ end
+
+ def cms_page_select_options(cms_pages, %CmsPage{} = cms_page) do
+ list =
+ case cms_page.path do
+ nil -> cms_pages
+ _ -> Enum.reject(cms_pages, fn p -> String.starts_with?(p.path, cms_page.path) end)
+ end
+
+ cms_page_select_options(list)
+ end
+
+ def cms_page_select_options(cms_pages) do
+ for t <- Enum.sort_by(cms_pages, fn p -> p.path end),
+ do: {"/#{t.path} - #{t.title}", t.id}
+ end
+
+ def cms_page_version_select_options(cms_page_versions) do
+ [{"[Latest]", 0}] ++
+ for v <- cms_page_versions do
+ {"#{v.version} - #{v.created_on} by #{v.updated_by_username}", v.version}
+ end ++
+ [{"[Offline]", -1}]
+ end
+end
diff --git a/lib/imagine_web/views/cms_renderer_view.ex b/lib/imagine_web/views/cms_renderer_view.ex
new file mode 100644
index 0000000..a908baa
--- /dev/null
+++ b/lib/imagine_web/views/cms_renderer_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsRendererView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_snippet_version_view.ex b/lib/imagine_web/views/cms_snippet_version_view.ex
new file mode 100644
index 0000000..83f8f55
--- /dev/null
+++ b/lib/imagine_web/views/cms_snippet_version_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsSnippetVersionView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_snippet_view.ex b/lib/imagine_web/views/cms_snippet_view.ex
new file mode 100644
index 0000000..d41f334
--- /dev/null
+++ b/lib/imagine_web/views/cms_snippet_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsSnippetView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_template_version_view.ex b/lib/imagine_web/views/cms_template_version_view.ex
new file mode 100644
index 0000000..187dd64
--- /dev/null
+++ b/lib/imagine_web/views/cms_template_version_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsTemplateVersionView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_template_view.ex b/lib/imagine_web/views/cms_template_view.ex
new file mode 100644
index 0000000..7486e2d
--- /dev/null
+++ b/lib/imagine_web/views/cms_template_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsTemplateView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/cms_view.ex b/lib/imagine_web/views/cms_view.ex
new file mode 100644
index 0000000..6344dd8
--- /dev/null
+++ b/lib/imagine_web/views/cms_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.CmsView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/error_helpers.ex b/lib/imagine_web/views/error_helpers.ex
new file mode 100644
index 0000000..edf6aab
--- /dev/null
+++ b/lib/imagine_web/views/error_helpers.ex
@@ -0,0 +1,49 @@
+defmodule ImagineWeb.ErrorHelpers do
+ @moduledoc """
+ Conveniences for translating and building error messages.
+ """
+
+ use Phoenix.HTML
+
+ @doc """
+ Generates tag for inlined form input errors.
+ """
+ def error_tag(form, field) do
+ Enum.map(Keyword.get_values(form.errors, field), fn error ->
+ full_msg = [translate_error(error)] ++ extract_additional(error)
+
+ content_tag(:div, full_msg, class: "ui error message")
+ end)
+ end
+
+ def extract_additional({_msg, [additional: txt]}), do: [raw(" "), txt]
+ def extract_additional({_msg, _}), do: []
+
+ @doc """
+ Translates an error message using gettext.
+ """
+ def translate_error({msg, opts}) do
+ # When using gettext, we typically pass the strings we want
+ # to translate as a static argument:
+ #
+ # # Translate "is invalid" in the "errors" domain
+ # dgettext("errors", "is invalid")
+ #
+ # # Translate the number of files with plural rules
+ # dngettext("errors", "1 file", "%{count} files", count)
+ #
+ # Because the error messages we show in our forms and APIs
+ # are defined inside Ecto, we need to translate them dynamically.
+ # This requires us to call the Gettext module passing our gettext
+ # backend as first argument.
+ #
+ # Note we use the "errors" domain, which means translations
+ # should be written to the errors.po file. The :count option is
+ # set by Ecto and indicates we should also apply plural rules.
+ if count = opts[:count] do
+ Gettext.dngettext(ImagineWeb.Gettext, "errors", msg, msg, count, opts)
+ else
+ Gettext.dgettext(ImagineWeb.Gettext, "errors", msg, opts)
+ end
+ end
+end
diff --git a/lib/imagine_web/views/error_view.ex b/lib/imagine_web/views/error_view.ex
new file mode 100644
index 0000000..1e1227c
--- /dev/null
+++ b/lib/imagine_web/views/error_view.ex
@@ -0,0 +1,16 @@
+defmodule ImagineWeb.ErrorView do
+ use ImagineWeb, :view
+
+ # If you want to customize a particular status code
+ # for a certain format, you may uncomment below.
+ # def render("500.html", _assigns) do
+ # "Internal Server Error"
+ # end
+
+ # By default, Phoenix returns the status message from
+ # the template name. For example, "404.html" becomes
+ # "Not Found".
+ def template_not_found(template, _assigns) do
+ Phoenix.Controller.status_message_from_template(template)
+ end
+end
diff --git a/lib/imagine_web/views/layout_view.ex b/lib/imagine_web/views/layout_view.ex
new file mode 100644
index 0000000..3bf7259
--- /dev/null
+++ b/lib/imagine_web/views/layout_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.LayoutView do
+ use ImagineWeb, :view
+end
diff --git a/lib/imagine_web/views/user_view.ex b/lib/imagine_web/views/user_view.ex
new file mode 100644
index 0000000..fd358cb
--- /dev/null
+++ b/lib/imagine_web/views/user_view.ex
@@ -0,0 +1,3 @@
+defmodule ImagineWeb.UserView do
+ use ImagineWeb, :view
+end
diff --git a/mix.exs b/mix.exs
new file mode 100644
index 0000000..224ec7e
--- /dev/null
+++ b/mix.exs
@@ -0,0 +1,60 @@
+defmodule Imagine.MixProject do
+ use Mix.Project
+
+ def project do
+ [
+ app: :imagine_cms,
+ version: "6.3.0",
+ elixir: "~> 1.10",
+ compilers: [:phoenix, :gettext] ++ Mix.compilers(),
+ start_permanent: Mix.env() == :prod,
+ build_embedded: Mix.env() == :prod,
+ description: description(),
+ package: package(),
+ deps: deps()
+ ]
+ end
+
+ # Run "mix help compile.app" to learn about applications.
+ def application do
+ [
+ mod: {Imagine.Application, []},
+ extra_applications: [:logger]
+ ]
+ end
+
+ defp description do
+ """
+ An easy-to-use, self-contained CMS
+ """
+ end
+
+ defp package do
+ [
+ files: ["lib", "mix.exs", "README*", "LICENSE*"],
+ maintainers: ["Aaron Namba"],
+ licenses: ["Apache 2.0"],
+ links: %{"GitHub" => "https://github.com/ImagineCMS/imagine_cms"}
+ ]
+ end
+
+ # Run "mix help deps" to learn about dependencies.
+ defp deps do
+ [
+ {:phoenix, "~> 1.5.3"},
+ {:phoenix_ecto, "~> 4.1"},
+ {:ecto_sql, "~> 3.0"},
+ {:myxql, ">= 0.0.0"},
+ {:phoenix_live_view, "~> 0.13.0"},
+ {:phoenix_html, "~> 2.14"},
+ {:gettext, "~> 0.17"},
+ {:jason, "~> 1.0"},
+ {:argon2_elixir, "~> 2.0"},
+ {:nebulex, "~> 1.2"},
+ {:timex, "~> 3.6"},
+ {:nodejs, "~> 2.0"},
+ {:mix_test_watch, "~> 1.0", only: [:dev], runtime: false},
+ {:ex_doc, ">= 0.0.0", only: :dev, runtime: false}
+ ]
+ end
+end
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..dd39ff4
--- /dev/null
+++ b/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "imagine_cms",
+ "license": "Apache-2.0",
+ "main": "./priv/static/js/imagine_cms.js",
+ "style": "./priv/static/js/imagine_cms.css"
+}
\ No newline at end of file
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
new file mode 100644
index 0000000..d48244b
--- /dev/null
+++ b/priv/gettext/default.pot
@@ -0,0 +1,16 @@
+## This file is a PO Template file.
+##
+## `msgid`s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run `mix gettext.extract` to bring this file up to
+## date. Leave `msgstr`s empty as changing them here as no
+## effect: edit them in PO (`.po`) files instead.
+msgid ""
+msgstr ""
+
+#, elixir-format
+#: lib/imagine_web/templates/page/index.html.eex:2
+msgid "Welcome to %{name}!"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
new file mode 100644
index 0000000..459ed50
--- /dev/null
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -0,0 +1,17 @@
+## `msgid`s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove `msgid`s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use `mix gettext.extract --merge` or `mix gettext.merge`
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: en\n"
+"Plural-Forms: nplurals=2\n"
+
+#, elixir-format
+#: lib/imagine_web/templates/page/index.html.eex:2
+msgid "Welcome to %{name}!"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po
new file mode 100644
index 0000000..19678da
--- /dev/null
+++ b/priv/gettext/en/LC_MESSAGES/errors.po
@@ -0,0 +1,97 @@
+## `msgid`s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove `msgid`s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use `mix gettext.extract --merge` or `mix gettext.merge`
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: en\n"
+
+## From Ecto.Changeset.cast/4
+msgid "can't be blank"
+msgstr "required"
+
+## From Ecto.Changeset.unique_constraint/3
+msgid "has already been taken"
+msgstr "already in use"
+
+## From Ecto.Changeset.put_change/3
+msgid "is invalid"
+msgstr "invalid value"
+
+## From Ecto.Changeset.validate_acceptance/3
+msgid "must be accepted"
+msgstr "required"
+
+## From Ecto.Changeset.validate_format/3
+msgid "has invalid format"
+msgstr "invalid format"
+
+## From Ecto.Changeset.validate_subset/3
+msgid "has an invalid entry"
+msgstr "invalid entry"
+
+## From Ecto.Changeset.validate_exclusion/3
+msgid "is reserved"
+msgstr "invalid value (reserved by system)"
+
+## From Ecto.Changeset.validate_confirmation/3
+msgid "does not match confirmation"
+msgstr "does not match"
+
+## From Ecto.Changeset.no_assoc_constraint/3
+msgid "is still associated with this entry"
+msgstr ""
+
+msgid "are still associated with this entry"
+msgstr ""
+
+## From Ecto.Changeset.validate_length/3
+msgid "should be %{count} character(s)"
+msgid_plural "should be %{count} character(s)"
+msgstr[0] "must be %{count} character(s)"
+msgstr[1] "must be %{count} character(s)"
+
+msgid "should have %{count} item(s)"
+msgid_plural "should have %{count} item(s)"
+msgstr[0] "must have %{count} item(s)"
+msgstr[1] "must have %{count} item(s)"
+
+msgid "should be at least %{count} character(s)"
+msgid_plural "should be at least %{count} character(s)"
+msgstr[0] "must be at least %{count} character(s)"
+msgstr[1] "must be at least %{count} character(s)"
+
+msgid "should have at least %{count} item(s)"
+msgid_plural "should have at least %{count} item(s)"
+msgstr[0] "must have at least %{count} item(s)"
+msgstr[1] "must have at least %{count} item(s)"
+
+msgid "should be at most %{count} character(s)"
+msgid_plural "should be at most %{count} character(s)"
+msgstr[0] "must be at most %{count} character(s)"
+msgstr[1] "must be at most %{count} character(s)"
+
+msgid "should have at most %{count} item(s)"
+msgid_plural "should have at most %{count} item(s)"
+msgstr[0] "must have at most %{count} item(s)"
+msgstr[1] "must have at most %{count} item(s)"
+
+## From Ecto.Changeset.validate_number/3
+msgid "must be less than %{number}"
+msgstr ""
+
+msgid "must be greater than %{number}"
+msgstr ""
+
+msgid "must be less than or equal to %{number}"
+msgstr ""
+
+msgid "must be greater than or equal to %{number}"
+msgstr ""
+
+msgid "must be equal to %{number}"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/schema.po b/priv/gettext/en/LC_MESSAGES/schema.po
new file mode 100644
index 0000000..014a567
--- /dev/null
+++ b/priv/gettext/en/LC_MESSAGES/schema.po
@@ -0,0 +1,342 @@
+## `msgid`s in this file come from POT (.pot) files.
+##
+## Do not add, change, or remove `msgid`s manually here as
+## they're tied to the ones in the corresponding POT file
+## (with the same domain).
+##
+## Use `mix gettext.extract --merge` or `mix gettext.merge`
+## to merge POT files into PO files.
+msgid ""
+msgstr ""
+"Language: en\n"
+"Plural-Forms: nplurals=2\n"
+
+# Imagine.Accounts.User
+msgid "Imagine.Accounts.User.id"
+msgstr ""
+
+msgid "Imagine.Accounts.User.username"
+msgstr ""
+
+msgid "Imagine.Accounts.User.password_hash"
+msgstr ""
+
+msgid "Imagine.Accounts.User.first_name"
+msgstr ""
+
+msgid "Imagine.Accounts.User.last_name"
+msgstr ""
+
+msgid "Imagine.Accounts.User.email"
+msgstr ""
+
+msgid "Imagine.Accounts.User.dynamic_fields"
+msgstr ""
+
+msgid "Imagine.Accounts.User.active"
+msgstr ""
+
+msgid "Imagine.Accounts.User.is_superuser"
+msgstr ""
+
+msgid "Imagine.Accounts.User.created_on"
+msgstr ""
+
+msgid "Imagine.Accounts.User.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPage
+msgid "Imagine.CmsPages.CmsPage.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.cms_template_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.cms_template_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.parent_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.title"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.published_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.published_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.article_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.article_end_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.expiration_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.expires"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.summary"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.html_head"
+msgstr "HTML head"
+
+msgid "Imagine.CmsPages.CmsPage.thumbnail_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.feature_image_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.redirect_enabled"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.redirect_to"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.position"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.comment_count"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.search_index"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.updated_by"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.updated_by_username"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.created_on"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPageObject
+msgid "Imagine.CmsPages.CmsPageObject.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.cms_page_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.cms_page_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.obj_type"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.content"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.options"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.created_on"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPageTag
+msgid "Imagine.CmsPages.CmsPageTag.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.cms_page_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.created_on"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPageVersion
+msgid "Imagine.CmsPages.CmsPageVersion.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.article_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.article_end_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.cms_page_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.cms_template_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.cms_template_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.expiration_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.expires"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.feature_image_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.html_head"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.parent_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.position"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.published_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.published_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.redirect_enabled"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.redirect_to"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.search_index"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.summary"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.thumbnail_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.title"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.updated_by"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.updated_by_username"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.updated_at"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsSnippet
+msgid "Imagine.CmsTemplates.CmsSnippet.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.updated_at"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsSnippetVersion
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.cms_snippet_id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.updated_at"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsTemplate
+msgid "Imagine.CmsTemplates.CmsTemplate.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.options_json"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.created_on"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.updated_on"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsTemplateVersion
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.cms_template_id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.options_json"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.updated_at"
+msgstr ""
diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot
new file mode 100644
index 0000000..aeeadad
--- /dev/null
+++ b/priv/gettext/errors.pot
@@ -0,0 +1,94 @@
+## This is a PO Template file.
+##
+## `msgid`s here are often extracted from source code.
+## Add new translations manually only if they're dynamic
+## translations that can't be statically extracted.
+##
+## Run `mix gettext.extract` to bring this file up to
+## date. Leave `msgstr`s empty as changing them here has no
+## effect: edit them in PO (`.po`) files instead.
+## From Ecto.Changeset.cast/4
+msgid "can't be blank"
+msgstr ""
+
+## From Ecto.Changeset.unique_constraint/3
+msgid "has already been taken"
+msgstr ""
+
+## From Ecto.Changeset.put_change/3
+msgid "is invalid"
+msgstr ""
+
+## From Ecto.Changeset.validate_acceptance/3
+msgid "must be accepted"
+msgstr ""
+
+## From Ecto.Changeset.validate_format/3
+msgid "has invalid format"
+msgstr ""
+
+## From Ecto.Changeset.validate_subset/3
+msgid "has an invalid entry"
+msgstr ""
+
+## From Ecto.Changeset.validate_exclusion/3
+msgid "is reserved"
+msgstr ""
+
+## From Ecto.Changeset.validate_confirmation/3
+msgid "does not match confirmation"
+msgstr ""
+
+## From Ecto.Changeset.no_assoc_constraint/3
+msgid "is still associated with this entry"
+msgstr ""
+
+msgid "are still associated with this entry"
+msgstr ""
+
+## From Ecto.Changeset.validate_length/3
+msgid "should be %{count} character(s)"
+msgid_plural "should be %{count} character(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should have %{count} item(s)"
+msgid_plural "should have %{count} item(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should be at least %{count} character(s)"
+msgid_plural "should be at least %{count} character(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should have at least %{count} item(s)"
+msgid_plural "should have at least %{count} item(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should be at most %{count} character(s)"
+msgid_plural "should be at most %{count} character(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "should have at most %{count} item(s)"
+msgid_plural "should have at most %{count} item(s)"
+msgstr[0] ""
+msgstr[1] ""
+
+## From Ecto.Changeset.validate_number/3
+msgid "must be less than %{number}"
+msgstr ""
+
+msgid "must be greater than %{number}"
+msgstr ""
+
+msgid "must be less than or equal to %{number}"
+msgstr ""
+
+msgid "must be greater than or equal to %{number}"
+msgstr ""
+
+msgid "must be equal to %{number}"
+msgstr ""
diff --git a/priv/gettext/schema.pot b/priv/gettext/schema.pot
new file mode 100644
index 0000000..0e87cad
--- /dev/null
+++ b/priv/gettext/schema.pot
@@ -0,0 +1,329 @@
+# Imagine.Accounts.User
+msgid "Imagine.Accounts.User.id"
+msgstr ""
+
+msgid "Imagine.Accounts.User.username"
+msgstr ""
+
+msgid "Imagine.Accounts.User.password_hash"
+msgstr ""
+
+msgid "Imagine.Accounts.User.first_name"
+msgstr ""
+
+msgid "Imagine.Accounts.User.last_name"
+msgstr ""
+
+msgid "Imagine.Accounts.User.email"
+msgstr ""
+
+msgid "Imagine.Accounts.User.dynamic_fields"
+msgstr ""
+
+msgid "Imagine.Accounts.User.active"
+msgstr ""
+
+msgid "Imagine.Accounts.User.is_superuser"
+msgstr ""
+
+msgid "Imagine.Accounts.User.created_on"
+msgstr ""
+
+msgid "Imagine.Accounts.User.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPage
+msgid "Imagine.CmsPages.CmsPage.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.cms_template_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.cms_template_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.parent_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.title"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.published_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.published_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.article_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.article_end_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.expiration_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.expires"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.summary"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.html_head"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.thumbnail_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.feature_image_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.redirect_enabled"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.redirect_to"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.position"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.comment_count"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.search_index"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.updated_by"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.updated_by_username"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.created_on"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPage.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPageObject
+msgid "Imagine.CmsPages.CmsPageObject.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.cms_page_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.cms_page_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.obj_type"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.content"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.options"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.created_on"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageObject.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPageTag
+msgid "Imagine.CmsPages.CmsPageTag.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.cms_page_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.created_on"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageTag.updated_on"
+msgstr ""
+
+# Imagine.CmsPages.CmsPageVersion
+msgid "Imagine.CmsPages.CmsPageVersion.id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.article_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.article_end_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.cms_page_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.cms_template_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.cms_template_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.expiration_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.expires"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.feature_image_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.html_head"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.name"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.parent_id"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.position"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.published_date"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.published_version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.redirect_enabled"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.redirect_to"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.search_index"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.summary"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.thumbnail_path"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.title"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.updated_by"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.updated_by_username"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.version"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsPages.CmsPageVersion.updated_at"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsSnippet
+msgid "Imagine.CmsTemplates.CmsSnippet.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippet.updated_at"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsSnippetVersion
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.cms_snippet_id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsSnippetVersion.updated_at"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsTemplate
+msgid "Imagine.CmsTemplates.CmsTemplate.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.options_json"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.created_on"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplate.updated_on"
+msgstr ""
+
+# Imagine.CmsTemplates.CmsTemplateVersion
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.cms_template_id"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.content"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.name"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.options_json"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.version"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.inserted_at"
+msgstr ""
+
+msgid "Imagine.CmsTemplates.CmsTemplateVersion.updated_at"
+msgstr ""
diff --git a/priv/js/handlebars.js b/priv/js/handlebars.js
new file mode 100644
index 0000000..868d1ed
--- /dev/null
+++ b/priv/js/handlebars.js
@@ -0,0 +1,4845 @@
+/**!
+
+ @license
+ handlebars v4.1.2
+
+Copyright (C) 2011-2017 by Yehuda Katz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+*/
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory();
+ else if(typeof define === 'function' && define.amd)
+ define([], factory);
+ else if(typeof exports === 'object')
+ exports["Handlebars"] = factory();
+ else
+ root["Handlebars"] = factory();
+})(this, function() {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ exports: {},
+/******/ id: moduleId,
+/******/ loaded: false
+/******/ };
+
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ // Flag the module as loaded
+/******/ module.loaded = true;
+
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+
+
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _handlebarsRuntime = __webpack_require__(2);
+
+ var _handlebarsRuntime2 = _interopRequireDefault(_handlebarsRuntime);
+
+ // Compiler imports
+
+ var _handlebarsCompilerAst = __webpack_require__(35);
+
+ var _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);
+
+ var _handlebarsCompilerBase = __webpack_require__(36);
+
+ var _handlebarsCompilerCompiler = __webpack_require__(41);
+
+ var _handlebarsCompilerJavascriptCompiler = __webpack_require__(42);
+
+ var _handlebarsCompilerJavascriptCompiler2 = _interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
+
+ var _handlebarsCompilerVisitor = __webpack_require__(39);
+
+ var _handlebarsCompilerVisitor2 = _interopRequireDefault(_handlebarsCompilerVisitor);
+
+ var _handlebarsNoConflict = __webpack_require__(34);
+
+ var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
+
+ var _create = _handlebarsRuntime2['default'].create;
+ function create() {
+ var hb = _create();
+
+ hb.compile = function (input, options) {
+ return _handlebarsCompilerCompiler.compile(input, options, hb);
+ };
+ hb.precompile = function (input, options) {
+ return _handlebarsCompilerCompiler.precompile(input, options, hb);
+ };
+
+ hb.AST = _handlebarsCompilerAst2['default'];
+ hb.Compiler = _handlebarsCompilerCompiler.Compiler;
+ hb.JavaScriptCompiler = _handlebarsCompilerJavascriptCompiler2['default'];
+ hb.Parser = _handlebarsCompilerBase.parser;
+ hb.parse = _handlebarsCompilerBase.parse;
+
+ return hb;
+ }
+
+ var inst = create();
+ inst.create = create;
+
+ _handlebarsNoConflict2['default'](inst);
+
+ inst.Visitor = _handlebarsCompilerVisitor2['default'];
+
+ inst['default'] = inst;
+
+ exports['default'] = inst;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports) {
+
+ "use strict";
+
+ exports["default"] = function (obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+ };
+
+ exports.__esModule = true;
+
+/***/ }),
+/* 2 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireWildcard = __webpack_require__(3)['default'];
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _handlebarsBase = __webpack_require__(4);
+
+ var base = _interopRequireWildcard(_handlebarsBase);
+
+ // Each of these augment the Handlebars object. No need to setup here.
+ // (This is done to easily share code between commonjs and browse envs)
+
+ var _handlebarsSafeString = __webpack_require__(21);
+
+ var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
+
+ var _handlebarsException = __webpack_require__(6);
+
+ var _handlebarsException2 = _interopRequireDefault(_handlebarsException);
+
+ var _handlebarsUtils = __webpack_require__(5);
+
+ var Utils = _interopRequireWildcard(_handlebarsUtils);
+
+ var _handlebarsRuntime = __webpack_require__(22);
+
+ var runtime = _interopRequireWildcard(_handlebarsRuntime);
+
+ var _handlebarsNoConflict = __webpack_require__(34);
+
+ var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
+
+ // For compatibility and usage outside of module systems, make the Handlebars object a namespace
+ function create() {
+ var hb = new base.HandlebarsEnvironment();
+
+ Utils.extend(hb, base);
+ hb.SafeString = _handlebarsSafeString2['default'];
+ hb.Exception = _handlebarsException2['default'];
+ hb.Utils = Utils;
+ hb.escapeExpression = Utils.escapeExpression;
+
+ hb.VM = runtime;
+ hb.template = function (spec) {
+ return runtime.template(spec, hb);
+ };
+
+ return hb;
+ }
+
+ var inst = create();
+ inst.create = create;
+
+ _handlebarsNoConflict2['default'](inst);
+
+ inst['default'] = inst;
+
+ exports['default'] = inst;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 3 */
+/***/ (function(module, exports) {
+
+ "use strict";
+
+ exports["default"] = function (obj) {
+ if (obj && obj.__esModule) {
+ return obj;
+ } else {
+ var newObj = {};
+
+ if (obj != null) {
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
+ }
+ }
+
+ newObj["default"] = obj;
+ return newObj;
+ }
+ };
+
+ exports.__esModule = true;
+
+/***/ }),
+/* 4 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+ exports.HandlebarsEnvironment = HandlebarsEnvironment;
+
+ var _utils = __webpack_require__(5);
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ var _helpers = __webpack_require__(10);
+
+ var _decorators = __webpack_require__(18);
+
+ var _logger = __webpack_require__(20);
+
+ var _logger2 = _interopRequireDefault(_logger);
+
+ var VERSION = '4.1.2';
+ exports.VERSION = VERSION;
+ var COMPILER_REVISION = 7;
+
+ exports.COMPILER_REVISION = COMPILER_REVISION;
+ var REVISION_CHANGES = {
+ 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
+ 2: '== 1.0.0-rc.3',
+ 3: '== 1.0.0-rc.4',
+ 4: '== 1.x.x',
+ 5: '== 2.0.0-alpha.x',
+ 6: '>= 2.0.0-beta.1',
+ 7: '>= 4.0.0'
+ };
+
+ exports.REVISION_CHANGES = REVISION_CHANGES;
+ var objectType = '[object Object]';
+
+ function HandlebarsEnvironment(helpers, partials, decorators) {
+ this.helpers = helpers || {};
+ this.partials = partials || {};
+ this.decorators = decorators || {};
+
+ _helpers.registerDefaultHelpers(this);
+ _decorators.registerDefaultDecorators(this);
+ }
+
+ HandlebarsEnvironment.prototype = {
+ constructor: HandlebarsEnvironment,
+
+ logger: _logger2['default'],
+ log: _logger2['default'].log,
+
+ registerHelper: function registerHelper(name, fn) {
+ if (_utils.toString.call(name) === objectType) {
+ if (fn) {
+ throw new _exception2['default']('Arg not supported with multiple helpers');
+ }
+ _utils.extend(this.helpers, name);
+ } else {
+ this.helpers[name] = fn;
+ }
+ },
+ unregisterHelper: function unregisterHelper(name) {
+ delete this.helpers[name];
+ },
+
+ registerPartial: function registerPartial(name, partial) {
+ if (_utils.toString.call(name) === objectType) {
+ _utils.extend(this.partials, name);
+ } else {
+ if (typeof partial === 'undefined') {
+ throw new _exception2['default']('Attempting to register a partial called "' + name + '" as undefined');
+ }
+ this.partials[name] = partial;
+ }
+ },
+ unregisterPartial: function unregisterPartial(name) {
+ delete this.partials[name];
+ },
+
+ registerDecorator: function registerDecorator(name, fn) {
+ if (_utils.toString.call(name) === objectType) {
+ if (fn) {
+ throw new _exception2['default']('Arg not supported with multiple decorators');
+ }
+ _utils.extend(this.decorators, name);
+ } else {
+ this.decorators[name] = fn;
+ }
+ },
+ unregisterDecorator: function unregisterDecorator(name) {
+ delete this.decorators[name];
+ }
+ };
+
+ var log = _logger2['default'].log;
+
+ exports.log = log;
+ exports.createFrame = _utils.createFrame;
+ exports.logger = _logger2['default'];
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+ exports.extend = extend;
+ exports.indexOf = indexOf;
+ exports.escapeExpression = escapeExpression;
+ exports.isEmpty = isEmpty;
+ exports.createFrame = createFrame;
+ exports.blockParams = blockParams;
+ exports.appendContextPath = appendContextPath;
+ var escape = {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ "'": ''',
+ '`': '`',
+ '=': '='
+ };
+
+ var badChars = /[&<>"'`=]/g,
+ possible = /[&<>"'`=]/;
+
+ function escapeChar(chr) {
+ return escape[chr];
+ }
+
+ function extend(obj /* , ...source */) {
+ for (var i = 1; i < arguments.length; i++) {
+ for (var key in arguments[i]) {
+ if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {
+ obj[key] = arguments[i][key];
+ }
+ }
+ }
+
+ return obj;
+ }
+
+ var toString = Object.prototype.toString;
+
+ exports.toString = toString;
+ // Sourced from lodash
+ // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
+ /* eslint-disable func-style */
+ var isFunction = function isFunction(value) {
+ return typeof value === 'function';
+ };
+ // fallback for older versions of Chrome and Safari
+ /* istanbul ignore next */
+ if (isFunction(/x/)) {
+ exports.isFunction = isFunction = function (value) {
+ return typeof value === 'function' && toString.call(value) === '[object Function]';
+ };
+ }
+ exports.isFunction = isFunction;
+
+ /* eslint-enable func-style */
+
+ /* istanbul ignore next */
+ var isArray = Array.isArray || function (value) {
+ return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;
+ };
+
+ exports.isArray = isArray;
+ // Older IE versions do not directly support indexOf so we must implement our own, sadly.
+
+ function indexOf(array, value) {
+ for (var i = 0, len = array.length; i < len; i++) {
+ if (array[i] === value) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ function escapeExpression(string) {
+ if (typeof string !== 'string') {
+ // don't escape SafeStrings, since they're already safe
+ if (string && string.toHTML) {
+ return string.toHTML();
+ } else if (string == null) {
+ return '';
+ } else if (!string) {
+ return string + '';
+ }
+
+ // Force a string conversion as this will be done by the append regardless and
+ // the regex test will do this transparently behind the scenes, causing issues if
+ // an object's to string has escaped characters in it.
+ string = '' + string;
+ }
+
+ if (!possible.test(string)) {
+ return string;
+ }
+ return string.replace(badChars, escapeChar);
+ }
+
+ function isEmpty(value) {
+ if (!value && value !== 0) {
+ return true;
+ } else if (isArray(value) && value.length === 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ function createFrame(object) {
+ var frame = extend({}, object);
+ frame._parent = object;
+ return frame;
+ }
+
+ function blockParams(params, ids) {
+ params.path = ids;
+ return params;
+ }
+
+ function appendContextPath(contextPath, id) {
+ return (contextPath ? contextPath + '.' : '') + id;
+ }
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _Object$defineProperty = __webpack_require__(7)['default'];
+
+ exports.__esModule = true;
+
+ var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
+
+ function Exception(message, node) {
+ var loc = node && node.loc,
+ line = undefined,
+ column = undefined;
+ if (loc) {
+ line = loc.start.line;
+ column = loc.start.column;
+
+ message += ' - ' + line + ':' + column;
+ }
+
+ var tmp = Error.prototype.constructor.call(this, message);
+
+ // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
+ for (var idx = 0; idx < errorProps.length; idx++) {
+ this[errorProps[idx]] = tmp[errorProps[idx]];
+ }
+
+ /* istanbul ignore else */
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, Exception);
+ }
+
+ try {
+ if (loc) {
+ this.lineNumber = line;
+
+ // Work around issue under safari where we can't directly set the column value
+ /* istanbul ignore next */
+ if (_Object$defineProperty) {
+ Object.defineProperty(this, 'column', {
+ value: column,
+ enumerable: true
+ });
+ } else {
+ this.column = column;
+ }
+ }
+ } catch (nop) {
+ /* Ignore if the browser is very particular */
+ }
+ }
+
+ Exception.prototype = new Error();
+
+ exports['default'] = Exception;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 7 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(8), __esModule: true };
+
+/***/ }),
+/* 8 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var $ = __webpack_require__(9);
+ module.exports = function defineProperty(it, key, desc){
+ return $.setDesc(it, key, desc);
+ };
+
+/***/ }),
+/* 9 */
+/***/ (function(module, exports) {
+
+ var $Object = Object;
+ module.exports = {
+ create: $Object.create,
+ getProto: $Object.getPrototypeOf,
+ isEnum: {}.propertyIsEnumerable,
+ getDesc: $Object.getOwnPropertyDescriptor,
+ setDesc: $Object.defineProperty,
+ setDescs: $Object.defineProperties,
+ getKeys: $Object.keys,
+ getNames: $Object.getOwnPropertyNames,
+ getSymbols: $Object.getOwnPropertySymbols,
+ each: [].forEach
+ };
+
+/***/ }),
+/* 10 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+ exports.registerDefaultHelpers = registerDefaultHelpers;
+
+ var _helpersBlockHelperMissing = __webpack_require__(11);
+
+ var _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);
+
+ var _helpersEach = __webpack_require__(12);
+
+ var _helpersEach2 = _interopRequireDefault(_helpersEach);
+
+ var _helpersHelperMissing = __webpack_require__(13);
+
+ var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
+
+ var _helpersIf = __webpack_require__(14);
+
+ var _helpersIf2 = _interopRequireDefault(_helpersIf);
+
+ var _helpersLog = __webpack_require__(15);
+
+ var _helpersLog2 = _interopRequireDefault(_helpersLog);
+
+ var _helpersLookup = __webpack_require__(16);
+
+ var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
+
+ var _helpersWith = __webpack_require__(17);
+
+ var _helpersWith2 = _interopRequireDefault(_helpersWith);
+
+ function registerDefaultHelpers(instance) {
+ _helpersBlockHelperMissing2['default'](instance);
+ _helpersEach2['default'](instance);
+ _helpersHelperMissing2['default'](instance);
+ _helpersIf2['default'](instance);
+ _helpersLog2['default'](instance);
+ _helpersLookup2['default'](instance);
+ _helpersWith2['default'](instance);
+ }
+
+/***/ }),
+/* 11 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('blockHelperMissing', function (context, options) {
+ var inverse = options.inverse,
+ fn = options.fn;
+
+ if (context === true) {
+ return fn(this);
+ } else if (context === false || context == null) {
+ return inverse(this);
+ } else if (_utils.isArray(context)) {
+ if (context.length > 0) {
+ if (options.ids) {
+ options.ids = [options.name];
+ }
+
+ return instance.helpers.each(context, options);
+ } else {
+ return inverse(this);
+ }
+ } else {
+ if (options.data && options.ids) {
+ var data = _utils.createFrame(options.data);
+ data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);
+ options = { data: data };
+ }
+
+ return fn(context, options);
+ }
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 12 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('each', function (context, options) {
+ if (!options) {
+ throw new _exception2['default']('Must pass iterator to #each');
+ }
+
+ var fn = options.fn,
+ inverse = options.inverse,
+ i = 0,
+ ret = '',
+ data = undefined,
+ contextPath = undefined;
+
+ if (options.data && options.ids) {
+ contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';
+ }
+
+ if (_utils.isFunction(context)) {
+ context = context.call(this);
+ }
+
+ if (options.data) {
+ data = _utils.createFrame(options.data);
+ }
+
+ function execIteration(field, index, last) {
+ if (data) {
+ data.key = field;
+ data.index = index;
+ data.first = index === 0;
+ data.last = !!last;
+
+ if (contextPath) {
+ data.contextPath = contextPath + field;
+ }
+ }
+
+ ret = ret + fn(context[field], {
+ data: data,
+ blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])
+ });
+ }
+
+ if (context && typeof context === 'object') {
+ if (_utils.isArray(context)) {
+ for (var j = context.length; i < j; i++) {
+ if (i in context) {
+ execIteration(i, i, i === context.length - 1);
+ }
+ }
+ } else {
+ var priorKey = undefined;
+
+ for (var key in context) {
+ if (context.hasOwnProperty(key)) {
+ // We're running the iterations one step out of sync so we can detect
+ // the last iteration without have to scan the object twice and create
+ // an itermediate keys array.
+ if (priorKey !== undefined) {
+ execIteration(priorKey, i - 1);
+ }
+ priorKey = key;
+ i++;
+ }
+ }
+ if (priorKey !== undefined) {
+ execIteration(priorKey, i - 1, true);
+ }
+ }
+ }
+
+ if (i === 0) {
+ ret = inverse(this);
+ }
+
+ return ret;
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 13 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('helperMissing', function () /* [args, ]options */{
+ if (arguments.length === 1) {
+ // A missing field in a {{foo}} construct.
+ return undefined;
+ } else {
+ // Someone is actually trying to call something, blow up.
+ throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"');
+ }
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 14 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('if', function (conditional, options) {
+ if (_utils.isFunction(conditional)) {
+ conditional = conditional.call(this);
+ }
+
+ // Default behavior is to render the positive path if the value is truthy and not empty.
+ // The `includeZero` option may be set to treat the condtional as purely not empty based on the
+ // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
+ if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {
+ return options.inverse(this);
+ } else {
+ return options.fn(this);
+ }
+ });
+
+ instance.registerHelper('unless', function (conditional, options) {
+ return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 15 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('log', function () /* message, options */{
+ var args = [undefined],
+ options = arguments[arguments.length - 1];
+ for (var i = 0; i < arguments.length - 1; i++) {
+ args.push(arguments[i]);
+ }
+
+ var level = 1;
+ if (options.hash.level != null) {
+ level = options.hash.level;
+ } else if (options.data && options.data.level != null) {
+ level = options.data.level;
+ }
+ args[0] = level;
+
+ instance.log.apply(instance, args);
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 16 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('lookup', function (obj, field) {
+ if (!obj) {
+ return obj;
+ }
+ if (field === 'constructor' && !obj.propertyIsEnumerable(field)) {
+ return undefined;
+ }
+ return obj[field];
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 17 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ exports['default'] = function (instance) {
+ instance.registerHelper('with', function (context, options) {
+ if (_utils.isFunction(context)) {
+ context = context.call(this);
+ }
+
+ var fn = options.fn;
+
+ if (!_utils.isEmpty(context)) {
+ var data = options.data;
+ if (options.data && options.ids) {
+ data = _utils.createFrame(options.data);
+ data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);
+ }
+
+ return fn(context, {
+ data: data,
+ blockParams: _utils.blockParams([context], [data && data.contextPath])
+ });
+ } else {
+ return options.inverse(this);
+ }
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 18 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+ exports.registerDefaultDecorators = registerDefaultDecorators;
+
+ var _decoratorsInline = __webpack_require__(19);
+
+ var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
+
+ function registerDefaultDecorators(instance) {
+ _decoratorsInline2['default'](instance);
+ }
+
+/***/ }),
+/* 19 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ exports['default'] = function (instance) {
+ instance.registerDecorator('inline', function (fn, props, container, options) {
+ var ret = fn;
+ if (!props.partials) {
+ props.partials = {};
+ ret = function (context, options) {
+ // Create a new partials stack frame prior to exec.
+ var original = container.partials;
+ container.partials = _utils.extend({}, original, props.partials);
+ var ret = fn(context, options);
+ container.partials = original;
+ return ret;
+ };
+ }
+
+ props.partials[options.args[0]] = options.fn;
+
+ return ret;
+ });
+ };
+
+ module.exports = exports['default'];
+
+/***/ }),
+/* 20 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ var logger = {
+ methodMap: ['debug', 'info', 'warn', 'error'],
+ level: 'info',
+
+ // Maps a given level value to the `methodMap` indexes above.
+ lookupLevel: function lookupLevel(level) {
+ if (typeof level === 'string') {
+ var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());
+ if (levelMap >= 0) {
+ level = levelMap;
+ } else {
+ level = parseInt(level, 10);
+ }
+ }
+
+ return level;
+ },
+
+ // Can be overridden in the host environment
+ log: function log(level) {
+ level = logger.lookupLevel(level);
+
+ if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {
+ var method = logger.methodMap[level];
+ if (!console[method]) {
+ // eslint-disable-line no-console
+ method = 'log';
+ }
+
+ for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ message[_key - 1] = arguments[_key];
+ }
+
+ console[method].apply(console, message); // eslint-disable-line no-console
+ }
+ }
+ };
+
+ exports['default'] = logger;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 21 */
+/***/ (function(module, exports) {
+
+ // Build out our basic SafeString type
+ 'use strict';
+
+ exports.__esModule = true;
+ function SafeString(string) {
+ this.string = string;
+ }
+
+ SafeString.prototype.toString = SafeString.prototype.toHTML = function () {
+ return '' + this.string;
+ };
+
+ exports['default'] = SafeString;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 22 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _Object$seal = __webpack_require__(23)['default'];
+
+ var _interopRequireWildcard = __webpack_require__(3)['default'];
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+ exports.checkRevision = checkRevision;
+ exports.template = template;
+ exports.wrapProgram = wrapProgram;
+ exports.resolvePartial = resolvePartial;
+ exports.invokePartial = invokePartial;
+ exports.noop = noop;
+
+ var _utils = __webpack_require__(5);
+
+ var Utils = _interopRequireWildcard(_utils);
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ var _base = __webpack_require__(4);
+
+ function checkRevision(compilerInfo) {
+ var compilerRevision = compilerInfo && compilerInfo[0] || 1,
+ currentRevision = _base.COMPILER_REVISION;
+
+ if (compilerRevision !== currentRevision) {
+ if (compilerRevision < currentRevision) {
+ var runtimeVersions = _base.REVISION_CHANGES[currentRevision],
+ compilerVersions = _base.REVISION_CHANGES[compilerRevision];
+ throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');
+ } else {
+ // Use the embedded version info since the runtime doesn't know about this revision yet
+ throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');
+ }
+ }
+ }
+
+ function template(templateSpec, env) {
+ /* istanbul ignore next */
+ if (!env) {
+ throw new _exception2['default']('No environment passed to template');
+ }
+ if (!templateSpec || !templateSpec.main) {
+ throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);
+ }
+
+ templateSpec.main.decorator = templateSpec.main_d;
+
+ // Note: Using env.VM references rather than local var references throughout this section to allow
+ // for external users to override these as psuedo-supported APIs.
+ env.VM.checkRevision(templateSpec.compiler);
+
+ function invokePartialWrapper(partial, context, options) {
+ if (options.hash) {
+ context = Utils.extend({}, context, options.hash);
+ if (options.ids) {
+ options.ids[0] = true;
+ }
+ }
+
+ partial = env.VM.resolvePartial.call(this, partial, context, options);
+ var result = env.VM.invokePartial.call(this, partial, context, options);
+
+ if (result == null && env.compile) {
+ options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
+ result = options.partials[options.name](context, options);
+ }
+ if (result != null) {
+ if (options.indent) {
+ var lines = result.split('\n');
+ for (var i = 0, l = lines.length; i < l; i++) {
+ if (!lines[i] && i + 1 === l) {
+ break;
+ }
+
+ lines[i] = options.indent + lines[i];
+ }
+ result = lines.join('\n');
+ }
+ return result;
+ } else {
+ throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');
+ }
+ }
+
+ // Just add water
+ var container = {
+ strict: function strict(obj, name) {
+ if (!(name in obj)) {
+ throw new _exception2['default']('"' + name + '" not defined in ' + obj);
+ }
+ return obj[name];
+ },
+ lookup: function lookup(depths, name) {
+ var len = depths.length;
+ for (var i = 0; i < len; i++) {
+ if (depths[i] && depths[i][name] != null) {
+ return depths[i][name];
+ }
+ }
+ },
+ lambda: function lambda(current, context) {
+ return typeof current === 'function' ? current.call(context) : current;
+ },
+
+ escapeExpression: Utils.escapeExpression,
+ invokePartial: invokePartialWrapper,
+
+ fn: function fn(i) {
+ var ret = templateSpec[i];
+ ret.decorator = templateSpec[i + '_d'];
+ return ret;
+ },
+
+ programs: [],
+ program: function program(i, data, declaredBlockParams, blockParams, depths) {
+ var programWrapper = this.programs[i],
+ fn = this.fn(i);
+ if (data || depths || blockParams || declaredBlockParams) {
+ programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);
+ } else if (!programWrapper) {
+ programWrapper = this.programs[i] = wrapProgram(this, i, fn);
+ }
+ return programWrapper;
+ },
+
+ data: function data(value, depth) {
+ while (value && depth--) {
+ value = value._parent;
+ }
+ return value;
+ },
+ merge: function merge(param, common) {
+ var obj = param || common;
+
+ if (param && common && param !== common) {
+ obj = Utils.extend({}, common, param);
+ }
+
+ return obj;
+ },
+ // An empty object to use as replacement for null-contexts
+ nullContext: _Object$seal({}),
+
+ noop: env.VM.noop,
+ compilerInfo: templateSpec.compiler
+ };
+
+ function ret(context) {
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
+
+ var data = options.data;
+
+ ret._setup(options);
+ if (!options.partial && templateSpec.useData) {
+ data = initData(context, data);
+ }
+ var depths = undefined,
+ blockParams = templateSpec.useBlockParams ? [] : undefined;
+ if (templateSpec.useDepths) {
+ if (options.depths) {
+ depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;
+ } else {
+ depths = [context];
+ }
+ }
+
+ function main(context /*, options*/) {
+ return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);
+ }
+ main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);
+ return main(context, options);
+ }
+ ret.isTop = true;
+
+ ret._setup = function (options) {
+ if (!options.partial) {
+ container.helpers = container.merge(options.helpers, env.helpers);
+
+ if (templateSpec.usePartial) {
+ container.partials = container.merge(options.partials, env.partials);
+ }
+ if (templateSpec.usePartial || templateSpec.useDecorators) {
+ container.decorators = container.merge(options.decorators, env.decorators);
+ }
+ } else {
+ container.helpers = options.helpers;
+ container.partials = options.partials;
+ container.decorators = options.decorators;
+ }
+ };
+
+ ret._child = function (i, data, blockParams, depths) {
+ if (templateSpec.useBlockParams && !blockParams) {
+ throw new _exception2['default']('must pass block params');
+ }
+ if (templateSpec.useDepths && !depths) {
+ throw new _exception2['default']('must pass parent depths');
+ }
+
+ return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);
+ };
+ return ret;
+ }
+
+ function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {
+ function prog(context) {
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
+
+ var currentDepths = depths;
+ if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {
+ currentDepths = [context].concat(depths);
+ }
+
+ return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);
+ }
+
+ prog = executeDecorators(fn, prog, container, depths, data, blockParams);
+
+ prog.program = i;
+ prog.depth = depths ? depths.length : 0;
+ prog.blockParams = declaredBlockParams || 0;
+ return prog;
+ }
+
+ function resolvePartial(partial, context, options) {
+ if (!partial) {
+ if (options.name === '@partial-block') {
+ partial = options.data['partial-block'];
+ } else {
+ partial = options.partials[options.name];
+ }
+ } else if (!partial.call && !options.name) {
+ // This is a dynamic partial that returned a string
+ options.name = partial;
+ partial = options.partials[partial];
+ }
+ return partial;
+ }
+
+ function invokePartial(partial, context, options) {
+ // Use the current closure context to save the partial-block if this partial
+ var currentPartialBlock = options.data && options.data['partial-block'];
+ options.partial = true;
+ if (options.ids) {
+ options.data.contextPath = options.ids[0] || options.data.contextPath;
+ }
+
+ var partialBlock = undefined;
+ if (options.fn && options.fn !== noop) {
+ (function () {
+ options.data = _base.createFrame(options.data);
+ // Wrapper function to get access to currentPartialBlock from the closure
+ var fn = options.fn;
+ partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
+
+ // Restore the partial-block from the closure for the execution of the block
+ // i.e. the part inside the block of the partial call.
+ options.data = _base.createFrame(options.data);
+ options.data['partial-block'] = currentPartialBlock;
+ return fn(context, options);
+ };
+ if (fn.partials) {
+ options.partials = Utils.extend({}, options.partials, fn.partials);
+ }
+ })();
+ }
+
+ if (partial === undefined && partialBlock) {
+ partial = partialBlock;
+ }
+
+ if (partial === undefined) {
+ throw new _exception2['default']('The partial ' + options.name + ' could not be found');
+ } else if (partial instanceof Function) {
+ return partial(context, options);
+ }
+ }
+
+ function noop() {
+ return '';
+ }
+
+ function initData(context, data) {
+ if (!data || !('root' in data)) {
+ data = data ? _base.createFrame(data) : {};
+ data.root = context;
+ }
+ return data;
+ }
+
+ function executeDecorators(fn, prog, container, depths, data, blockParams) {
+ if (fn.decorator) {
+ var props = {};
+ prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);
+ Utils.extend(prog, props);
+ }
+ return prog;
+ }
+
+/***/ }),
+/* 23 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(24), __esModule: true };
+
+/***/ }),
+/* 24 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ __webpack_require__(25);
+ module.exports = __webpack_require__(30).Object.seal;
+
+/***/ }),
+/* 25 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // 19.1.2.17 Object.seal(O)
+ var isObject = __webpack_require__(26);
+
+ __webpack_require__(27)('seal', function($seal){
+ return function seal(it){
+ return $seal && isObject(it) ? $seal(it) : it;
+ };
+ });
+
+/***/ }),
+/* 26 */
+/***/ (function(module, exports) {
+
+ module.exports = function(it){
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+ };
+
+/***/ }),
+/* 27 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // most Object methods by ES6 should accept primitives
+ var $export = __webpack_require__(28)
+ , core = __webpack_require__(30)
+ , fails = __webpack_require__(33);
+ module.exports = function(KEY, exec){
+ var fn = (core.Object || {})[KEY] || Object[KEY]
+ , exp = {};
+ exp[KEY] = exec(fn);
+ $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
+ };
+
+/***/ }),
+/* 28 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(29)
+ , core = __webpack_require__(30)
+ , ctx = __webpack_require__(31)
+ , PROTOTYPE = 'prototype';
+
+ var $export = function(type, name, source){
+ var IS_FORCED = type & $export.F
+ , IS_GLOBAL = type & $export.G
+ , IS_STATIC = type & $export.S
+ , IS_PROTO = type & $export.P
+ , IS_BIND = type & $export.B
+ , IS_WRAP = type & $export.W
+ , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
+ , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+ , key, own, out;
+ if(IS_GLOBAL)source = name;
+ for(key in source){
+ // contains in native
+ own = !IS_FORCED && target && key in target;
+ if(own && key in exports)continue;
+ // export native or passed
+ out = own ? target[key] : source[key];
+ // prevent global pollution for namespaces
+ exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+ // bind timers to global for call from export context
+ : IS_BIND && own ? ctx(out, global)
+ // wrap global constructors for prevent change them in library
+ : IS_WRAP && target[key] == out ? (function(C){
+ var F = function(param){
+ return this instanceof C ? new C(param) : C(param);
+ };
+ F[PROTOTYPE] = C[PROTOTYPE];
+ return F;
+ // make static versions for prototype methods
+ })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+ if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
+ }
+ };
+ // type bitmap
+ $export.F = 1; // forced
+ $export.G = 2; // global
+ $export.S = 4; // static
+ $export.P = 8; // proto
+ $export.B = 16; // bind
+ $export.W = 32; // wrap
+ module.exports = $export;
+
+/***/ }),
+/* 29 */
+/***/ (function(module, exports) {
+
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ }),
+/* 30 */
+/***/ (function(module, exports) {
+
+ var core = module.exports = {version: '1.2.6'};
+ if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+
+/***/ }),
+/* 31 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // optional / simple context binding
+ var aFunction = __webpack_require__(32);
+ module.exports = function(fn, that, length){
+ aFunction(fn);
+ if(that === undefined)return fn;
+ switch(length){
+ case 1: return function(a){
+ return fn.call(that, a);
+ };
+ case 2: return function(a, b){
+ return fn.call(that, a, b);
+ };
+ case 3: return function(a, b, c){
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function(/* ...args */){
+ return fn.apply(that, arguments);
+ };
+ };
+
+/***/ }),
+/* 32 */
+/***/ (function(module, exports) {
+
+ module.exports = function(it){
+ if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+ return it;
+ };
+
+/***/ }),
+/* 33 */
+/***/ (function(module, exports) {
+
+ module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
+ }
+ };
+
+/***/ }),
+/* 34 */
+/***/ (function(module, exports) {
+
+ /* WEBPACK VAR INJECTION */(function(global) {/* global window */
+ 'use strict';
+
+ exports.__esModule = true;
+
+ exports['default'] = function (Handlebars) {
+ /* istanbul ignore next */
+ var root = typeof global !== 'undefined' ? global : window,
+ $Handlebars = root.Handlebars;
+ /* istanbul ignore next */
+ Handlebars.noConflict = function () {
+ if (root.Handlebars === Handlebars) {
+ root.Handlebars = $Handlebars;
+ }
+ return Handlebars;
+ };
+ };
+
+ module.exports = exports['default'];
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
+
+/***/ }),
+/* 35 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+ var AST = {
+ // Public API used to evaluate derived attributes regarding AST nodes
+ helpers: {
+ // a mustache is definitely a helper if:
+ // * it is an eligible helper, and
+ // * it has at least one parameter or hash segment
+ helperExpression: function helperExpression(node) {
+ return node.type === 'SubExpression' || (node.type === 'MustacheStatement' || node.type === 'BlockStatement') && !!(node.params && node.params.length || node.hash);
+ },
+
+ scopedId: function scopedId(path) {
+ return (/^\.|this\b/.test(path.original)
+ );
+ },
+
+ // an ID is simple if it only has one part, and that part is not
+ // `..` or `this`.
+ simpleId: function simpleId(path) {
+ return path.parts.length === 1 && !AST.helpers.scopedId(path) && !path.depth;
+ }
+ }
+ };
+
+ // Must be exported as an object rather than the root of the module as the jison lexer
+ // must modify the object to operate properly.
+ exports['default'] = AST;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 36 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ var _interopRequireWildcard = __webpack_require__(3)['default'];
+
+ exports.__esModule = true;
+ exports.parse = parse;
+
+ var _parser = __webpack_require__(37);
+
+ var _parser2 = _interopRequireDefault(_parser);
+
+ var _whitespaceControl = __webpack_require__(38);
+
+ var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
+
+ var _helpers = __webpack_require__(40);
+
+ var Helpers = _interopRequireWildcard(_helpers);
+
+ var _utils = __webpack_require__(5);
+
+ exports.parser = _parser2['default'];
+
+ var yy = {};
+ _utils.extend(yy, Helpers);
+
+ function parse(input, options) {
+ // Just return if an already-compiled AST was passed in.
+ if (input.type === 'Program') {
+ return input;
+ }
+
+ _parser2['default'].yy = yy;
+
+ // Altering the shared object here, but this is ok as parser is a sync operation
+ yy.locInfo = function (locInfo) {
+ return new yy.SourceLocation(options && options.srcName, locInfo);
+ };
+
+ var strip = new _whitespaceControl2['default'](options);
+ return strip.accept(_parser2['default'].parse(input));
+ }
+
+/***/ }),
+/* 37 */
+/***/ (function(module, exports) {
+
+ // File ignored in coverage tests via setting in .istanbul.yml
+ /* Jison generated parser */
+ "use strict";
+
+ exports.__esModule = true;
+ var handlebars = (function () {
+ var parser = { trace: function trace() {},
+ yy: {},
+ symbols_: { "error": 2, "root": 3, "program": 4, "EOF": 5, "program_repetition0": 6, "statement": 7, "mustache": 8, "block": 9, "rawBlock": 10, "partial": 11, "partialBlock": 12, "content": 13, "COMMENT": 14, "CONTENT": 15, "openRawBlock": 16, "rawBlock_repetition_plus0": 17, "END_RAW_BLOCK": 18, "OPEN_RAW_BLOCK": 19, "helperName": 20, "openRawBlock_repetition0": 21, "openRawBlock_option0": 22, "CLOSE_RAW_BLOCK": 23, "openBlock": 24, "block_option0": 25, "closeBlock": 26, "openInverse": 27, "block_option1": 28, "OPEN_BLOCK": 29, "openBlock_repetition0": 30, "openBlock_option0": 31, "openBlock_option1": 32, "CLOSE": 33, "OPEN_INVERSE": 34, "openInverse_repetition0": 35, "openInverse_option0": 36, "openInverse_option1": 37, "openInverseChain": 38, "OPEN_INVERSE_CHAIN": 39, "openInverseChain_repetition0": 40, "openInverseChain_option0": 41, "openInverseChain_option1": 42, "inverseAndProgram": 43, "INVERSE": 44, "inverseChain": 45, "inverseChain_option0": 46, "OPEN_ENDBLOCK": 47, "OPEN": 48, "mustache_repetition0": 49, "mustache_option0": 50, "OPEN_UNESCAPED": 51, "mustache_repetition1": 52, "mustache_option1": 53, "CLOSE_UNESCAPED": 54, "OPEN_PARTIAL": 55, "partialName": 56, "partial_repetition0": 57, "partial_option0": 58, "openPartialBlock": 59, "OPEN_PARTIAL_BLOCK": 60, "openPartialBlock_repetition0": 61, "openPartialBlock_option0": 62, "param": 63, "sexpr": 64, "OPEN_SEXPR": 65, "sexpr_repetition0": 66, "sexpr_option0": 67, "CLOSE_SEXPR": 68, "hash": 69, "hash_repetition_plus0": 70, "hashSegment": 71, "ID": 72, "EQUALS": 73, "blockParams": 74, "OPEN_BLOCK_PARAMS": 75, "blockParams_repetition_plus0": 76, "CLOSE_BLOCK_PARAMS": 77, "path": 78, "dataName": 79, "STRING": 80, "NUMBER": 81, "BOOLEAN": 82, "UNDEFINED": 83, "NULL": 84, "DATA": 85, "pathSegments": 86, "SEP": 87, "$accept": 0, "$end": 1 },
+ terminals_: { 2: "error", 5: "EOF", 14: "COMMENT", 15: "CONTENT", 18: "END_RAW_BLOCK", 19: "OPEN_RAW_BLOCK", 23: "CLOSE_RAW_BLOCK", 29: "OPEN_BLOCK", 33: "CLOSE", 34: "OPEN_INVERSE", 39: "OPEN_INVERSE_CHAIN", 44: "INVERSE", 47: "OPEN_ENDBLOCK", 48: "OPEN", 51: "OPEN_UNESCAPED", 54: "CLOSE_UNESCAPED", 55: "OPEN_PARTIAL", 60: "OPEN_PARTIAL_BLOCK", 65: "OPEN_SEXPR", 68: "CLOSE_SEXPR", 72: "ID", 73: "EQUALS", 75: "OPEN_BLOCK_PARAMS", 77: "CLOSE_BLOCK_PARAMS", 80: "STRING", 81: "NUMBER", 82: "BOOLEAN", 83: "UNDEFINED", 84: "NULL", 85: "DATA", 87: "SEP" },
+ productions_: [0, [3, 2], [4, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [13, 1], [10, 3], [16, 5], [9, 4], [9, 4], [24, 6], [27, 6], [38, 6], [43, 2], [45, 3], [45, 1], [26, 3], [8, 5], [8, 5], [11, 5], [12, 3], [59, 5], [63, 1], [63, 1], [64, 5], [69, 1], [71, 3], [74, 3], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [20, 1], [56, 1], [56, 1], [79, 2], [78, 1], [86, 3], [86, 1], [6, 0], [6, 2], [17, 1], [17, 2], [21, 0], [21, 2], [22, 0], [22, 1], [25, 0], [25, 1], [28, 0], [28, 1], [30, 0], [30, 2], [31, 0], [31, 1], [32, 0], [32, 1], [35, 0], [35, 2], [36, 0], [36, 1], [37, 0], [37, 1], [40, 0], [40, 2], [41, 0], [41, 1], [42, 0], [42, 1], [46, 0], [46, 1], [49, 0], [49, 2], [50, 0], [50, 1], [52, 0], [52, 2], [53, 0], [53, 1], [57, 0], [57, 2], [58, 0], [58, 1], [61, 0], [61, 2], [62, 0], [62, 1], [66, 0], [66, 2], [67, 0], [67, 1], [70, 1], [70, 2], [76, 1], [76, 2]],
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
+
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1:
+ return $$[$0 - 1];
+ break;
+ case 2:
+ this.$ = yy.prepareProgram($$[$0]);
+ break;
+ case 3:
+ this.$ = $$[$0];
+ break;
+ case 4:
+ this.$ = $$[$0];
+ break;
+ case 5:
+ this.$ = $$[$0];
+ break;
+ case 6:
+ this.$ = $$[$0];
+ break;
+ case 7:
+ this.$ = $$[$0];
+ break;
+ case 8:
+ this.$ = $$[$0];
+ break;
+ case 9:
+ this.$ = {
+ type: 'CommentStatement',
+ value: yy.stripComment($$[$0]),
+ strip: yy.stripFlags($$[$0], $$[$0]),
+ loc: yy.locInfo(this._$)
+ };
+
+ break;
+ case 10:
+ this.$ = {
+ type: 'ContentStatement',
+ original: $$[$0],
+ value: $$[$0],
+ loc: yy.locInfo(this._$)
+ };
+
+ break;
+ case 11:
+ this.$ = yy.prepareRawBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
+ break;
+ case 12:
+ this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1] };
+ break;
+ case 13:
+ this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], false, this._$);
+ break;
+ case 14:
+ this.$ = yy.prepareBlock($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0], true, this._$);
+ break;
+ case 15:
+ this.$ = { open: $$[$0 - 5], path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
+ break;
+ case 16:
+ this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
+ break;
+ case 17:
+ this.$ = { path: $$[$0 - 4], params: $$[$0 - 3], hash: $$[$0 - 2], blockParams: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 5], $$[$0]) };
+ break;
+ case 18:
+ this.$ = { strip: yy.stripFlags($$[$0 - 1], $$[$0 - 1]), program: $$[$0] };
+ break;
+ case 19:
+ var inverse = yy.prepareBlock($$[$0 - 2], $$[$0 - 1], $$[$0], $$[$0], false, this._$),
+ program = yy.prepareProgram([inverse], $$[$0 - 1].loc);
+ program.chained = true;
+
+ this.$ = { strip: $$[$0 - 2].strip, program: program, chain: true };
+
+ break;
+ case 20:
+ this.$ = $$[$0];
+ break;
+ case 21:
+ this.$ = { path: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 2], $$[$0]) };
+ break;
+ case 22:
+ this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
+ break;
+ case 23:
+ this.$ = yy.prepareMustache($$[$0 - 3], $$[$0 - 2], $$[$0 - 1], $$[$0 - 4], yy.stripFlags($$[$0 - 4], $$[$0]), this._$);
+ break;
+ case 24:
+ this.$ = {
+ type: 'PartialStatement',
+ name: $$[$0 - 3],
+ params: $$[$0 - 2],
+ hash: $$[$0 - 1],
+ indent: '',
+ strip: yy.stripFlags($$[$0 - 4], $$[$0]),
+ loc: yy.locInfo(this._$)
+ };
+
+ break;
+ case 25:
+ this.$ = yy.preparePartialBlock($$[$0 - 2], $$[$0 - 1], $$[$0], this._$);
+ break;
+ case 26:
+ this.$ = { path: $$[$0 - 3], params: $$[$0 - 2], hash: $$[$0 - 1], strip: yy.stripFlags($$[$0 - 4], $$[$0]) };
+ break;
+ case 27:
+ this.$ = $$[$0];
+ break;
+ case 28:
+ this.$ = $$[$0];
+ break;
+ case 29:
+ this.$ = {
+ type: 'SubExpression',
+ path: $$[$0 - 3],
+ params: $$[$0 - 2],
+ hash: $$[$0 - 1],
+ loc: yy.locInfo(this._$)
+ };
+
+ break;
+ case 30:
+ this.$ = { type: 'Hash', pairs: $$[$0], loc: yy.locInfo(this._$) };
+ break;
+ case 31:
+ this.$ = { type: 'HashPair', key: yy.id($$[$0 - 2]), value: $$[$0], loc: yy.locInfo(this._$) };
+ break;
+ case 32:
+ this.$ = yy.id($$[$0 - 1]);
+ break;
+ case 33:
+ this.$ = $$[$0];
+ break;
+ case 34:
+ this.$ = $$[$0];
+ break;
+ case 35:
+ this.$ = { type: 'StringLiteral', value: $$[$0], original: $$[$0], loc: yy.locInfo(this._$) };
+ break;
+ case 36:
+ this.$ = { type: 'NumberLiteral', value: Number($$[$0]), original: Number($$[$0]), loc: yy.locInfo(this._$) };
+ break;
+ case 37:
+ this.$ = { type: 'BooleanLiteral', value: $$[$0] === 'true', original: $$[$0] === 'true', loc: yy.locInfo(this._$) };
+ break;
+ case 38:
+ this.$ = { type: 'UndefinedLiteral', original: undefined, value: undefined, loc: yy.locInfo(this._$) };
+ break;
+ case 39:
+ this.$ = { type: 'NullLiteral', original: null, value: null, loc: yy.locInfo(this._$) };
+ break;
+ case 40:
+ this.$ = $$[$0];
+ break;
+ case 41:
+ this.$ = $$[$0];
+ break;
+ case 42:
+ this.$ = yy.preparePath(true, $$[$0], this._$);
+ break;
+ case 43:
+ this.$ = yy.preparePath(false, $$[$0], this._$);
+ break;
+ case 44:
+ $$[$0 - 2].push({ part: yy.id($$[$0]), original: $$[$0], separator: $$[$0 - 1] });this.$ = $$[$0 - 2];
+ break;
+ case 45:
+ this.$ = [{ part: yy.id($$[$0]), original: $$[$0] }];
+ break;
+ case 46:
+ this.$ = [];
+ break;
+ case 47:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 48:
+ this.$ = [$$[$0]];
+ break;
+ case 49:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 50:
+ this.$ = [];
+ break;
+ case 51:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 58:
+ this.$ = [];
+ break;
+ case 59:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 64:
+ this.$ = [];
+ break;
+ case 65:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 70:
+ this.$ = [];
+ break;
+ case 71:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 78:
+ this.$ = [];
+ break;
+ case 79:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 82:
+ this.$ = [];
+ break;
+ case 83:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 86:
+ this.$ = [];
+ break;
+ case 87:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 90:
+ this.$ = [];
+ break;
+ case 91:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 94:
+ this.$ = [];
+ break;
+ case 95:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 98:
+ this.$ = [$$[$0]];
+ break;
+ case 99:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ case 100:
+ this.$ = [$$[$0]];
+ break;
+ case 101:
+ $$[$0 - 1].push($$[$0]);
+ break;
+ }
+ },
+ table: [{ 3: 1, 4: 2, 5: [2, 46], 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 1: [3] }, { 5: [1, 4] }, { 5: [2, 2], 7: 5, 8: 6, 9: 7, 10: 8, 11: 9, 12: 10, 13: 11, 14: [1, 12], 15: [1, 20], 16: 17, 19: [1, 23], 24: 15, 27: 16, 29: [1, 21], 34: [1, 22], 39: [2, 2], 44: [2, 2], 47: [2, 2], 48: [1, 13], 51: [1, 14], 55: [1, 18], 59: 19, 60: [1, 24] }, { 1: [2, 1] }, { 5: [2, 47], 14: [2, 47], 15: [2, 47], 19: [2, 47], 29: [2, 47], 34: [2, 47], 39: [2, 47], 44: [2, 47], 47: [2, 47], 48: [2, 47], 51: [2, 47], 55: [2, 47], 60: [2, 47] }, { 5: [2, 3], 14: [2, 3], 15: [2, 3], 19: [2, 3], 29: [2, 3], 34: [2, 3], 39: [2, 3], 44: [2, 3], 47: [2, 3], 48: [2, 3], 51: [2, 3], 55: [2, 3], 60: [2, 3] }, { 5: [2, 4], 14: [2, 4], 15: [2, 4], 19: [2, 4], 29: [2, 4], 34: [2, 4], 39: [2, 4], 44: [2, 4], 47: [2, 4], 48: [2, 4], 51: [2, 4], 55: [2, 4], 60: [2, 4] }, { 5: [2, 5], 14: [2, 5], 15: [2, 5], 19: [2, 5], 29: [2, 5], 34: [2, 5], 39: [2, 5], 44: [2, 5], 47: [2, 5], 48: [2, 5], 51: [2, 5], 55: [2, 5], 60: [2, 5] }, { 5: [2, 6], 14: [2, 6], 15: [2, 6], 19: [2, 6], 29: [2, 6], 34: [2, 6], 39: [2, 6], 44: [2, 6], 47: [2, 6], 48: [2, 6], 51: [2, 6], 55: [2, 6], 60: [2, 6] }, { 5: [2, 7], 14: [2, 7], 15: [2, 7], 19: [2, 7], 29: [2, 7], 34: [2, 7], 39: [2, 7], 44: [2, 7], 47: [2, 7], 48: [2, 7], 51: [2, 7], 55: [2, 7], 60: [2, 7] }, { 5: [2, 8], 14: [2, 8], 15: [2, 8], 19: [2, 8], 29: [2, 8], 34: [2, 8], 39: [2, 8], 44: [2, 8], 47: [2, 8], 48: [2, 8], 51: [2, 8], 55: [2, 8], 60: [2, 8] }, { 5: [2, 9], 14: [2, 9], 15: [2, 9], 19: [2, 9], 29: [2, 9], 34: [2, 9], 39: [2, 9], 44: [2, 9], 47: [2, 9], 48: [2, 9], 51: [2, 9], 55: [2, 9], 60: [2, 9] }, { 20: 25, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 36, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 37, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 4: 38, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 13: 40, 15: [1, 20], 17: 39 }, { 20: 42, 56: 41, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 45, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 5: [2, 10], 14: [2, 10], 15: [2, 10], 18: [2, 10], 19: [2, 10], 29: [2, 10], 34: [2, 10], 39: [2, 10], 44: [2, 10], 47: [2, 10], 48: [2, 10], 51: [2, 10], 55: [2, 10], 60: [2, 10] }, { 20: 46, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 47, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 48, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 42, 56: 49, 64: 43, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [2, 78], 49: 50, 65: [2, 78], 72: [2, 78], 80: [2, 78], 81: [2, 78], 82: [2, 78], 83: [2, 78], 84: [2, 78], 85: [2, 78] }, { 23: [2, 33], 33: [2, 33], 54: [2, 33], 65: [2, 33], 68: [2, 33], 72: [2, 33], 75: [2, 33], 80: [2, 33], 81: [2, 33], 82: [2, 33], 83: [2, 33], 84: [2, 33], 85: [2, 33] }, { 23: [2, 34], 33: [2, 34], 54: [2, 34], 65: [2, 34], 68: [2, 34], 72: [2, 34], 75: [2, 34], 80: [2, 34], 81: [2, 34], 82: [2, 34], 83: [2, 34], 84: [2, 34], 85: [2, 34] }, { 23: [2, 35], 33: [2, 35], 54: [2, 35], 65: [2, 35], 68: [2, 35], 72: [2, 35], 75: [2, 35], 80: [2, 35], 81: [2, 35], 82: [2, 35], 83: [2, 35], 84: [2, 35], 85: [2, 35] }, { 23: [2, 36], 33: [2, 36], 54: [2, 36], 65: [2, 36], 68: [2, 36], 72: [2, 36], 75: [2, 36], 80: [2, 36], 81: [2, 36], 82: [2, 36], 83: [2, 36], 84: [2, 36], 85: [2, 36] }, { 23: [2, 37], 33: [2, 37], 54: [2, 37], 65: [2, 37], 68: [2, 37], 72: [2, 37], 75: [2, 37], 80: [2, 37], 81: [2, 37], 82: [2, 37], 83: [2, 37], 84: [2, 37], 85: [2, 37] }, { 23: [2, 38], 33: [2, 38], 54: [2, 38], 65: [2, 38], 68: [2, 38], 72: [2, 38], 75: [2, 38], 80: [2, 38], 81: [2, 38], 82: [2, 38], 83: [2, 38], 84: [2, 38], 85: [2, 38] }, { 23: [2, 39], 33: [2, 39], 54: [2, 39], 65: [2, 39], 68: [2, 39], 72: [2, 39], 75: [2, 39], 80: [2, 39], 81: [2, 39], 82: [2, 39], 83: [2, 39], 84: [2, 39], 85: [2, 39] }, { 23: [2, 43], 33: [2, 43], 54: [2, 43], 65: [2, 43], 68: [2, 43], 72: [2, 43], 75: [2, 43], 80: [2, 43], 81: [2, 43], 82: [2, 43], 83: [2, 43], 84: [2, 43], 85: [2, 43], 87: [1, 51] }, { 72: [1, 35], 86: 52 }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 52: 53, 54: [2, 82], 65: [2, 82], 72: [2, 82], 80: [2, 82], 81: [2, 82], 82: [2, 82], 83: [2, 82], 84: [2, 82], 85: [2, 82] }, { 25: 54, 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 55, 47: [2, 54] }, { 28: 60, 43: 61, 44: [1, 59], 47: [2, 56] }, { 13: 63, 15: [1, 20], 18: [1, 62] }, { 15: [2, 48], 18: [2, 48] }, { 33: [2, 86], 57: 64, 65: [2, 86], 72: [2, 86], 80: [2, 86], 81: [2, 86], 82: [2, 86], 83: [2, 86], 84: [2, 86], 85: [2, 86] }, { 33: [2, 40], 65: [2, 40], 72: [2, 40], 80: [2, 40], 81: [2, 40], 82: [2, 40], 83: [2, 40], 84: [2, 40], 85: [2, 40] }, { 33: [2, 41], 65: [2, 41], 72: [2, 41], 80: [2, 41], 81: [2, 41], 82: [2, 41], 83: [2, 41], 84: [2, 41], 85: [2, 41] }, { 20: 65, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 66, 47: [1, 67] }, { 30: 68, 33: [2, 58], 65: [2, 58], 72: [2, 58], 75: [2, 58], 80: [2, 58], 81: [2, 58], 82: [2, 58], 83: [2, 58], 84: [2, 58], 85: [2, 58] }, { 33: [2, 64], 35: 69, 65: [2, 64], 72: [2, 64], 75: [2, 64], 80: [2, 64], 81: [2, 64], 82: [2, 64], 83: [2, 64], 84: [2, 64], 85: [2, 64] }, { 21: 70, 23: [2, 50], 65: [2, 50], 72: [2, 50], 80: [2, 50], 81: [2, 50], 82: [2, 50], 83: [2, 50], 84: [2, 50], 85: [2, 50] }, { 33: [2, 90], 61: 71, 65: [2, 90], 72: [2, 90], 80: [2, 90], 81: [2, 90], 82: [2, 90], 83: [2, 90], 84: [2, 90], 85: [2, 90] }, { 20: 75, 33: [2, 80], 50: 72, 63: 73, 64: 76, 65: [1, 44], 69: 74, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 72: [1, 80] }, { 23: [2, 42], 33: [2, 42], 54: [2, 42], 65: [2, 42], 68: [2, 42], 72: [2, 42], 75: [2, 42], 80: [2, 42], 81: [2, 42], 82: [2, 42], 83: [2, 42], 84: [2, 42], 85: [2, 42], 87: [1, 51] }, { 20: 75, 53: 81, 54: [2, 84], 63: 82, 64: 76, 65: [1, 44], 69: 83, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 26: 84, 47: [1, 67] }, { 47: [2, 55] }, { 4: 85, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 39: [2, 46], 44: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 47: [2, 20] }, { 20: 86, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 4: 87, 6: 3, 14: [2, 46], 15: [2, 46], 19: [2, 46], 29: [2, 46], 34: [2, 46], 47: [2, 46], 48: [2, 46], 51: [2, 46], 55: [2, 46], 60: [2, 46] }, { 26: 88, 47: [1, 67] }, { 47: [2, 57] }, { 5: [2, 11], 14: [2, 11], 15: [2, 11], 19: [2, 11], 29: [2, 11], 34: [2, 11], 39: [2, 11], 44: [2, 11], 47: [2, 11], 48: [2, 11], 51: [2, 11], 55: [2, 11], 60: [2, 11] }, { 15: [2, 49], 18: [2, 49] }, { 20: 75, 33: [2, 88], 58: 89, 63: 90, 64: 76, 65: [1, 44], 69: 91, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 65: [2, 94], 66: 92, 68: [2, 94], 72: [2, 94], 80: [2, 94], 81: [2, 94], 82: [2, 94], 83: [2, 94], 84: [2, 94], 85: [2, 94] }, { 5: [2, 25], 14: [2, 25], 15: [2, 25], 19: [2, 25], 29: [2, 25], 34: [2, 25], 39: [2, 25], 44: [2, 25], 47: [2, 25], 48: [2, 25], 51: [2, 25], 55: [2, 25], 60: [2, 25] }, { 20: 93, 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 31: 94, 33: [2, 60], 63: 95, 64: 76, 65: [1, 44], 69: 96, 70: 77, 71: 78, 72: [1, 79], 75: [2, 60], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 66], 36: 97, 63: 98, 64: 76, 65: [1, 44], 69: 99, 70: 77, 71: 78, 72: [1, 79], 75: [2, 66], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 22: 100, 23: [2, 52], 63: 101, 64: 76, 65: [1, 44], 69: 102, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 20: 75, 33: [2, 92], 62: 103, 63: 104, 64: 76, 65: [1, 44], 69: 105, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 106] }, { 33: [2, 79], 65: [2, 79], 72: [2, 79], 80: [2, 79], 81: [2, 79], 82: [2, 79], 83: [2, 79], 84: [2, 79], 85: [2, 79] }, { 33: [2, 81] }, { 23: [2, 27], 33: [2, 27], 54: [2, 27], 65: [2, 27], 68: [2, 27], 72: [2, 27], 75: [2, 27], 80: [2, 27], 81: [2, 27], 82: [2, 27], 83: [2, 27], 84: [2, 27], 85: [2, 27] }, { 23: [2, 28], 33: [2, 28], 54: [2, 28], 65: [2, 28], 68: [2, 28], 72: [2, 28], 75: [2, 28], 80: [2, 28], 81: [2, 28], 82: [2, 28], 83: [2, 28], 84: [2, 28], 85: [2, 28] }, { 23: [2, 30], 33: [2, 30], 54: [2, 30], 68: [2, 30], 71: 107, 72: [1, 108], 75: [2, 30] }, { 23: [2, 98], 33: [2, 98], 54: [2, 98], 68: [2, 98], 72: [2, 98], 75: [2, 98] }, { 23: [2, 45], 33: [2, 45], 54: [2, 45], 65: [2, 45], 68: [2, 45], 72: [2, 45], 73: [1, 109], 75: [2, 45], 80: [2, 45], 81: [2, 45], 82: [2, 45], 83: [2, 45], 84: [2, 45], 85: [2, 45], 87: [2, 45] }, { 23: [2, 44], 33: [2, 44], 54: [2, 44], 65: [2, 44], 68: [2, 44], 72: [2, 44], 75: [2, 44], 80: [2, 44], 81: [2, 44], 82: [2, 44], 83: [2, 44], 84: [2, 44], 85: [2, 44], 87: [2, 44] }, { 54: [1, 110] }, { 54: [2, 83], 65: [2, 83], 72: [2, 83], 80: [2, 83], 81: [2, 83], 82: [2, 83], 83: [2, 83], 84: [2, 83], 85: [2, 83] }, { 54: [2, 85] }, { 5: [2, 13], 14: [2, 13], 15: [2, 13], 19: [2, 13], 29: [2, 13], 34: [2, 13], 39: [2, 13], 44: [2, 13], 47: [2, 13], 48: [2, 13], 51: [2, 13], 55: [2, 13], 60: [2, 13] }, { 38: 56, 39: [1, 58], 43: 57, 44: [1, 59], 45: 112, 46: 111, 47: [2, 76] }, { 33: [2, 70], 40: 113, 65: [2, 70], 72: [2, 70], 75: [2, 70], 80: [2, 70], 81: [2, 70], 82: [2, 70], 83: [2, 70], 84: [2, 70], 85: [2, 70] }, { 47: [2, 18] }, { 5: [2, 14], 14: [2, 14], 15: [2, 14], 19: [2, 14], 29: [2, 14], 34: [2, 14], 39: [2, 14], 44: [2, 14], 47: [2, 14], 48: [2, 14], 51: [2, 14], 55: [2, 14], 60: [2, 14] }, { 33: [1, 114] }, { 33: [2, 87], 65: [2, 87], 72: [2, 87], 80: [2, 87], 81: [2, 87], 82: [2, 87], 83: [2, 87], 84: [2, 87], 85: [2, 87] }, { 33: [2, 89] }, { 20: 75, 63: 116, 64: 76, 65: [1, 44], 67: 115, 68: [2, 96], 69: 117, 70: 77, 71: 78, 72: [1, 79], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 33: [1, 118] }, { 32: 119, 33: [2, 62], 74: 120, 75: [1, 121] }, { 33: [2, 59], 65: [2, 59], 72: [2, 59], 75: [2, 59], 80: [2, 59], 81: [2, 59], 82: [2, 59], 83: [2, 59], 84: [2, 59], 85: [2, 59] }, { 33: [2, 61], 75: [2, 61] }, { 33: [2, 68], 37: 122, 74: 123, 75: [1, 121] }, { 33: [2, 65], 65: [2, 65], 72: [2, 65], 75: [2, 65], 80: [2, 65], 81: [2, 65], 82: [2, 65], 83: [2, 65], 84: [2, 65], 85: [2, 65] }, { 33: [2, 67], 75: [2, 67] }, { 23: [1, 124] }, { 23: [2, 51], 65: [2, 51], 72: [2, 51], 80: [2, 51], 81: [2, 51], 82: [2, 51], 83: [2, 51], 84: [2, 51], 85: [2, 51] }, { 23: [2, 53] }, { 33: [1, 125] }, { 33: [2, 91], 65: [2, 91], 72: [2, 91], 80: [2, 91], 81: [2, 91], 82: [2, 91], 83: [2, 91], 84: [2, 91], 85: [2, 91] }, { 33: [2, 93] }, { 5: [2, 22], 14: [2, 22], 15: [2, 22], 19: [2, 22], 29: [2, 22], 34: [2, 22], 39: [2, 22], 44: [2, 22], 47: [2, 22], 48: [2, 22], 51: [2, 22], 55: [2, 22], 60: [2, 22] }, { 23: [2, 99], 33: [2, 99], 54: [2, 99], 68: [2, 99], 72: [2, 99], 75: [2, 99] }, { 73: [1, 109] }, { 20: 75, 63: 126, 64: 76, 65: [1, 44], 72: [1, 35], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 23], 14: [2, 23], 15: [2, 23], 19: [2, 23], 29: [2, 23], 34: [2, 23], 39: [2, 23], 44: [2, 23], 47: [2, 23], 48: [2, 23], 51: [2, 23], 55: [2, 23], 60: [2, 23] }, { 47: [2, 19] }, { 47: [2, 77] }, { 20: 75, 33: [2, 72], 41: 127, 63: 128, 64: 76, 65: [1, 44], 69: 129, 70: 77, 71: 78, 72: [1, 79], 75: [2, 72], 78: 26, 79: 27, 80: [1, 28], 81: [1, 29], 82: [1, 30], 83: [1, 31], 84: [1, 32], 85: [1, 34], 86: 33 }, { 5: [2, 24], 14: [2, 24], 15: [2, 24], 19: [2, 24], 29: [2, 24], 34: [2, 24], 39: [2, 24], 44: [2, 24], 47: [2, 24], 48: [2, 24], 51: [2, 24], 55: [2, 24], 60: [2, 24] }, { 68: [1, 130] }, { 65: [2, 95], 68: [2, 95], 72: [2, 95], 80: [2, 95], 81: [2, 95], 82: [2, 95], 83: [2, 95], 84: [2, 95], 85: [2, 95] }, { 68: [2, 97] }, { 5: [2, 21], 14: [2, 21], 15: [2, 21], 19: [2, 21], 29: [2, 21], 34: [2, 21], 39: [2, 21], 44: [2, 21], 47: [2, 21], 48: [2, 21], 51: [2, 21], 55: [2, 21], 60: [2, 21] }, { 33: [1, 131] }, { 33: [2, 63] }, { 72: [1, 133], 76: 132 }, { 33: [1, 134] }, { 33: [2, 69] }, { 15: [2, 12] }, { 14: [2, 26], 15: [2, 26], 19: [2, 26], 29: [2, 26], 34: [2, 26], 47: [2, 26], 48: [2, 26], 51: [2, 26], 55: [2, 26], 60: [2, 26] }, { 23: [2, 31], 33: [2, 31], 54: [2, 31], 68: [2, 31], 72: [2, 31], 75: [2, 31] }, { 33: [2, 74], 42: 135, 74: 136, 75: [1, 121] }, { 33: [2, 71], 65: [2, 71], 72: [2, 71], 75: [2, 71], 80: [2, 71], 81: [2, 71], 82: [2, 71], 83: [2, 71], 84: [2, 71], 85: [2, 71] }, { 33: [2, 73], 75: [2, 73] }, { 23: [2, 29], 33: [2, 29], 54: [2, 29], 65: [2, 29], 68: [2, 29], 72: [2, 29], 75: [2, 29], 80: [2, 29], 81: [2, 29], 82: [2, 29], 83: [2, 29], 84: [2, 29], 85: [2, 29] }, { 14: [2, 15], 15: [2, 15], 19: [2, 15], 29: [2, 15], 34: [2, 15], 39: [2, 15], 44: [2, 15], 47: [2, 15], 48: [2, 15], 51: [2, 15], 55: [2, 15], 60: [2, 15] }, { 72: [1, 138], 77: [1, 137] }, { 72: [2, 100], 77: [2, 100] }, { 14: [2, 16], 15: [2, 16], 19: [2, 16], 29: [2, 16], 34: [2, 16], 44: [2, 16], 47: [2, 16], 48: [2, 16], 51: [2, 16], 55: [2, 16], 60: [2, 16] }, { 33: [1, 139] }, { 33: [2, 75] }, { 33: [2, 32] }, { 72: [2, 101], 77: [2, 101] }, { 14: [2, 17], 15: [2, 17], 19: [2, 17], 29: [2, 17], 34: [2, 17], 39: [2, 17], 44: [2, 17], 47: [2, 17], 48: [2, 17], 51: [2, 17], 55: [2, 17], 60: [2, 17] }],
+ defaultActions: { 4: [2, 1], 55: [2, 55], 57: [2, 20], 61: [2, 57], 74: [2, 81], 83: [2, 85], 87: [2, 18], 91: [2, 89], 102: [2, 53], 105: [2, 93], 111: [2, 19], 112: [2, 77], 117: [2, 97], 120: [2, 63], 123: [2, 69], 124: [2, 12], 136: [2, 75], 137: [2, 32] },
+ parseError: function parseError(str, hash) {
+ throw new Error(str);
+ },
+ parse: function parse(input) {
+ var self = this,
+ stack = [0],
+ vstack = [null],
+ lstack = [],
+ table = this.table,
+ yytext = "",
+ yylineno = 0,
+ yyleng = 0,
+ recovering = 0,
+ TERROR = 2,
+ EOF = 1;
+ this.lexer.setInput(input);
+ this.lexer.yy = this.yy;
+ this.yy.lexer = this.lexer;
+ this.yy.parser = this;
+ if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
+ var yyloc = this.lexer.yylloc;
+ lstack.push(yyloc);
+ var ranges = this.lexer.options && this.lexer.options.ranges;
+ if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError;
+ function popStack(n) {
+ stack.length = stack.length - 2 * n;
+ vstack.length = vstack.length - n;
+ lstack.length = lstack.length - n;
+ }
+ function lex() {
+ var token;
+ token = self.lexer.lex() || 1;
+ if (typeof token !== "number") {
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol,
+ preErrorSymbol,
+ state,
+ action,
+ a,
+ r,
+ yyval = {},
+ p,
+ len,
+ newState,
+ expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ if (!recovering) {
+ expected = [];
+ for (p in table[state]) if (this.terminals_[p] && p > 2) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ if (this.lexer.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1 ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, { text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected });
+ }
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(this.lexer.yytext);
+ lstack.push(this.lexer.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = this.lexer.yyleng;
+ yytext = this.lexer.yytext;
+ yylineno = this.lexer.yylineno;
+ yyloc = this.lexer.yylloc;
+ if (recovering > 0) recovering--;
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = { first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column };
+ if (ranges) {
+ yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
+ }
+ r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+ /* Jison generated lexer */
+ var lexer = (function () {
+ var lexer = { EOF: 1,
+ parseError: function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ setInput: function setInput(input) {
+ this._input = input;
+ this._more = this._less = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = '';
+ this.conditionStack = ['INITIAL'];
+ this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 };
+ if (this.options.ranges) this.yylloc.range = [0, 0];
+ this.offset = 0;
+ return this;
+ },
+ input: function input() {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) this.yylloc.range[1]++;
+
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ unput: function unput(ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
+ //this.yyleng -= len;
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length - 1);
+ this.matched = this.matched.substr(0, this.matched.length - 1);
+
+ if (lines.length - 1) this.yylineno -= lines.length - 1;
+ var r = this.yylloc.range;
+
+ this.yylloc = { first_line: this.yylloc.first_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
+ };
+
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ return this;
+ },
+ more: function more() {
+ this._more = true;
+ return this;
+ },
+ less: function less(n) {
+ this.unput(this.match.slice(n));
+ },
+ pastInput: function pastInput() {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, "");
+ },
+ upcomingInput: function upcomingInput() {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20 - next.length);
+ }
+ return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
+ },
+ showPosition: function showPosition() {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c + "^";
+ },
+ next: function next() {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) this.done = true;
+
+ var token, match, tempMatch, index, col, lines;
+ if (!this._more) {
+ this.yytext = '';
+ this.match = '';
+ }
+ var rules = this._currentRules();
+ for (var i = 0; i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (!this.options.flex) break;
+ }
+ }
+ if (match) {
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) this.yylineno += lines.length;
+ this.yylloc = { first_line: this.yylloc.last_line,
+ last_line: this.yylineno + 1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length };
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, rules[index], this.conditionStack[this.conditionStack.length - 1]);
+ if (this.done && this._input) this.done = false;
+ if (token) return token;else return;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: "", token: null, line: this.yylineno });
+ }
+ },
+ lex: function lex() {
+ var r = this.next();
+ if (typeof r !== 'undefined') {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ begin: function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ popState: function popState() {
+ return this.conditionStack.pop();
+ },
+ _currentRules: function _currentRules() {
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
+ },
+ topState: function topState() {
+ return this.conditionStack[this.conditionStack.length - 2];
+ },
+ pushState: function begin(condition) {
+ this.begin(condition);
+ } };
+ lexer.options = {};
+ lexer.performAction = function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
+
+ function strip(start, end) {
+ return yy_.yytext = yy_.yytext.substring(start, yy_.yyleng - end + start);
+ }
+
+ var YYSTATE = YY_START;
+ switch ($avoiding_name_collisions) {
+ case 0:
+ if (yy_.yytext.slice(-2) === "\\\\") {
+ strip(0, 1);
+ this.begin("mu");
+ } else if (yy_.yytext.slice(-1) === "\\") {
+ strip(0, 1);
+ this.begin("emu");
+ } else {
+ this.begin("mu");
+ }
+ if (yy_.yytext) return 15;
+
+ break;
+ case 1:
+ return 15;
+ break;
+ case 2:
+ this.popState();
+ return 15;
+
+ break;
+ case 3:
+ this.begin('raw');return 15;
+ break;
+ case 4:
+ this.popState();
+ // Should be using `this.topState()` below, but it currently
+ // returns the second top instead of the first top. Opened an
+ // issue about it at https://github.com/zaach/jison/issues/291
+ if (this.conditionStack[this.conditionStack.length - 1] === 'raw') {
+ return 15;
+ } else {
+ strip(5, 9);
+ return 'END_RAW_BLOCK';
+ }
+
+ break;
+ case 5:
+ return 15;
+ break;
+ case 6:
+ this.popState();
+ return 14;
+
+ break;
+ case 7:
+ return 65;
+ break;
+ case 8:
+ return 68;
+ break;
+ case 9:
+ return 19;
+ break;
+ case 10:
+ this.popState();
+ this.begin('raw');
+ return 23;
+
+ break;
+ case 11:
+ return 55;
+ break;
+ case 12:
+ return 60;
+ break;
+ case 13:
+ return 29;
+ break;
+ case 14:
+ return 47;
+ break;
+ case 15:
+ this.popState();return 44;
+ break;
+ case 16:
+ this.popState();return 44;
+ break;
+ case 17:
+ return 34;
+ break;
+ case 18:
+ return 39;
+ break;
+ case 19:
+ return 51;
+ break;
+ case 20:
+ return 48;
+ break;
+ case 21:
+ this.unput(yy_.yytext);
+ this.popState();
+ this.begin('com');
+
+ break;
+ case 22:
+ this.popState();
+ return 14;
+
+ break;
+ case 23:
+ return 48;
+ break;
+ case 24:
+ return 73;
+ break;
+ case 25:
+ return 72;
+ break;
+ case 26:
+ return 72;
+ break;
+ case 27:
+ return 87;
+ break;
+ case 28:
+ // ignore whitespace
+ break;
+ case 29:
+ this.popState();return 54;
+ break;
+ case 30:
+ this.popState();return 33;
+ break;
+ case 31:
+ yy_.yytext = strip(1, 2).replace(/\\"/g, '"');return 80;
+ break;
+ case 32:
+ yy_.yytext = strip(1, 2).replace(/\\'/g, "'");return 80;
+ break;
+ case 33:
+ return 85;
+ break;
+ case 34:
+ return 82;
+ break;
+ case 35:
+ return 82;
+ break;
+ case 36:
+ return 83;
+ break;
+ case 37:
+ return 84;
+ break;
+ case 38:
+ return 81;
+ break;
+ case 39:
+ return 75;
+ break;
+ case 40:
+ return 77;
+ break;
+ case 41:
+ return 72;
+ break;
+ case 42:
+ yy_.yytext = yy_.yytext.replace(/\\([\\\]])/g, '$1');return 72;
+ break;
+ case 43:
+ return 'INVALID';
+ break;
+ case 44:
+ return 5;
+ break;
+ }
+ };
+ lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/, /^(?:\{\{\{\{(?=[^\/]))/, /^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/, /^(?:[^\x00]*?(?=(\{\{\{\{)))/, /^(?:[\s\S]*?--(~)?\}\})/, /^(?:\()/, /^(?:\))/, /^(?:\{\{\{\{)/, /^(?:\}\}\}\})/, /^(?:\{\{(~)?>)/, /^(?:\{\{(~)?#>)/, /^(?:\{\{(~)?#\*?)/, /^(?:\{\{(~)?\/)/, /^(?:\{\{(~)?\^\s*(~)?\}\})/, /^(?:\{\{(~)?\s*else\s*(~)?\}\})/, /^(?:\{\{(~)?\^)/, /^(?:\{\{(~)?\s*else\b)/, /^(?:\{\{(~)?\{)/, /^(?:\{\{(~)?&)/, /^(?:\{\{(~)?!--)/, /^(?:\{\{(~)?![\s\S]*?\}\})/, /^(?:\{\{(~)?\*?)/, /^(?:=)/, /^(?:\.\.)/, /^(?:\.(?=([=~}\s\/.)|])))/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}(~)?\}\})/, /^(?:(~)?\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@)/, /^(?:true(?=([~}\s)])))/, /^(?:false(?=([~}\s)])))/, /^(?:undefined(?=([~}\s)])))/, /^(?:null(?=([~}\s)])))/, /^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/, /^(?:as\s+\|)/, /^(?:\|)/, /^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/, /^(?:\[(\\\]|[^\]])*\])/, /^(?:.)/, /^(?:$)/];
+ lexer.conditions = { "mu": { "rules": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "inclusive": false }, "emu": { "rules": [2], "inclusive": false }, "com": { "rules": [6], "inclusive": false }, "raw": { "rules": [3, 4, 5], "inclusive": false }, "INITIAL": { "rules": [0, 1, 44], "inclusive": true } };
+ return lexer;
+ })();
+ parser.lexer = lexer;
+ function Parser() {
+ this.yy = {};
+ }Parser.prototype = parser;parser.Parser = Parser;
+ return new Parser();
+ })();exports["default"] = handlebars;
+ module.exports = exports["default"];
+
+/***/ }),
+/* 38 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _visitor = __webpack_require__(39);
+
+ var _visitor2 = _interopRequireDefault(_visitor);
+
+ function WhitespaceControl() {
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+
+ this.options = options;
+ }
+ WhitespaceControl.prototype = new _visitor2['default']();
+
+ WhitespaceControl.prototype.Program = function (program) {
+ var doStandalone = !this.options.ignoreStandalone;
+
+ var isRoot = !this.isRootSeen;
+ this.isRootSeen = true;
+
+ var body = program.body;
+ for (var i = 0, l = body.length; i < l; i++) {
+ var current = body[i],
+ strip = this.accept(current);
+
+ if (!strip) {
+ continue;
+ }
+
+ var _isPrevWhitespace = isPrevWhitespace(body, i, isRoot),
+ _isNextWhitespace = isNextWhitespace(body, i, isRoot),
+ openStandalone = strip.openStandalone && _isPrevWhitespace,
+ closeStandalone = strip.closeStandalone && _isNextWhitespace,
+ inlineStandalone = strip.inlineStandalone && _isPrevWhitespace && _isNextWhitespace;
+
+ if (strip.close) {
+ omitRight(body, i, true);
+ }
+ if (strip.open) {
+ omitLeft(body, i, true);
+ }
+
+ if (doStandalone && inlineStandalone) {
+ omitRight(body, i);
+
+ if (omitLeft(body, i)) {
+ // If we are on a standalone node, save the indent info for partials
+ if (current.type === 'PartialStatement') {
+ // Pull out the whitespace from the final line
+ current.indent = /([ \t]+$)/.exec(body[i - 1].original)[1];
+ }
+ }
+ }
+ if (doStandalone && openStandalone) {
+ omitRight((current.program || current.inverse).body);
+
+ // Strip out the previous content node if it's whitespace only
+ omitLeft(body, i);
+ }
+ if (doStandalone && closeStandalone) {
+ // Always strip the next node
+ omitRight(body, i);
+
+ omitLeft((current.inverse || current.program).body);
+ }
+ }
+
+ return program;
+ };
+
+ WhitespaceControl.prototype.BlockStatement = WhitespaceControl.prototype.DecoratorBlock = WhitespaceControl.prototype.PartialBlockStatement = function (block) {
+ this.accept(block.program);
+ this.accept(block.inverse);
+
+ // Find the inverse program that is involed with whitespace stripping.
+ var program = block.program || block.inverse,
+ inverse = block.program && block.inverse,
+ firstInverse = inverse,
+ lastInverse = inverse;
+
+ if (inverse && inverse.chained) {
+ firstInverse = inverse.body[0].program;
+
+ // Walk the inverse chain to find the last inverse that is actually in the chain.
+ while (lastInverse.chained) {
+ lastInverse = lastInverse.body[lastInverse.body.length - 1].program;
+ }
+ }
+
+ var strip = {
+ open: block.openStrip.open,
+ close: block.closeStrip.close,
+
+ // Determine the standalone candiacy. Basically flag our content as being possibly standalone
+ // so our parent can determine if we actually are standalone
+ openStandalone: isNextWhitespace(program.body),
+ closeStandalone: isPrevWhitespace((firstInverse || program).body)
+ };
+
+ if (block.openStrip.close) {
+ omitRight(program.body, null, true);
+ }
+
+ if (inverse) {
+ var inverseStrip = block.inverseStrip;
+
+ if (inverseStrip.open) {
+ omitLeft(program.body, null, true);
+ }
+
+ if (inverseStrip.close) {
+ omitRight(firstInverse.body, null, true);
+ }
+ if (block.closeStrip.open) {
+ omitLeft(lastInverse.body, null, true);
+ }
+
+ // Find standalone else statments
+ if (!this.options.ignoreStandalone && isPrevWhitespace(program.body) && isNextWhitespace(firstInverse.body)) {
+ omitLeft(program.body);
+ omitRight(firstInverse.body);
+ }
+ } else if (block.closeStrip.open) {
+ omitLeft(program.body, null, true);
+ }
+
+ return strip;
+ };
+
+ WhitespaceControl.prototype.Decorator = WhitespaceControl.prototype.MustacheStatement = function (mustache) {
+ return mustache.strip;
+ };
+
+ WhitespaceControl.prototype.PartialStatement = WhitespaceControl.prototype.CommentStatement = function (node) {
+ /* istanbul ignore next */
+ var strip = node.strip || {};
+ return {
+ inlineStandalone: true,
+ open: strip.open,
+ close: strip.close
+ };
+ };
+
+ function isPrevWhitespace(body, i, isRoot) {
+ if (i === undefined) {
+ i = body.length;
+ }
+
+ // Nodes that end with newlines are considered whitespace (but are special
+ // cased for strip operations)
+ var prev = body[i - 1],
+ sibling = body[i - 2];
+ if (!prev) {
+ return isRoot;
+ }
+
+ if (prev.type === 'ContentStatement') {
+ return (sibling || !isRoot ? /\r?\n\s*?$/ : /(^|\r?\n)\s*?$/).test(prev.original);
+ }
+ }
+ function isNextWhitespace(body, i, isRoot) {
+ if (i === undefined) {
+ i = -1;
+ }
+
+ var next = body[i + 1],
+ sibling = body[i + 2];
+ if (!next) {
+ return isRoot;
+ }
+
+ if (next.type === 'ContentStatement') {
+ return (sibling || !isRoot ? /^\s*?\r?\n/ : /^\s*?(\r?\n|$)/).test(next.original);
+ }
+ }
+
+ // Marks the node to the right of the position as omitted.
+ // I.e. {{foo}}' ' will mark the ' ' node as omitted.
+ //
+ // If i is undefined, then the first child will be marked as such.
+ //
+ // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
+ // content is met.
+ function omitRight(body, i, multiple) {
+ var current = body[i == null ? 0 : i + 1];
+ if (!current || current.type !== 'ContentStatement' || !multiple && current.rightStripped) {
+ return;
+ }
+
+ var original = current.value;
+ current.value = current.value.replace(multiple ? /^\s+/ : /^[ \t]*\r?\n?/, '');
+ current.rightStripped = current.value !== original;
+ }
+
+ // Marks the node to the left of the position as omitted.
+ // I.e. ' '{{foo}} will mark the ' ' node as omitted.
+ //
+ // If i is undefined then the last child will be marked as such.
+ //
+ // If mulitple is truthy then all whitespace will be stripped out until non-whitespace
+ // content is met.
+ function omitLeft(body, i, multiple) {
+ var current = body[i == null ? body.length - 1 : i - 1];
+ if (!current || current.type !== 'ContentStatement' || !multiple && current.leftStripped) {
+ return;
+ }
+
+ // We omit the last node if it's whitespace only and not preceeded by a non-content node.
+ var original = current.value;
+ current.value = current.value.replace(multiple ? /\s+$/ : /[ \t]+$/, '');
+ current.leftStripped = current.value !== original;
+ return current.leftStripped;
+ }
+
+ exports['default'] = WhitespaceControl;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 39 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ function Visitor() {
+ this.parents = [];
+ }
+
+ Visitor.prototype = {
+ constructor: Visitor,
+ mutating: false,
+
+ // Visits a given value. If mutating, will replace the value if necessary.
+ acceptKey: function acceptKey(node, name) {
+ var value = this.accept(node[name]);
+ if (this.mutating) {
+ // Hacky sanity check: This may have a few false positives for type for the helper
+ // methods but will generally do the right thing without a lot of overhead.
+ if (value && !Visitor.prototype[value.type]) {
+ throw new _exception2['default']('Unexpected node type "' + value.type + '" found when accepting ' + name + ' on ' + node.type);
+ }
+ node[name] = value;
+ }
+ },
+
+ // Performs an accept operation with added sanity check to ensure
+ // required keys are not removed.
+ acceptRequired: function acceptRequired(node, name) {
+ this.acceptKey(node, name);
+
+ if (!node[name]) {
+ throw new _exception2['default'](node.type + ' requires ' + name);
+ }
+ },
+
+ // Traverses a given array. If mutating, empty respnses will be removed
+ // for child elements.
+ acceptArray: function acceptArray(array) {
+ for (var i = 0, l = array.length; i < l; i++) {
+ this.acceptKey(array, i);
+
+ if (!array[i]) {
+ array.splice(i, 1);
+ i--;
+ l--;
+ }
+ }
+ },
+
+ accept: function accept(object) {
+ if (!object) {
+ return;
+ }
+
+ /* istanbul ignore next: Sanity code */
+ if (!this[object.type]) {
+ throw new _exception2['default']('Unknown type: ' + object.type, object);
+ }
+
+ if (this.current) {
+ this.parents.unshift(this.current);
+ }
+ this.current = object;
+
+ var ret = this[object.type](object);
+
+ this.current = this.parents.shift();
+
+ if (!this.mutating || ret) {
+ return ret;
+ } else if (ret !== false) {
+ return object;
+ }
+ },
+
+ Program: function Program(program) {
+ this.acceptArray(program.body);
+ },
+
+ MustacheStatement: visitSubExpression,
+ Decorator: visitSubExpression,
+
+ BlockStatement: visitBlock,
+ DecoratorBlock: visitBlock,
+
+ PartialStatement: visitPartial,
+ PartialBlockStatement: function PartialBlockStatement(partial) {
+ visitPartial.call(this, partial);
+
+ this.acceptKey(partial, 'program');
+ },
+
+ ContentStatement: function ContentStatement() /* content */{},
+ CommentStatement: function CommentStatement() /* comment */{},
+
+ SubExpression: visitSubExpression,
+
+ PathExpression: function PathExpression() /* path */{},
+
+ StringLiteral: function StringLiteral() /* string */{},
+ NumberLiteral: function NumberLiteral() /* number */{},
+ BooleanLiteral: function BooleanLiteral() /* bool */{},
+ UndefinedLiteral: function UndefinedLiteral() /* literal */{},
+ NullLiteral: function NullLiteral() /* literal */{},
+
+ Hash: function Hash(hash) {
+ this.acceptArray(hash.pairs);
+ },
+ HashPair: function HashPair(pair) {
+ this.acceptRequired(pair, 'value');
+ }
+ };
+
+ function visitSubExpression(mustache) {
+ this.acceptRequired(mustache, 'path');
+ this.acceptArray(mustache.params);
+ this.acceptKey(mustache, 'hash');
+ }
+ function visitBlock(block) {
+ visitSubExpression.call(this, block);
+
+ this.acceptKey(block, 'program');
+ this.acceptKey(block, 'inverse');
+ }
+ function visitPartial(partial) {
+ this.acceptRequired(partial, 'name');
+ this.acceptArray(partial.params);
+ this.acceptKey(partial, 'hash');
+ }
+
+ exports['default'] = Visitor;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 40 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+ exports.SourceLocation = SourceLocation;
+ exports.id = id;
+ exports.stripFlags = stripFlags;
+ exports.stripComment = stripComment;
+ exports.preparePath = preparePath;
+ exports.prepareMustache = prepareMustache;
+ exports.prepareRawBlock = prepareRawBlock;
+ exports.prepareBlock = prepareBlock;
+ exports.prepareProgram = prepareProgram;
+ exports.preparePartialBlock = preparePartialBlock;
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ function validateClose(open, close) {
+ close = close.path ? close.path.original : close;
+
+ if (open.path.original !== close) {
+ var errorNode = { loc: open.path.loc };
+
+ throw new _exception2['default'](open.path.original + " doesn't match " + close, errorNode);
+ }
+ }
+
+ function SourceLocation(source, locInfo) {
+ this.source = source;
+ this.start = {
+ line: locInfo.first_line,
+ column: locInfo.first_column
+ };
+ this.end = {
+ line: locInfo.last_line,
+ column: locInfo.last_column
+ };
+ }
+
+ function id(token) {
+ if (/^\[.*\]$/.test(token)) {
+ return token.substring(1, token.length - 1);
+ } else {
+ return token;
+ }
+ }
+
+ function stripFlags(open, close) {
+ return {
+ open: open.charAt(2) === '~',
+ close: close.charAt(close.length - 3) === '~'
+ };
+ }
+
+ function stripComment(comment) {
+ return comment.replace(/^\{\{~?!-?-?/, '').replace(/-?-?~?\}\}$/, '');
+ }
+
+ function preparePath(data, parts, loc) {
+ loc = this.locInfo(loc);
+
+ var original = data ? '@' : '',
+ dig = [],
+ depth = 0;
+
+ for (var i = 0, l = parts.length; i < l; i++) {
+ var part = parts[i].part,
+
+ // If we have [] syntax then we do not treat path references as operators,
+ // i.e. foo.[this] resolves to approximately context.foo['this']
+ isLiteral = parts[i].original !== part;
+ original += (parts[i].separator || '') + part;
+
+ if (!isLiteral && (part === '..' || part === '.' || part === 'this')) {
+ if (dig.length > 0) {
+ throw new _exception2['default']('Invalid path: ' + original, { loc: loc });
+ } else if (part === '..') {
+ depth++;
+ }
+ } else {
+ dig.push(part);
+ }
+ }
+
+ return {
+ type: 'PathExpression',
+ data: data,
+ depth: depth,
+ parts: dig,
+ original: original,
+ loc: loc
+ };
+ }
+
+ function prepareMustache(path, params, hash, open, strip, locInfo) {
+ // Must use charAt to support IE pre-10
+ var escapeFlag = open.charAt(3) || open.charAt(2),
+ escaped = escapeFlag !== '{' && escapeFlag !== '&';
+
+ var decorator = /\*/.test(open);
+ return {
+ type: decorator ? 'Decorator' : 'MustacheStatement',
+ path: path,
+ params: params,
+ hash: hash,
+ escaped: escaped,
+ strip: strip,
+ loc: this.locInfo(locInfo)
+ };
+ }
+
+ function prepareRawBlock(openRawBlock, contents, close, locInfo) {
+ validateClose(openRawBlock, close);
+
+ locInfo = this.locInfo(locInfo);
+ var program = {
+ type: 'Program',
+ body: contents,
+ strip: {},
+ loc: locInfo
+ };
+
+ return {
+ type: 'BlockStatement',
+ path: openRawBlock.path,
+ params: openRawBlock.params,
+ hash: openRawBlock.hash,
+ program: program,
+ openStrip: {},
+ inverseStrip: {},
+ closeStrip: {},
+ loc: locInfo
+ };
+ }
+
+ function prepareBlock(openBlock, program, inverseAndProgram, close, inverted, locInfo) {
+ if (close && close.path) {
+ validateClose(openBlock, close);
+ }
+
+ var decorator = /\*/.test(openBlock.open);
+
+ program.blockParams = openBlock.blockParams;
+
+ var inverse = undefined,
+ inverseStrip = undefined;
+
+ if (inverseAndProgram) {
+ if (decorator) {
+ throw new _exception2['default']('Unexpected inverse block on decorator', inverseAndProgram);
+ }
+
+ if (inverseAndProgram.chain) {
+ inverseAndProgram.program.body[0].closeStrip = close.strip;
+ }
+
+ inverseStrip = inverseAndProgram.strip;
+ inverse = inverseAndProgram.program;
+ }
+
+ if (inverted) {
+ inverted = inverse;
+ inverse = program;
+ program = inverted;
+ }
+
+ return {
+ type: decorator ? 'DecoratorBlock' : 'BlockStatement',
+ path: openBlock.path,
+ params: openBlock.params,
+ hash: openBlock.hash,
+ program: program,
+ inverse: inverse,
+ openStrip: openBlock.strip,
+ inverseStrip: inverseStrip,
+ closeStrip: close && close.strip,
+ loc: this.locInfo(locInfo)
+ };
+ }
+
+ function prepareProgram(statements, loc) {
+ if (!loc && statements.length) {
+ var firstLoc = statements[0].loc,
+ lastLoc = statements[statements.length - 1].loc;
+
+ /* istanbul ignore else */
+ if (firstLoc && lastLoc) {
+ loc = {
+ source: firstLoc.source,
+ start: {
+ line: firstLoc.start.line,
+ column: firstLoc.start.column
+ },
+ end: {
+ line: lastLoc.end.line,
+ column: lastLoc.end.column
+ }
+ };
+ }
+ }
+
+ return {
+ type: 'Program',
+ body: statements,
+ strip: {},
+ loc: loc
+ };
+ }
+
+ function preparePartialBlock(open, program, close, locInfo) {
+ validateClose(open, close);
+
+ return {
+ type: 'PartialBlockStatement',
+ name: open.path,
+ params: open.params,
+ hash: open.hash,
+ program: program,
+ openStrip: open.strip,
+ closeStrip: close && close.strip,
+ loc: this.locInfo(locInfo)
+ };
+ }
+
+/***/ }),
+/* 41 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ /* eslint-disable new-cap */
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+ exports.Compiler = Compiler;
+ exports.precompile = precompile;
+ exports.compile = compile;
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ var _utils = __webpack_require__(5);
+
+ var _ast = __webpack_require__(35);
+
+ var _ast2 = _interopRequireDefault(_ast);
+
+ var slice = [].slice;
+
+ function Compiler() {}
+
+ // the foundHelper register will disambiguate helper lookup from finding a
+ // function in a context. This is necessary for mustache compatibility, which
+ // requires that context functions in blocks are evaluated by blockHelperMissing,
+ // and then proceed as if the resulting value was provided to blockHelperMissing.
+
+ Compiler.prototype = {
+ compiler: Compiler,
+
+ equals: function equals(other) {
+ var len = this.opcodes.length;
+ if (other.opcodes.length !== len) {
+ return false;
+ }
+
+ for (var i = 0; i < len; i++) {
+ var opcode = this.opcodes[i],
+ otherOpcode = other.opcodes[i];
+ if (opcode.opcode !== otherOpcode.opcode || !argEquals(opcode.args, otherOpcode.args)) {
+ return false;
+ }
+ }
+
+ // We know that length is the same between the two arrays because they are directly tied
+ // to the opcode behavior above.
+ len = this.children.length;
+ for (var i = 0; i < len; i++) {
+ if (!this.children[i].equals(other.children[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ guid: 0,
+
+ compile: function compile(program, options) {
+ this.sourceNode = [];
+ this.opcodes = [];
+ this.children = [];
+ this.options = options;
+ this.stringParams = options.stringParams;
+ this.trackIds = options.trackIds;
+
+ options.blockParams = options.blockParams || [];
+
+ // These changes will propagate to the other compiler components
+ var knownHelpers = options.knownHelpers;
+ options.knownHelpers = {
+ 'helperMissing': true,
+ 'blockHelperMissing': true,
+ 'each': true,
+ 'if': true,
+ 'unless': true,
+ 'with': true,
+ 'log': true,
+ 'lookup': true
+ };
+ if (knownHelpers) {
+ // the next line should use "Object.keys", but the code has been like this a long time and changing it, might
+ // cause backwards-compatibility issues... It's an old library...
+ // eslint-disable-next-line guard-for-in
+ for (var _name in knownHelpers) {
+ this.options.knownHelpers[_name] = knownHelpers[_name];
+ }
+ }
+
+ return this.accept(program);
+ },
+
+ compileProgram: function compileProgram(program) {
+ var childCompiler = new this.compiler(),
+ // eslint-disable-line new-cap
+ result = childCompiler.compile(program, this.options),
+ guid = this.guid++;
+
+ this.usePartial = this.usePartial || result.usePartial;
+
+ this.children[guid] = result;
+ this.useDepths = this.useDepths || result.useDepths;
+
+ return guid;
+ },
+
+ accept: function accept(node) {
+ /* istanbul ignore next: Sanity code */
+ if (!this[node.type]) {
+ throw new _exception2['default']('Unknown type: ' + node.type, node);
+ }
+
+ this.sourceNode.unshift(node);
+ var ret = this[node.type](node);
+ this.sourceNode.shift();
+ return ret;
+ },
+
+ Program: function Program(program) {
+ this.options.blockParams.unshift(program.blockParams);
+
+ var body = program.body,
+ bodyLength = body.length;
+ for (var i = 0; i < bodyLength; i++) {
+ this.accept(body[i]);
+ }
+
+ this.options.blockParams.shift();
+
+ this.isSimple = bodyLength === 1;
+ this.blockParams = program.blockParams ? program.blockParams.length : 0;
+
+ return this;
+ },
+
+ BlockStatement: function BlockStatement(block) {
+ transformLiteralToPath(block);
+
+ var program = block.program,
+ inverse = block.inverse;
+
+ program = program && this.compileProgram(program);
+ inverse = inverse && this.compileProgram(inverse);
+
+ var type = this.classifySexpr(block);
+
+ if (type === 'helper') {
+ this.helperSexpr(block, program, inverse);
+ } else if (type === 'simple') {
+ this.simpleSexpr(block);
+
+ // now that the simple mustache is resolved, we need to
+ // evaluate it by executing `blockHelperMissing`
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+ this.opcode('emptyHash');
+ this.opcode('blockValue', block.path.original);
+ } else {
+ this.ambiguousSexpr(block, program, inverse);
+
+ // now that the simple mustache is resolved, we need to
+ // evaluate it by executing `blockHelperMissing`
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+ this.opcode('emptyHash');
+ this.opcode('ambiguousBlockValue');
+ }
+
+ this.opcode('append');
+ },
+
+ DecoratorBlock: function DecoratorBlock(decorator) {
+ var program = decorator.program && this.compileProgram(decorator.program);
+ var params = this.setupFullMustacheParams(decorator, program, undefined),
+ path = decorator.path;
+
+ this.useDecorators = true;
+ this.opcode('registerDecorator', params.length, path.original);
+ },
+
+ PartialStatement: function PartialStatement(partial) {
+ this.usePartial = true;
+
+ var program = partial.program;
+ if (program) {
+ program = this.compileProgram(partial.program);
+ }
+
+ var params = partial.params;
+ if (params.length > 1) {
+ throw new _exception2['default']('Unsupported number of partial arguments: ' + params.length, partial);
+ } else if (!params.length) {
+ if (this.options.explicitPartialContext) {
+ this.opcode('pushLiteral', 'undefined');
+ } else {
+ params.push({ type: 'PathExpression', parts: [], depth: 0 });
+ }
+ }
+
+ var partialName = partial.name.original,
+ isDynamic = partial.name.type === 'SubExpression';
+ if (isDynamic) {
+ this.accept(partial.name);
+ }
+
+ this.setupFullMustacheParams(partial, program, undefined, true);
+
+ var indent = partial.indent || '';
+ if (this.options.preventIndent && indent) {
+ this.opcode('appendContent', indent);
+ indent = '';
+ }
+
+ this.opcode('invokePartial', isDynamic, partialName, indent);
+ this.opcode('append');
+ },
+ PartialBlockStatement: function PartialBlockStatement(partialBlock) {
+ this.PartialStatement(partialBlock);
+ },
+
+ MustacheStatement: function MustacheStatement(mustache) {
+ this.SubExpression(mustache);
+
+ if (mustache.escaped && !this.options.noEscape) {
+ this.opcode('appendEscaped');
+ } else {
+ this.opcode('append');
+ }
+ },
+ Decorator: function Decorator(decorator) {
+ this.DecoratorBlock(decorator);
+ },
+
+ ContentStatement: function ContentStatement(content) {
+ if (content.value) {
+ this.opcode('appendContent', content.value);
+ }
+ },
+
+ CommentStatement: function CommentStatement() {},
+
+ SubExpression: function SubExpression(sexpr) {
+ transformLiteralToPath(sexpr);
+ var type = this.classifySexpr(sexpr);
+
+ if (type === 'simple') {
+ this.simpleSexpr(sexpr);
+ } else if (type === 'helper') {
+ this.helperSexpr(sexpr);
+ } else {
+ this.ambiguousSexpr(sexpr);
+ }
+ },
+ ambiguousSexpr: function ambiguousSexpr(sexpr, program, inverse) {
+ var path = sexpr.path,
+ name = path.parts[0],
+ isBlock = program != null || inverse != null;
+
+ this.opcode('getContext', path.depth);
+
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+
+ path.strict = true;
+ this.accept(path);
+
+ this.opcode('invokeAmbiguous', name, isBlock);
+ },
+
+ simpleSexpr: function simpleSexpr(sexpr) {
+ var path = sexpr.path;
+ path.strict = true;
+ this.accept(path);
+ this.opcode('resolvePossibleLambda');
+ },
+
+ helperSexpr: function helperSexpr(sexpr, program, inverse) {
+ var params = this.setupFullMustacheParams(sexpr, program, inverse),
+ path = sexpr.path,
+ name = path.parts[0];
+
+ if (this.options.knownHelpers[name]) {
+ this.opcode('invokeKnownHelper', params.length, name);
+ } else if (this.options.knownHelpersOnly) {
+ throw new _exception2['default']('You specified knownHelpersOnly, but used the unknown helper ' + name, sexpr);
+ } else {
+ path.strict = true;
+ path.falsy = true;
+
+ this.accept(path);
+ this.opcode('invokeHelper', params.length, path.original, _ast2['default'].helpers.simpleId(path));
+ }
+ },
+
+ PathExpression: function PathExpression(path) {
+ this.addDepth(path.depth);
+ this.opcode('getContext', path.depth);
+
+ var name = path.parts[0],
+ scoped = _ast2['default'].helpers.scopedId(path),
+ blockParamId = !path.depth && !scoped && this.blockParamIndex(name);
+
+ if (blockParamId) {
+ this.opcode('lookupBlockParam', blockParamId, path.parts);
+ } else if (!name) {
+ // Context reference, i.e. `{{foo .}}` or `{{foo ..}}`
+ this.opcode('pushContext');
+ } else if (path.data) {
+ this.options.data = true;
+ this.opcode('lookupData', path.depth, path.parts, path.strict);
+ } else {
+ this.opcode('lookupOnContext', path.parts, path.falsy, path.strict, scoped);
+ }
+ },
+
+ StringLiteral: function StringLiteral(string) {
+ this.opcode('pushString', string.value);
+ },
+
+ NumberLiteral: function NumberLiteral(number) {
+ this.opcode('pushLiteral', number.value);
+ },
+
+ BooleanLiteral: function BooleanLiteral(bool) {
+ this.opcode('pushLiteral', bool.value);
+ },
+
+ UndefinedLiteral: function UndefinedLiteral() {
+ this.opcode('pushLiteral', 'undefined');
+ },
+
+ NullLiteral: function NullLiteral() {
+ this.opcode('pushLiteral', 'null');
+ },
+
+ Hash: function Hash(hash) {
+ var pairs = hash.pairs,
+ i = 0,
+ l = pairs.length;
+
+ this.opcode('pushHash');
+
+ for (; i < l; i++) {
+ this.pushParam(pairs[i].value);
+ }
+ while (i--) {
+ this.opcode('assignToHash', pairs[i].key);
+ }
+ this.opcode('popHash');
+ },
+
+ // HELPERS
+ opcode: function opcode(name) {
+ this.opcodes.push({ opcode: name, args: slice.call(arguments, 1), loc: this.sourceNode[0].loc });
+ },
+
+ addDepth: function addDepth(depth) {
+ if (!depth) {
+ return;
+ }
+
+ this.useDepths = true;
+ },
+
+ classifySexpr: function classifySexpr(sexpr) {
+ var isSimple = _ast2['default'].helpers.simpleId(sexpr.path);
+
+ var isBlockParam = isSimple && !!this.blockParamIndex(sexpr.path.parts[0]);
+
+ // a mustache is an eligible helper if:
+ // * its id is simple (a single part, not `this` or `..`)
+ var isHelper = !isBlockParam && _ast2['default'].helpers.helperExpression(sexpr);
+
+ // if a mustache is an eligible helper but not a definite
+ // helper, it is ambiguous, and will be resolved in a later
+ // pass or at runtime.
+ var isEligible = !isBlockParam && (isHelper || isSimple);
+
+ // if ambiguous, we can possibly resolve the ambiguity now
+ // An eligible helper is one that does not have a complex path, i.e. `this.foo`, `../foo` etc.
+ if (isEligible && !isHelper) {
+ var _name2 = sexpr.path.parts[0],
+ options = this.options;
+
+ if (options.knownHelpers[_name2]) {
+ isHelper = true;
+ } else if (options.knownHelpersOnly) {
+ isEligible = false;
+ }
+ }
+
+ if (isHelper) {
+ return 'helper';
+ } else if (isEligible) {
+ return 'ambiguous';
+ } else {
+ return 'simple';
+ }
+ },
+
+ pushParams: function pushParams(params) {
+ for (var i = 0, l = params.length; i < l; i++) {
+ this.pushParam(params[i]);
+ }
+ },
+
+ pushParam: function pushParam(val) {
+ var value = val.value != null ? val.value : val.original || '';
+
+ if (this.stringParams) {
+ if (value.replace) {
+ value = value.replace(/^(\.?\.\/)*/g, '').replace(/\//g, '.');
+ }
+
+ if (val.depth) {
+ this.addDepth(val.depth);
+ }
+ this.opcode('getContext', val.depth || 0);
+ this.opcode('pushStringParam', value, val.type);
+
+ if (val.type === 'SubExpression') {
+ // SubExpressions get evaluated and passed in
+ // in string params mode.
+ this.accept(val);
+ }
+ } else {
+ if (this.trackIds) {
+ var blockParamIndex = undefined;
+ if (val.parts && !_ast2['default'].helpers.scopedId(val) && !val.depth) {
+ blockParamIndex = this.blockParamIndex(val.parts[0]);
+ }
+ if (blockParamIndex) {
+ var blockParamChild = val.parts.slice(1).join('.');
+ this.opcode('pushId', 'BlockParam', blockParamIndex, blockParamChild);
+ } else {
+ value = val.original || value;
+ if (value.replace) {
+ value = value.replace(/^this(?:\.|$)/, '').replace(/^\.\//, '').replace(/^\.$/, '');
+ }
+
+ this.opcode('pushId', val.type, value);
+ }
+ }
+ this.accept(val);
+ }
+ },
+
+ setupFullMustacheParams: function setupFullMustacheParams(sexpr, program, inverse, omitEmpty) {
+ var params = sexpr.params;
+ this.pushParams(params);
+
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+
+ if (sexpr.hash) {
+ this.accept(sexpr.hash);
+ } else {
+ this.opcode('emptyHash', omitEmpty);
+ }
+
+ return params;
+ },
+
+ blockParamIndex: function blockParamIndex(name) {
+ for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {
+ var blockParams = this.options.blockParams[depth],
+ param = blockParams && _utils.indexOf(blockParams, name);
+ if (blockParams && param >= 0) {
+ return [depth, param];
+ }
+ }
+ }
+ };
+
+ function precompile(input, options, env) {
+ if (input == null || typeof input !== 'string' && input.type !== 'Program') {
+ throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.precompile. You passed ' + input);
+ }
+
+ options = options || {};
+ if (!('data' in options)) {
+ options.data = true;
+ }
+ if (options.compat) {
+ options.useDepths = true;
+ }
+
+ var ast = env.parse(input, options),
+ environment = new env.Compiler().compile(ast, options);
+ return new env.JavaScriptCompiler().compile(environment, options);
+ }
+
+ function compile(input, options, env) {
+ if (options === undefined) options = {};
+
+ if (input == null || typeof input !== 'string' && input.type !== 'Program') {
+ throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
+ }
+
+ options = _utils.extend({}, options);
+ if (!('data' in options)) {
+ options.data = true;
+ }
+ if (options.compat) {
+ options.useDepths = true;
+ }
+
+ var compiled = undefined;
+
+ function compileInput() {
+ var ast = env.parse(input, options),
+ environment = new env.Compiler().compile(ast, options),
+ templateSpec = new env.JavaScriptCompiler().compile(environment, options, undefined, true);
+ return env.template(templateSpec);
+ }
+
+ // Template is only compiled on first use and cached after that point.
+ function ret(context, execOptions) {
+ if (!compiled) {
+ compiled = compileInput();
+ }
+ return compiled.call(this, context, execOptions);
+ }
+ ret._setup = function (setupOptions) {
+ if (!compiled) {
+ compiled = compileInput();
+ }
+ return compiled._setup(setupOptions);
+ };
+ ret._child = function (i, data, blockParams, depths) {
+ if (!compiled) {
+ compiled = compileInput();
+ }
+ return compiled._child(i, data, blockParams, depths);
+ };
+ return ret;
+ }
+
+ function argEquals(a, b) {
+ if (a === b) {
+ return true;
+ }
+
+ if (_utils.isArray(a) && _utils.isArray(b) && a.length === b.length) {
+ for (var i = 0; i < a.length; i++) {
+ if (!argEquals(a[i], b[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+
+ function transformLiteralToPath(sexpr) {
+ if (!sexpr.path.parts) {
+ var literal = sexpr.path;
+ // Casting to string here to make false and 0 literal values play nicely with the rest
+ // of the system.
+ sexpr.path = {
+ type: 'PathExpression',
+ data: false,
+ depth: 0,
+ parts: [literal.original + ''],
+ original: literal.original + '',
+ loc: literal.loc
+ };
+ }
+ }
+
+/***/ }),
+/* 42 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(1)['default'];
+
+ exports.__esModule = true;
+
+ var _base = __webpack_require__(4);
+
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
+ var _utils = __webpack_require__(5);
+
+ var _codeGen = __webpack_require__(43);
+
+ var _codeGen2 = _interopRequireDefault(_codeGen);
+
+ function Literal(value) {
+ this.value = value;
+ }
+
+ function JavaScriptCompiler() {}
+
+ JavaScriptCompiler.prototype = {
+ // PUBLIC API: You can override these methods in a subclass to provide
+ // alternative compiled forms for name lookup and buffering semantics
+ nameLookup: function nameLookup(parent, name /* , type*/) {
+ if (name === 'constructor') {
+ return ['(', parent, '.propertyIsEnumerable(\'constructor\') ? ', parent, '.constructor : undefined', ')'];
+ }
+ if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+ return [parent, '.', name];
+ } else {
+ return [parent, '[', JSON.stringify(name), ']'];
+ }
+ },
+ depthedLookup: function depthedLookup(name) {
+ return [this.aliasable('container.lookup'), '(depths, "', name, '")'];
+ },
+
+ compilerInfo: function compilerInfo() {
+ var revision = _base.COMPILER_REVISION,
+ versions = _base.REVISION_CHANGES[revision];
+ return [revision, versions];
+ },
+
+ appendToBuffer: function appendToBuffer(source, location, explicit) {
+ // Force a source as this simplifies the merge logic.
+ if (!_utils.isArray(source)) {
+ source = [source];
+ }
+ source = this.source.wrap(source, location);
+
+ if (this.environment.isSimple) {
+ return ['return ', source, ';'];
+ } else if (explicit) {
+ // This is a case where the buffer operation occurs as a child of another
+ // construct, generally braces. We have to explicitly output these buffer
+ // operations to ensure that the emitted code goes in the correct location.
+ return ['buffer += ', source, ';'];
+ } else {
+ source.appendToBuffer = true;
+ return source;
+ }
+ },
+
+ initializeBuffer: function initializeBuffer() {
+ return this.quotedString('');
+ },
+ // END PUBLIC API
+
+ compile: function compile(environment, options, context, asObject) {
+ this.environment = environment;
+ this.options = options;
+ this.stringParams = this.options.stringParams;
+ this.trackIds = this.options.trackIds;
+ this.precompile = !asObject;
+
+ this.name = this.environment.name;
+ this.isChild = !!context;
+ this.context = context || {
+ decorators: [],
+ programs: [],
+ environments: []
+ };
+
+ this.preamble();
+
+ this.stackSlot = 0;
+ this.stackVars = [];
+ this.aliases = {};
+ this.registers = { list: [] };
+ this.hashes = [];
+ this.compileStack = [];
+ this.inlineStack = [];
+ this.blockParams = [];
+
+ this.compileChildren(environment, options);
+
+ this.useDepths = this.useDepths || environment.useDepths || environment.useDecorators || this.options.compat;
+ this.useBlockParams = this.useBlockParams || environment.useBlockParams;
+
+ var opcodes = environment.opcodes,
+ opcode = undefined,
+ firstLoc = undefined,
+ i = undefined,
+ l = undefined;
+
+ for (i = 0, l = opcodes.length; i < l; i++) {
+ opcode = opcodes[i];
+
+ this.source.currentLocation = opcode.loc;
+ firstLoc = firstLoc || opcode.loc;
+ this[opcode.opcode].apply(this, opcode.args);
+ }
+
+ // Flush any trailing content that might be pending.
+ this.source.currentLocation = firstLoc;
+ this.pushSource('');
+
+ /* istanbul ignore next */
+ if (this.stackSlot || this.inlineStack.length || this.compileStack.length) {
+ throw new _exception2['default']('Compile completed with content left on stack');
+ }
+
+ if (!this.decorators.isEmpty()) {
+ this.useDecorators = true;
+
+ this.decorators.prepend('var decorators = container.decorators;\n');
+ this.decorators.push('return fn;');
+
+ if (asObject) {
+ this.decorators = Function.apply(this, ['fn', 'props', 'container', 'depth0', 'data', 'blockParams', 'depths', this.decorators.merge()]);
+ } else {
+ this.decorators.prepend('function(fn, props, container, depth0, data, blockParams, depths) {\n');
+ this.decorators.push('}\n');
+ this.decorators = this.decorators.merge();
+ }
+ } else {
+ this.decorators = undefined;
+ }
+
+ var fn = this.createFunctionContext(asObject);
+ if (!this.isChild) {
+ var ret = {
+ compiler: this.compilerInfo(),
+ main: fn
+ };
+
+ if (this.decorators) {
+ ret.main_d = this.decorators; // eslint-disable-line camelcase
+ ret.useDecorators = true;
+ }
+
+ var _context = this.context;
+ var programs = _context.programs;
+ var decorators = _context.decorators;
+
+ for (i = 0, l = programs.length; i < l; i++) {
+ if (programs[i]) {
+ ret[i] = programs[i];
+ if (decorators[i]) {
+ ret[i + '_d'] = decorators[i];
+ ret.useDecorators = true;
+ }
+ }
+ }
+
+ if (this.environment.usePartial) {
+ ret.usePartial = true;
+ }
+ if (this.options.data) {
+ ret.useData = true;
+ }
+ if (this.useDepths) {
+ ret.useDepths = true;
+ }
+ if (this.useBlockParams) {
+ ret.useBlockParams = true;
+ }
+ if (this.options.compat) {
+ ret.compat = true;
+ }
+
+ if (!asObject) {
+ ret.compiler = JSON.stringify(ret.compiler);
+
+ this.source.currentLocation = { start: { line: 1, column: 0 } };
+ ret = this.objectLiteral(ret);
+
+ if (options.srcName) {
+ ret = ret.toStringWithSourceMap({ file: options.destName });
+ ret.map = ret.map && ret.map.toString();
+ } else {
+ ret = ret.toString();
+ }
+ } else {
+ ret.compilerOptions = this.options;
+ }
+
+ return ret;
+ } else {
+ return fn;
+ }
+ },
+
+ preamble: function preamble() {
+ // track the last context pushed into place to allow skipping the
+ // getContext opcode when it would be a noop
+ this.lastContext = 0;
+ this.source = new _codeGen2['default'](this.options.srcName);
+ this.decorators = new _codeGen2['default'](this.options.srcName);
+ },
+
+ createFunctionContext: function createFunctionContext(asObject) {
+ var varDeclarations = '';
+
+ var locals = this.stackVars.concat(this.registers.list);
+ if (locals.length > 0) {
+ varDeclarations += ', ' + locals.join(', ');
+ }
+
+ // Generate minimizer alias mappings
+ //
+ // When using true SourceNodes, this will update all references to the given alias
+ // as the source nodes are reused in situ. For the non-source node compilation mode,
+ // aliases will not be used, but this case is already being run on the client and
+ // we aren't concern about minimizing the template size.
+ var aliasCount = 0;
+ for (var alias in this.aliases) {
+ // eslint-disable-line guard-for-in
+ var node = this.aliases[alias];
+
+ if (this.aliases.hasOwnProperty(alias) && node.children && node.referenceCount > 1) {
+ varDeclarations += ', alias' + ++aliasCount + '=' + alias;
+ node.children[0] = 'alias' + aliasCount;
+ }
+ }
+
+ var params = ['container', 'depth0', 'helpers', 'partials', 'data'];
+
+ if (this.useBlockParams || this.useDepths) {
+ params.push('blockParams');
+ }
+ if (this.useDepths) {
+ params.push('depths');
+ }
+
+ // Perform a second pass over the output to merge content when possible
+ var source = this.mergeSource(varDeclarations);
+
+ if (asObject) {
+ params.push(source);
+
+ return Function.apply(this, params);
+ } else {
+ return this.source.wrap(['function(', params.join(','), ') {\n ', source, '}']);
+ }
+ },
+ mergeSource: function mergeSource(varDeclarations) {
+ var isSimple = this.environment.isSimple,
+ appendOnly = !this.forceBuffer,
+ appendFirst = undefined,
+ sourceSeen = undefined,
+ bufferStart = undefined,
+ bufferEnd = undefined;
+ this.source.each(function (line) {
+ if (line.appendToBuffer) {
+ if (bufferStart) {
+ line.prepend(' + ');
+ } else {
+ bufferStart = line;
+ }
+ bufferEnd = line;
+ } else {
+ if (bufferStart) {
+ if (!sourceSeen) {
+ appendFirst = true;
+ } else {
+ bufferStart.prepend('buffer += ');
+ }
+ bufferEnd.add(';');
+ bufferStart = bufferEnd = undefined;
+ }
+
+ sourceSeen = true;
+ if (!isSimple) {
+ appendOnly = false;
+ }
+ }
+ });
+
+ if (appendOnly) {
+ if (bufferStart) {
+ bufferStart.prepend('return ');
+ bufferEnd.add(';');
+ } else if (!sourceSeen) {
+ this.source.push('return "";');
+ }
+ } else {
+ varDeclarations += ', buffer = ' + (appendFirst ? '' : this.initializeBuffer());
+
+ if (bufferStart) {
+ bufferStart.prepend('return buffer + ');
+ bufferEnd.add(';');
+ } else {
+ this.source.push('return buffer;');
+ }
+ }
+
+ if (varDeclarations) {
+ this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n'));
+ }
+
+ return this.source.merge();
+ },
+
+ // [blockValue]
+ //
+ // On stack, before: hash, inverse, program, value
+ // On stack, after: return value of blockHelperMissing
+ //
+ // The purpose of this opcode is to take a block of the form
+ // `{{#this.foo}}...{{/this.foo}}`, resolve the value of `foo`, and
+ // replace it on the stack with the result of properly
+ // invoking blockHelperMissing.
+ blockValue: function blockValue(name) {
+ var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
+ params = [this.contextName(0)];
+ this.setupHelperArgs(name, 0, params);
+
+ var blockName = this.popStack();
+ params.splice(1, 0, blockName);
+
+ this.push(this.source.functionCall(blockHelperMissing, 'call', params));
+ },
+
+ // [ambiguousBlockValue]
+ //
+ // On stack, before: hash, inverse, program, value
+ // Compiler value, before: lastHelper=value of last found helper, if any
+ // On stack, after, if no lastHelper: same as [blockValue]
+ // On stack, after, if lastHelper: value
+ ambiguousBlockValue: function ambiguousBlockValue() {
+ // We're being a bit cheeky and reusing the options value from the prior exec
+ var blockHelperMissing = this.aliasable('helpers.blockHelperMissing'),
+ params = [this.contextName(0)];
+ this.setupHelperArgs('', 0, params, true);
+
+ this.flushInline();
+
+ var current = this.topStack();
+ params.splice(1, 0, current);
+
+ this.pushSource(['if (!', this.lastHelper, ') { ', current, ' = ', this.source.functionCall(blockHelperMissing, 'call', params), '}']);
+ },
+
+ // [appendContent]
+ //
+ // On stack, before: ...
+ // On stack, after: ...
+ //
+ // Appends the string value of `content` to the current buffer
+ appendContent: function appendContent(content) {
+ if (this.pendingContent) {
+ content = this.pendingContent + content;
+ } else {
+ this.pendingLocation = this.source.currentLocation;
+ }
+
+ this.pendingContent = content;
+ },
+
+ // [append]
+ //
+ // On stack, before: value, ...
+ // On stack, after: ...
+ //
+ // Coerces `value` to a String and appends it to the current buffer.
+ //
+ // If `value` is truthy, or 0, it is coerced into a string and appended
+ // Otherwise, the empty string is appended
+ append: function append() {
+ if (this.isInline()) {
+ this.replaceStack(function (current) {
+ return [' != null ? ', current, ' : ""'];
+ });
+
+ this.pushSource(this.appendToBuffer(this.popStack()));
+ } else {
+ var local = this.popStack();
+ this.pushSource(['if (', local, ' != null) { ', this.appendToBuffer(local, undefined, true), ' }']);
+ if (this.environment.isSimple) {
+ this.pushSource(['else { ', this.appendToBuffer("''", undefined, true), ' }']);
+ }
+ }
+ },
+
+ // [appendEscaped]
+ //
+ // On stack, before: value, ...
+ // On stack, after: ...
+ //
+ // Escape `value` and append it to the buffer
+ appendEscaped: function appendEscaped() {
+ this.pushSource(this.appendToBuffer([this.aliasable('container.escapeExpression'), '(', this.popStack(), ')']));
+ },
+
+ // [getContext]
+ //
+ // On stack, before: ...
+ // On stack, after: ...
+ // Compiler value, after: lastContext=depth
+ //
+ // Set the value of the `lastContext` compiler value to the depth
+ getContext: function getContext(depth) {
+ this.lastContext = depth;
+ },
+
+ // [pushContext]
+ //
+ // On stack, before: ...
+ // On stack, after: currentContext, ...
+ //
+ // Pushes the value of the current context onto the stack.
+ pushContext: function pushContext() {
+ this.pushStackLiteral(this.contextName(this.lastContext));
+ },
+
+ // [lookupOnContext]
+ //
+ // On stack, before: ...
+ // On stack, after: currentContext[name], ...
+ //
+ // Looks up the value of `name` on the current context and pushes
+ // it onto the stack.
+ lookupOnContext: function lookupOnContext(parts, falsy, strict, scoped) {
+ var i = 0;
+
+ if (!scoped && this.options.compat && !this.lastContext) {
+ // The depthed query is expected to handle the undefined logic for the root level that
+ // is implemented below, so we evaluate that directly in compat mode
+ this.push(this.depthedLookup(parts[i++]));
+ } else {
+ this.pushContext();
+ }
+
+ this.resolvePath('context', parts, i, falsy, strict);
+ },
+
+ // [lookupBlockParam]
+ //
+ // On stack, before: ...
+ // On stack, after: blockParam[name], ...
+ //
+ // Looks up the value of `parts` on the given block param and pushes
+ // it onto the stack.
+ lookupBlockParam: function lookupBlockParam(blockParamId, parts) {
+ this.useBlockParams = true;
+
+ this.push(['blockParams[', blockParamId[0], '][', blockParamId[1], ']']);
+ this.resolvePath('context', parts, 1);
+ },
+
+ // [lookupData]
+ //
+ // On stack, before: ...
+ // On stack, after: data, ...
+ //
+ // Push the data lookup operator
+ lookupData: function lookupData(depth, parts, strict) {
+ if (!depth) {
+ this.pushStackLiteral('data');
+ } else {
+ this.pushStackLiteral('container.data(data, ' + depth + ')');
+ }
+
+ this.resolvePath('data', parts, 0, true, strict);
+ },
+
+ resolvePath: function resolvePath(type, parts, i, falsy, strict) {
+ // istanbul ignore next
+
+ var _this = this;
+
+ if (this.options.strict || this.options.assumeObjects) {
+ this.push(strictLookup(this.options.strict && strict, this, parts, type));
+ return;
+ }
+
+ var len = parts.length;
+ for (; i < len; i++) {
+ /* eslint-disable no-loop-func */
+ this.replaceStack(function (current) {
+ var lookup = _this.nameLookup(current, parts[i], type);
+ // We want to ensure that zero and false are handled properly if the context (falsy flag)
+ // needs to have the special handling for these values.
+ if (!falsy) {
+ return [' != null ? ', lookup, ' : ', current];
+ } else {
+ // Otherwise we can use generic falsy handling
+ return [' && ', lookup];
+ }
+ });
+ /* eslint-enable no-loop-func */
+ }
+ },
+
+ // [resolvePossibleLambda]
+ //
+ // On stack, before: value, ...
+ // On stack, after: resolved value, ...
+ //
+ // If the `value` is a lambda, replace it on the stack by
+ // the return value of the lambda
+ resolvePossibleLambda: function resolvePossibleLambda() {
+ this.push([this.aliasable('container.lambda'), '(', this.popStack(), ', ', this.contextName(0), ')']);
+ },
+
+ // [pushStringParam]
+ //
+ // On stack, before: ...
+ // On stack, after: string, currentContext, ...
+ //
+ // This opcode is designed for use in string mode, which
+ // provides the string value of a parameter along with its
+ // depth rather than resolving it immediately.
+ pushStringParam: function pushStringParam(string, type) {
+ this.pushContext();
+ this.pushString(type);
+
+ // If it's a subexpression, the string result
+ // will be pushed after this opcode.
+ if (type !== 'SubExpression') {
+ if (typeof string === 'string') {
+ this.pushString(string);
+ } else {
+ this.pushStackLiteral(string);
+ }
+ }
+ },
+
+ emptyHash: function emptyHash(omitEmpty) {
+ if (this.trackIds) {
+ this.push('{}'); // hashIds
+ }
+ if (this.stringParams) {
+ this.push('{}'); // hashContexts
+ this.push('{}'); // hashTypes
+ }
+ this.pushStackLiteral(omitEmpty ? 'undefined' : '{}');
+ },
+ pushHash: function pushHash() {
+ if (this.hash) {
+ this.hashes.push(this.hash);
+ }
+ this.hash = { values: [], types: [], contexts: [], ids: [] };
+ },
+ popHash: function popHash() {
+ var hash = this.hash;
+ this.hash = this.hashes.pop();
+
+ if (this.trackIds) {
+ this.push(this.objectLiteral(hash.ids));
+ }
+ if (this.stringParams) {
+ this.push(this.objectLiteral(hash.contexts));
+ this.push(this.objectLiteral(hash.types));
+ }
+
+ this.push(this.objectLiteral(hash.values));
+ },
+
+ // [pushString]
+ //
+ // On stack, before: ...
+ // On stack, after: quotedString(string), ...
+ //
+ // Push a quoted version of `string` onto the stack
+ pushString: function pushString(string) {
+ this.pushStackLiteral(this.quotedString(string));
+ },
+
+ // [pushLiteral]
+ //
+ // On stack, before: ...
+ // On stack, after: value, ...
+ //
+ // Pushes a value onto the stack. This operation prevents
+ // the compiler from creating a temporary variable to hold
+ // it.
+ pushLiteral: function pushLiteral(value) {
+ this.pushStackLiteral(value);
+ },
+
+ // [pushProgram]
+ //
+ // On stack, before: ...
+ // On stack, after: program(guid), ...
+ //
+ // Push a program expression onto the stack. This takes
+ // a compile-time guid and converts it into a runtime-accessible
+ // expression.
+ pushProgram: function pushProgram(guid) {
+ if (guid != null) {
+ this.pushStackLiteral(this.programExpression(guid));
+ } else {
+ this.pushStackLiteral(null);
+ }
+ },
+
+ // [registerDecorator]
+ //
+ // On stack, before: hash, program, params..., ...
+ // On stack, after: ...
+ //
+ // Pops off the decorator's parameters, invokes the decorator,
+ // and inserts the decorator into the decorators list.
+ registerDecorator: function registerDecorator(paramSize, name) {
+ var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
+ options = this.setupHelperArgs(name, paramSize);
+
+ this.decorators.push(['fn = ', this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container', options]), ' || fn;']);
+ },
+
+ // [invokeHelper]
+ //
+ // On stack, before: hash, inverse, program, params..., ...
+ // On stack, after: result of helper invocation
+ //
+ // Pops off the helper's parameters, invokes the helper,
+ // and pushes the helper's return value onto the stack.
+ //
+ // If the helper is not found, `helperMissing` is called.
+ invokeHelper: function invokeHelper(paramSize, name, isSimple) {
+ var nonHelper = this.popStack(),
+ helper = this.setupHelper(paramSize, name),
+ simple = isSimple ? [helper.name, ' || '] : '';
+
+ var lookup = ['('].concat(simple, nonHelper);
+ if (!this.options.strict) {
+ lookup.push(' || ', this.aliasable('helpers.helperMissing'));
+ }
+ lookup.push(')');
+
+ this.push(this.source.functionCall(lookup, 'call', helper.callParams));
+ },
+
+ // [invokeKnownHelper]
+ //
+ // On stack, before: hash, inverse, program, params..., ...
+ // On stack, after: result of helper invocation
+ //
+ // This operation is used when the helper is known to exist,
+ // so a `helperMissing` fallback is not required.
+ invokeKnownHelper: function invokeKnownHelper(paramSize, name) {
+ var helper = this.setupHelper(paramSize, name);
+ this.push(this.source.functionCall(helper.name, 'call', helper.callParams));
+ },
+
+ // [invokeAmbiguous]
+ //
+ // On stack, before: hash, inverse, program, params..., ...
+ // On stack, after: result of disambiguation
+ //
+ // This operation is used when an expression like `{{foo}}`
+ // is provided, but we don't know at compile-time whether it
+ // is a helper or a path.
+ //
+ // This operation emits more code than the other options,
+ // and can be avoided by passing the `knownHelpers` and
+ // `knownHelpersOnly` flags at compile-time.
+ invokeAmbiguous: function invokeAmbiguous(name, helperCall) {
+ this.useRegister('helper');
+
+ var nonHelper = this.popStack();
+
+ this.emptyHash();
+ var helper = this.setupHelper(0, name, helperCall);
+
+ var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
+
+ var lookup = ['(', '(helper = ', helperName, ' || ', nonHelper, ')'];
+ if (!this.options.strict) {
+ lookup[0] = '(helper = ';
+ lookup.push(' != null ? helper : ', this.aliasable('helpers.helperMissing'));
+ }
+
+ this.push(['(', lookup, helper.paramsInit ? ['),(', helper.paramsInit] : [], '),', '(typeof helper === ', this.aliasable('"function"'), ' ? ', this.source.functionCall('helper', 'call', helper.callParams), ' : helper))']);
+ },
+
+ // [invokePartial]
+ //
+ // On stack, before: context, ...
+ // On stack after: result of partial invocation
+ //
+ // This operation pops off a context, invokes a partial with that context,
+ // and pushes the result of the invocation back.
+ invokePartial: function invokePartial(isDynamic, name, indent) {
+ var params = [],
+ options = this.setupParams(name, 1, params);
+
+ if (isDynamic) {
+ name = this.popStack();
+ delete options.name;
+ }
+
+ if (indent) {
+ options.indent = JSON.stringify(indent);
+ }
+ options.helpers = 'helpers';
+ options.partials = 'partials';
+ options.decorators = 'container.decorators';
+
+ if (!isDynamic) {
+ params.unshift(this.nameLookup('partials', name, 'partial'));
+ } else {
+ params.unshift(name);
+ }
+
+ if (this.options.compat) {
+ options.depths = 'depths';
+ }
+ options = this.objectLiteral(options);
+ params.push(options);
+
+ this.push(this.source.functionCall('container.invokePartial', '', params));
+ },
+
+ // [assignToHash]
+ //
+ // On stack, before: value, ..., hash, ...
+ // On stack, after: ..., hash, ...
+ //
+ // Pops a value off the stack and assigns it to the current hash
+ assignToHash: function assignToHash(key) {
+ var value = this.popStack(),
+ context = undefined,
+ type = undefined,
+ id = undefined;
+
+ if (this.trackIds) {
+ id = this.popStack();
+ }
+ if (this.stringParams) {
+ type = this.popStack();
+ context = this.popStack();
+ }
+
+ var hash = this.hash;
+ if (context) {
+ hash.contexts[key] = context;
+ }
+ if (type) {
+ hash.types[key] = type;
+ }
+ if (id) {
+ hash.ids[key] = id;
+ }
+ hash.values[key] = value;
+ },
+
+ pushId: function pushId(type, name, child) {
+ if (type === 'BlockParam') {
+ this.pushStackLiteral('blockParams[' + name[0] + '].path[' + name[1] + ']' + (child ? ' + ' + JSON.stringify('.' + child) : ''));
+ } else if (type === 'PathExpression') {
+ this.pushString(name);
+ } else if (type === 'SubExpression') {
+ this.pushStackLiteral('true');
+ } else {
+ this.pushStackLiteral('null');
+ }
+ },
+
+ // HELPERS
+
+ compiler: JavaScriptCompiler,
+
+ compileChildren: function compileChildren(environment, options) {
+ var children = environment.children,
+ child = undefined,
+ compiler = undefined;
+
+ for (var i = 0, l = children.length; i < l; i++) {
+ child = children[i];
+ compiler = new this.compiler(); // eslint-disable-line new-cap
+
+ var existing = this.matchExistingProgram(child);
+
+ if (existing == null) {
+ this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
+ var index = this.context.programs.length;
+ child.index = index;
+ child.name = 'program' + index;
+ this.context.programs[index] = compiler.compile(child, options, this.context, !this.precompile);
+ this.context.decorators[index] = compiler.decorators;
+ this.context.environments[index] = child;
+
+ this.useDepths = this.useDepths || compiler.useDepths;
+ this.useBlockParams = this.useBlockParams || compiler.useBlockParams;
+ child.useDepths = this.useDepths;
+ child.useBlockParams = this.useBlockParams;
+ } else {
+ child.index = existing.index;
+ child.name = 'program' + existing.index;
+
+ this.useDepths = this.useDepths || existing.useDepths;
+ this.useBlockParams = this.useBlockParams || existing.useBlockParams;
+ }
+ }
+ },
+ matchExistingProgram: function matchExistingProgram(child) {
+ for (var i = 0, len = this.context.environments.length; i < len; i++) {
+ var environment = this.context.environments[i];
+ if (environment && environment.equals(child)) {
+ return environment;
+ }
+ }
+ },
+
+ programExpression: function programExpression(guid) {
+ var child = this.environment.children[guid],
+ programParams = [child.index, 'data', child.blockParams];
+
+ if (this.useBlockParams || this.useDepths) {
+ programParams.push('blockParams');
+ }
+ if (this.useDepths) {
+ programParams.push('depths');
+ }
+
+ return 'container.program(' + programParams.join(', ') + ')';
+ },
+
+ useRegister: function useRegister(name) {
+ if (!this.registers[name]) {
+ this.registers[name] = true;
+ this.registers.list.push(name);
+ }
+ },
+
+ push: function push(expr) {
+ if (!(expr instanceof Literal)) {
+ expr = this.source.wrap(expr);
+ }
+
+ this.inlineStack.push(expr);
+ return expr;
+ },
+
+ pushStackLiteral: function pushStackLiteral(item) {
+ this.push(new Literal(item));
+ },
+
+ pushSource: function pushSource(source) {
+ if (this.pendingContent) {
+ this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent), this.pendingLocation));
+ this.pendingContent = undefined;
+ }
+
+ if (source) {
+ this.source.push(source);
+ }
+ },
+
+ replaceStack: function replaceStack(callback) {
+ var prefix = ['('],
+ stack = undefined,
+ createdStack = undefined,
+ usedLiteral = undefined;
+
+ /* istanbul ignore next */
+ if (!this.isInline()) {
+ throw new _exception2['default']('replaceStack on non-inline');
+ }
+
+ // We want to merge the inline statement into the replacement statement via ','
+ var top = this.popStack(true);
+
+ if (top instanceof Literal) {
+ // Literals do not need to be inlined
+ stack = [top.value];
+ prefix = ['(', stack];
+ usedLiteral = true;
+ } else {
+ // Get or create the current stack name for use by the inline
+ createdStack = true;
+ var _name = this.incrStack();
+
+ prefix = ['((', this.push(_name), ' = ', top, ')'];
+ stack = this.topStack();
+ }
+
+ var item = callback.call(this, stack);
+
+ if (!usedLiteral) {
+ this.popStack();
+ }
+ if (createdStack) {
+ this.stackSlot--;
+ }
+ this.push(prefix.concat(item, ')'));
+ },
+
+ incrStack: function incrStack() {
+ this.stackSlot++;
+ if (this.stackSlot > this.stackVars.length) {
+ this.stackVars.push('stack' + this.stackSlot);
+ }
+ return this.topStackName();
+ },
+ topStackName: function topStackName() {
+ return 'stack' + this.stackSlot;
+ },
+ flushInline: function flushInline() {
+ var inlineStack = this.inlineStack;
+ this.inlineStack = [];
+ for (var i = 0, len = inlineStack.length; i < len; i++) {
+ var entry = inlineStack[i];
+ /* istanbul ignore if */
+ if (entry instanceof Literal) {
+ this.compileStack.push(entry);
+ } else {
+ var stack = this.incrStack();
+ this.pushSource([stack, ' = ', entry, ';']);
+ this.compileStack.push(stack);
+ }
+ }
+ },
+ isInline: function isInline() {
+ return this.inlineStack.length;
+ },
+
+ popStack: function popStack(wrapped) {
+ var inline = this.isInline(),
+ item = (inline ? this.inlineStack : this.compileStack).pop();
+
+ if (!wrapped && item instanceof Literal) {
+ return item.value;
+ } else {
+ if (!inline) {
+ /* istanbul ignore next */
+ if (!this.stackSlot) {
+ throw new _exception2['default']('Invalid stack pop');
+ }
+ this.stackSlot--;
+ }
+ return item;
+ }
+ },
+
+ topStack: function topStack() {
+ var stack = this.isInline() ? this.inlineStack : this.compileStack,
+ item = stack[stack.length - 1];
+
+ /* istanbul ignore if */
+ if (item instanceof Literal) {
+ return item.value;
+ } else {
+ return item;
+ }
+ },
+
+ contextName: function contextName(context) {
+ if (this.useDepths && context) {
+ return 'depths[' + context + ']';
+ } else {
+ return 'depth' + context;
+ }
+ },
+
+ quotedString: function quotedString(str) {
+ return this.source.quotedString(str);
+ },
+
+ objectLiteral: function objectLiteral(obj) {
+ return this.source.objectLiteral(obj);
+ },
+
+ aliasable: function aliasable(name) {
+ var ret = this.aliases[name];
+ if (ret) {
+ ret.referenceCount++;
+ return ret;
+ }
+
+ ret = this.aliases[name] = this.source.wrap(name);
+ ret.aliasable = true;
+ ret.referenceCount = 1;
+
+ return ret;
+ },
+
+ setupHelper: function setupHelper(paramSize, name, blockHelper) {
+ var params = [],
+ paramsInit = this.setupHelperArgs(name, paramSize, params, blockHelper);
+ var foundHelper = this.nameLookup('helpers', name, 'helper'),
+ callContext = this.aliasable(this.contextName(0) + ' != null ? ' + this.contextName(0) + ' : (container.nullContext || {})');
+
+ return {
+ params: params,
+ paramsInit: paramsInit,
+ name: foundHelper,
+ callParams: [callContext].concat(params)
+ };
+ },
+
+ setupParams: function setupParams(helper, paramSize, params) {
+ var options = {},
+ contexts = [],
+ types = [],
+ ids = [],
+ objectArgs = !params,
+ param = undefined;
+
+ if (objectArgs) {
+ params = [];
+ }
+
+ options.name = this.quotedString(helper);
+ options.hash = this.popStack();
+
+ if (this.trackIds) {
+ options.hashIds = this.popStack();
+ }
+ if (this.stringParams) {
+ options.hashTypes = this.popStack();
+ options.hashContexts = this.popStack();
+ }
+
+ var inverse = this.popStack(),
+ program = this.popStack();
+
+ // Avoid setting fn and inverse if neither are set. This allows
+ // helpers to do a check for `if (options.fn)`
+ if (program || inverse) {
+ options.fn = program || 'container.noop';
+ options.inverse = inverse || 'container.noop';
+ }
+
+ // The parameters go on to the stack in order (making sure that they are evaluated in order)
+ // so we need to pop them off the stack in reverse order
+ var i = paramSize;
+ while (i--) {
+ param = this.popStack();
+ params[i] = param;
+
+ if (this.trackIds) {
+ ids[i] = this.popStack();
+ }
+ if (this.stringParams) {
+ types[i] = this.popStack();
+ contexts[i] = this.popStack();
+ }
+ }
+
+ if (objectArgs) {
+ options.args = this.source.generateArray(params);
+ }
+
+ if (this.trackIds) {
+ options.ids = this.source.generateArray(ids);
+ }
+ if (this.stringParams) {
+ options.types = this.source.generateArray(types);
+ options.contexts = this.source.generateArray(contexts);
+ }
+
+ if (this.options.data) {
+ options.data = 'data';
+ }
+ if (this.useBlockParams) {
+ options.blockParams = 'blockParams';
+ }
+ return options;
+ },
+
+ setupHelperArgs: function setupHelperArgs(helper, paramSize, params, useRegister) {
+ var options = this.setupParams(helper, paramSize, params);
+ options = this.objectLiteral(options);
+ if (useRegister) {
+ this.useRegister('options');
+ params.push('options');
+ return ['options=', options];
+ } else if (params) {
+ params.push(options);
+ return '';
+ } else {
+ return options;
+ }
+ }
+ };
+
+ (function () {
+ var reservedWords = ('break else new var' + ' case finally return void' + ' catch for switch while' + ' continue function this with' + ' default if throw' + ' delete in try' + ' do instanceof typeof' + ' abstract enum int short' + ' boolean export interface static' + ' byte extends long super' + ' char final native synchronized' + ' class float package throws' + ' const goto private transient' + ' debugger implements protected volatile' + ' double import public let yield await' + ' null true false').split(' ');
+
+ var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
+
+ for (var i = 0, l = reservedWords.length; i < l; i++) {
+ compilerWords[reservedWords[i]] = true;
+ }
+ })();
+
+ JavaScriptCompiler.isValidJavaScriptVariableName = function (name) {
+ return !JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
+ };
+
+ function strictLookup(requireTerminal, compiler, parts, type) {
+ var stack = compiler.popStack(),
+ i = 0,
+ len = parts.length;
+ if (requireTerminal) {
+ len--;
+ }
+
+ for (; i < len; i++) {
+ stack = compiler.nameLookup(stack, parts[i], type);
+ }
+
+ if (requireTerminal) {
+ return [compiler.aliasable('container.strict'), '(', stack, ', ', compiler.quotedString(parts[i]), ')'];
+ } else {
+ return stack;
+ }
+ }
+
+ exports['default'] = JavaScriptCompiler;
+ module.exports = exports['default'];
+
+/***/ }),
+/* 43 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ /* global define */
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _utils = __webpack_require__(5);
+
+ var SourceNode = undefined;
+
+ try {
+ /* istanbul ignore next */
+ if (false) {
+ // We don't support this in AMD environments. For these environments, we asusme that
+ // they are running on the browser and thus have no need for the source-map library.
+ var SourceMap = require('source-map');
+ SourceNode = SourceMap.SourceNode;
+ }
+ } catch (err) {}
+ /* NOP */
+
+ /* istanbul ignore if: tested but not covered in istanbul due to dist build */
+ if (!SourceNode) {
+ SourceNode = function (line, column, srcFile, chunks) {
+ this.src = '';
+ if (chunks) {
+ this.add(chunks);
+ }
+ };
+ /* istanbul ignore next */
+ SourceNode.prototype = {
+ add: function add(chunks) {
+ if (_utils.isArray(chunks)) {
+ chunks = chunks.join('');
+ }
+ this.src += chunks;
+ },
+ prepend: function prepend(chunks) {
+ if (_utils.isArray(chunks)) {
+ chunks = chunks.join('');
+ }
+ this.src = chunks + this.src;
+ },
+ toStringWithSourceMap: function toStringWithSourceMap() {
+ return { code: this.toString() };
+ },
+ toString: function toString() {
+ return this.src;
+ }
+ };
+ }
+
+ function castChunk(chunk, codeGen, loc) {
+ if (_utils.isArray(chunk)) {
+ var ret = [];
+
+ for (var i = 0, len = chunk.length; i < len; i++) {
+ ret.push(codeGen.wrap(chunk[i], loc));
+ }
+ return ret;
+ } else if (typeof chunk === 'boolean' || typeof chunk === 'number') {
+ // Handle primitives that the SourceNode will throw up on
+ return chunk + '';
+ }
+ return chunk;
+ }
+
+ function CodeGen(srcFile) {
+ this.srcFile = srcFile;
+ this.source = [];
+ }
+
+ CodeGen.prototype = {
+ isEmpty: function isEmpty() {
+ return !this.source.length;
+ },
+ prepend: function prepend(source, loc) {
+ this.source.unshift(this.wrap(source, loc));
+ },
+ push: function push(source, loc) {
+ this.source.push(this.wrap(source, loc));
+ },
+
+ merge: function merge() {
+ var source = this.empty();
+ this.each(function (line) {
+ source.add([' ', line, '\n']);
+ });
+ return source;
+ },
+
+ each: function each(iter) {
+ for (var i = 0, len = this.source.length; i < len; i++) {
+ iter(this.source[i]);
+ }
+ },
+
+ empty: function empty() {
+ var loc = this.currentLocation || { start: {} };
+ return new SourceNode(loc.start.line, loc.start.column, this.srcFile);
+ },
+ wrap: function wrap(chunk) {
+ var loc = arguments.length <= 1 || arguments[1] === undefined ? this.currentLocation || { start: {} } : arguments[1];
+
+ if (chunk instanceof SourceNode) {
+ return chunk;
+ }
+
+ chunk = castChunk(chunk, this, loc);
+
+ return new SourceNode(loc.start.line, loc.start.column, this.srcFile, chunk);
+ },
+
+ functionCall: function functionCall(fn, type, params) {
+ params = this.generateList(params);
+ return this.wrap([fn, type ? '.' + type + '(' : '(', params, ')']);
+ },
+
+ quotedString: function quotedString(str) {
+ return '"' + (str + '').replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4
+ .replace(/\u2029/g, '\\u2029') + '"';
+ },
+
+ objectLiteral: function objectLiteral(obj) {
+ var pairs = [];
+
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ var value = castChunk(obj[key], this);
+ if (value !== 'undefined') {
+ pairs.push([this.quotedString(key), ':', value]);
+ }
+ }
+ }
+
+ var ret = this.generateList(pairs);
+ ret.prepend('{');
+ ret.add('}');
+ return ret;
+ },
+
+ generateList: function generateList(entries) {
+ var ret = this.empty();
+
+ for (var i = 0, len = entries.length; i < len; i++) {
+ if (i) {
+ ret.add(',');
+ }
+
+ ret.add(castChunk(entries[i], this));
+ }
+
+ return ret;
+ },
+
+ generateArray: function generateArray(entries) {
+ var ret = this.generateList(entries);
+ ret.prepend('[');
+ ret.add(']');
+
+ return ret;
+ }
+ };
+
+ exports['default'] = CodeGen;
+ module.exports = exports['default'];
+
+/***/ })
+/******/ ])
+});
+;
\ No newline at end of file
diff --git a/priv/js/hbrender.js b/priv/js/hbrender.js
new file mode 100644
index 0000000..819a063
--- /dev/null
+++ b/priv/js/hbrender.js
@@ -0,0 +1,5 @@
+let Handlebars = require("./handlebars");
+
+module.exports = (tpl_str, context) => {
+ return Handlebars.compile(tpl_str)(context);
+}
diff --git a/priv/repo/migrations/.formatter.exs b/priv/repo/migrations/.formatter.exs
new file mode 100644
index 0000000..49f9151
--- /dev/null
+++ b/priv/repo/migrations/.formatter.exs
@@ -0,0 +1,4 @@
+[
+ import_deps: [:ecto_sql],
+ inputs: ["*.exs"]
+]
diff --git a/priv/repo/migrations/20190704061907_cms_tables.exs b/priv/repo/migrations/20190704061907_cms_tables.exs
new file mode 100644
index 0000000..fa7f57d
--- /dev/null
+++ b/priv/repo/migrations/20190704061907_cms_tables.exs
@@ -0,0 +1,186 @@
+# intended to represent the state of a legacy Imagine 5.x database
+defmodule Imagine.Repo.Migrations.CmsTables do
+ use Ecto.Migration
+
+ def up do
+ create_if_not_exists(table(:cms_templates)) do
+ add(:version, :integer, default: 0, null: false)
+
+ add(:name, :string, size: 191)
+ add(:content, :text, size: 16_777_215)
+ add(:content_eex, :text, size: 16_777_215)
+ add(:description, :string, size: 191)
+
+ add(:options_yaml, :text, size: 16_777_215)
+ add(:options_json, :text, size: 16_777_215)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists(table(:cms_template_versions)) do
+ add(:cms_template_id, :integer)
+ add(:version, :integer)
+
+ add(:name, :string, size: 191)
+ add(:content, :text, size: 16_777_215)
+ add(:content_eex, :text, size: 16_777_215)
+ add(:description, :string, size: 191)
+
+ add(:options_yaml, :text, size: 16_777_215)
+ add(:options_json, :text, size: 16_777_215)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists(table(:cms_snippets)) do
+ add(:version, :integer, default: 0, null: false)
+
+ add(:name, :string, size: 191)
+ add(:content, :text, size: 16_777_215)
+ add(:content_eex, :text, size: 16_777_215)
+ add(:description, :string, size: 191)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists(table(:cms_snippet_versions)) do
+ add(:cms_snippet_id, :integer)
+ add(:version, :integer)
+
+ add(:name, :string, size: 191)
+ add(:content, :text, size: 16_777_215)
+ add(:content_eex, :text, size: 16_777_215)
+ add(:description, :string, size: 191)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists table(:cms_pages) do
+ add(:version, :integer, default: 0, null: false)
+ add(:cms_template_id, :integer, null: false)
+ add(:cms_template_version, :integer, null: false)
+
+ add(:parent_id, :integer)
+ add(:path, :text, size: 16_777_215)
+ add(:name, :string, size: 191)
+ add(:title, :string, size: 191)
+ add(:layout, :string, size: 191)
+
+ add(:published_version, :integer, default: 0, null: false)
+ add(:published_date, :naive_datetime, null: false)
+ add(:article_date, :naive_datetime)
+ add(:article_end_date, :naive_datetime)
+ add(:expiration_date, :naive_datetime)
+ add(:expires, :boolean, default: false, null: false)
+
+ add(:summary, :text, size: 16_777_215)
+ add(:html_head, :text, size: 16_777_215)
+ add(:thumbnail_path, :string, size: 191)
+ add(:feature_image_path, :string, size: 191)
+
+ add(:redirect_enabled, :boolean, default: false, null: false)
+ add(:redirect_to, :text, size: 16_777_215)
+
+ add(:position, :integer, default: 0)
+
+ add(:comment_count, :integer, default: 0)
+ add(:search_index, :text, size: 16_777_215)
+
+ add(:updated_by, :integer, null: false)
+ add(:updated_by_username, :string, size: 191, null: false)
+
+ add(:discarded_at, :naive_datetime)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists table(:cms_page_versions) do
+ add(:cms_page_id, :integer, null: false)
+ add(:version, :integer, default: 0, null: false)
+ add(:cms_template_id, :integer, null: false)
+ add(:cms_template_version, :integer, null: false)
+
+ add(:parent_id, :integer)
+ add(:path, :text, size: 16_777_215)
+ add(:name, :string, size: 191)
+ add(:title, :string, size: 191)
+ add(:layout, :string, size: 191)
+
+ add(:published_version, :integer, default: 0, null: false)
+ add(:published_date, :naive_datetime, null: false)
+ add(:article_date, :naive_datetime)
+ add(:article_end_date, :naive_datetime)
+ add(:expiration_date, :naive_datetime)
+ add(:expires, :boolean, default: false, null: false)
+
+ add(:summary, :text, size: 16_777_215)
+ add(:html_head, :text, size: 16_777_215)
+ add(:thumbnail_path, :string, size: 191)
+ add(:feature_image_path, :string, size: 191)
+
+ add(:redirect_enabled, :boolean, default: false, null: false)
+ add(:redirect_to, :text, size: 16_777_215)
+
+ add(:position, :integer, default: 0)
+
+ add(:comment_count, :integer, default: 0)
+ add(:search_index, :text, size: 16_777_215)
+
+ add(:updated_by, :integer, null: false)
+ add(:updated_by_username, :string, size: 191, null: false)
+
+ add(:discarded_at, :naive_datetime)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists table(:cms_page_objects) do
+ add(:cms_page_id, :integer, null: false)
+ add(:cms_page_version, :integer, null: false)
+
+ add(:name, :string, size: 191)
+ add(:obj_type, :string, size: 191)
+ add(:content, :text, size: 16_777_215)
+ add(:options, :text, size: 16_777_215)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists table(:cms_page_tags) do
+ add(:cms_page_id, :integer, null: false)
+ add(:name, :string, size: 191, null: false)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create_if_not_exists table(:users) do
+ add(:username, :string, size: 191)
+ add(:email, :string, size: 191)
+ add(:password_hash, :string, size: 191)
+ add(:password_hash_type, :string, size: 191)
+
+ add(:first_name, :string, size: 191)
+ add(:last_name, :string, size: 191)
+
+ add(:dynamic_fields, :text, size: 16_777_215)
+
+ add(:active, :boolean, default: true, null: false)
+ add(:is_superuser, :boolean, default: false, null: false)
+
+ timestamps(inserted_at: :created_on, updated_at: :updated_on)
+ end
+
+ create(index("cms_pages", ["path(255)"]))
+ create(index("cms_page_versions", ["path(255)"]))
+ create(index("cms_page_objects", [:cms_page_id, :cms_page_version]))
+ create(index("cms_page_tags", [:cms_page_id]))
+ create(index("cms_page_versions", [:cms_page_id]))
+ create(index("cms_snippets", [:name]))
+ create(index("cms_snippet_versions", [:cms_snippet_id]))
+ create(index("cms_template_versions", [:cms_template_id]))
+ end
+
+ # risk of data loss, do not roll back
+ # def down do
+ # end
+end
diff --git a/priv/repo/migrations/20190705060837_imagine_5_to_6.exs b/priv/repo/migrations/20190705060837_imagine_5_to_6.exs
new file mode 100644
index 0000000..b044ce7
--- /dev/null
+++ b/priv/repo/migrations/20190705060837_imagine_5_to_6.exs
@@ -0,0 +1,50 @@
+defmodule Imagine.Repo.Migrations.Imagine5to6 do
+ use Ecto.Migration
+
+ # use either this migration or the cms_tables migration, but not both
+ # note that some legacy dbs may already have the html_head column and/or the user email column
+ def up do
+ alter table(:cms_pages) do
+ add(:layout, :string, size: 191)
+ add(:html_head, :text, size: 16_777_215)
+ add(:discarded_at, :naive_datetime)
+ end
+
+ alter table(:cms_page_versions) do
+ add(:layout, :string)
+ add(:html_head, :text, size: 16_777_215)
+ add(:discarded_at, :naive_datetime)
+ end
+
+ alter table(:cms_templates) do
+ add(:description, :string, size: 191)
+ add(:content_eex, :text, size: 16_777_215)
+ add(:options_json, :text, size: 16_777_215)
+ end
+
+ alter table(:cms_template_versions) do
+ add(:description, :string, size: 191)
+ add(:content_eex, :text, size: 16_777_215)
+ add(:options_json, :text, size: 16_777_215)
+ end
+
+ alter table(:cms_snippets) do
+ add(:description, :string, size: 191)
+ add(:content_eex, :text, size: 16_777_215)
+ end
+
+ alter table(:cms_snippet_versions) do
+ add(:description, :string, size: 191)
+ add(:content_eex, :text, size: 16_777_215)
+ end
+
+ alter table(:users) do
+ add(:email, :string, size: 191)
+ add(:password_hash_type, :string)
+ end
+ end
+
+ # risk of data loss, do not roll back
+ # def down do
+ # end
+end
diff --git a/priv/repo/migrations/20190913034259_convert_to_utf8.exs b/priv/repo/migrations/20190913034259_convert_to_utf8.exs
new file mode 100644
index 0000000..78f168e
--- /dev/null
+++ b/priv/repo/migrations/20190913034259_convert_to_utf8.exs
@@ -0,0 +1,119 @@
+defmodule Imagine.Repo.Migrations.ConvertToUtf8 do
+ use Ecto.Migration
+
+ # also expands the thumbnail and feature image path fields
+ def up do
+ target = "CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
+
+ for tbl <- [
+ "cms_templates",
+ "cms_template_versions",
+ "cms_snippets",
+ "cms_snippet_versions",
+ "cms_pages",
+ "cms_page_versions",
+ "cms_page_objects",
+ "cms_page_tags",
+ "users"
+ ] do
+ execute("ALTER TABLE #{tbl} CONVERT TO #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ description: "varchar(191)",
+ content: "mediumtext",
+ content_eex: "mediumtext",
+ options_yaml: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_templates CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ description: "varchar(191)",
+ content: "mediumtext",
+ content_eex: "mediumtext",
+ options_yaml: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_template_versions CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ description: "varchar(191)",
+ content: "mediumtext",
+ content_eex: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_snippets CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ description: "varchar(191)",
+ content: "mediumtext",
+ content_eex: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_snippet_versions CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ layout: "varchar(191)",
+ path: "varchar(1024)",
+ title: "varchar(1024)",
+ summary: "mediumtext",
+ html_head: "mediumtext",
+ thumbnail_path: "varchar(1024)",
+ feature_image_path: "varchar(1024)",
+ redirect_to: "varchar(1024)",
+ search_index: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_pages CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ layout: "varchar(191)",
+ path: "varchar(1024)",
+ title: "varchar(1024)",
+ summary: "mediumtext",
+ html_head: "mediumtext",
+ thumbnail_path: "varchar(1024)",
+ feature_image_path: "varchar(1024)",
+ redirect_to: "varchar(1024)",
+ search_index: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_page_versions CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ name: "varchar(191)",
+ obj_type: "varchar(191)",
+ content: "mediumtext",
+ options: "mediumtext"
+ ] do
+ execute("ALTER TABLE cms_page_objects CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [name: "varchar(191)"] do
+ execute("ALTER TABLE cms_page_tags CHANGE #{col} #{col} #{type} #{target}")
+ end
+
+ for {col, type} <- [
+ username: "varchar(191)",
+ email: "varchar(191)",
+ password_hash: "varchar(191)",
+ password_hash_type: "varchar(191)",
+ first_name: "varchar(191)",
+ last_name: "varchar(191)",
+ dynamic_fields: "varchar(1024)"
+ ] do
+ execute("ALTER TABLE users CHANGE #{col} #{col} #{type} #{target}")
+ end
+ end
+
+ # risk of data loss, do not roll back
+ # def down do
+ # end
+end
diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs
new file mode 100644
index 0000000..2638024
--- /dev/null
+++ b/priv/repo/seeds.exs
@@ -0,0 +1,68 @@
+# Script for populating the database. You can run it as:
+#
+# mix run priv/repo/seeds.exs
+#
+# We recommend using the bang functions (`insert!`, `update!`
+# and so on) as they will fail if something goes wrong.
+
+#
+# In production, set PORT to something random when running to avoid a conflict
+#
+
+alias Imagine.Accounts
+alias Imagine.CmsTemplates
+alias Imagine.CmsPages
+
+attrs = %{
+ username: "demo",
+ password: "Jh*UeD92Qtzc-dcmGZopPLTX",
+ email: "demo@example.com",
+ active: true
+}
+
+user =
+ case Accounts.get_user_by_username_or_email("demo") do
+ nil ->
+ {:ok, new_user} = Accounts.create_user(attrs)
+ Accounts.update_user_set_is_superuser(new_user, true)
+ new_user
+
+ existing_user ->
+ existing_user
+ end
+
+attrs = %{
+ name: "Home",
+ description: "For the home page only",
+ content: "<%= text_editor(\"Content\") %>"
+}
+
+tpl =
+ case CmsTemplates.get_cms_template_by(name: "Home") do
+ nil ->
+ {:ok, tpl} = CmsTemplates.create_cms_template(attrs)
+ tpl
+
+ existing_template ->
+ existing_template
+ end
+
+attrs = %{
+ name: "",
+ path: "",
+ title: "Home",
+ cms_template_id: tpl.id,
+ cms_template_version: tpl.version,
+ position: 0,
+ published_version: 0
+}
+
+_home_page =
+ case CmsPages.get_cms_page_by_path("") do
+ nil ->
+ {:ok, page} = CmsPages.create_cms_page(attrs, user)
+ page
+
+ existing_page ->
+ existing_page
+ end
diff --git a/priv/static/css/imagine_cms.css b/priv/static/css/imagine_cms.css
new file mode 100644
index 0000000..72a812c
--- /dev/null
+++ b/priv/static/css/imagine_cms.css
@@ -0,0 +1,98 @@
+.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}
+
+/*!
+ * # Fomantic-UI - Button
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.button{cursor:pointer;display:inline-block;min-height:1em;outline:none;border:none;vertical-align:baseline;background:#e0e1e2 none;color:rgba(0,0,0,.6);font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 .25em 0 0;padding:.78571429em 1.5em;text-transform:none;text-shadow:none;font-weight:700;line-height:1em;font-style:normal;text-align:center;text-decoration:none;border-radius:.28571429rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;will-change:auto;-webkit-tap-highlight-color:transparent}.ui.button,.ui.button:hover{box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.button:hover{background-color:#cacbcd;background-image:none;color:rgba(0,0,0,.8)}.ui.button:hover .icon{opacity:.85}.ui.button:focus{background-color:#cacbcd;color:rgba(0,0,0,.8);background-image:none;box-shadow:""}.ui.button:focus .icon{opacity:.85}.ui.active.button:active,.ui.button:active{background-color:#babbbc;background-image:"";color:rgba(0,0,0,.9);box-shadow:inset 0 0 0 1px transparent,none}.ui.active.button{box-shadow:inset 0 0 0 1px transparent}.ui.active.button,.ui.active.button:hover{color:rgba(0,0,0,.95)}.ui.active.button,.ui.active.button:active,.ui.active.button:hover{background-color:#c0c1c2;background-image:none}.ui.loading.loading.loading.loading.loading.loading.button{position:relative;cursor:default;text-shadow:none!important;color:transparent;opacity:1;pointer-events:auto;transition:all 0s linear,opacity .1s ease}.ui.loading.button:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}.ui.loading.button:after,.ui.loading.button:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.button:after{border-radius:500rem;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid;color:#fff;box-shadow:0 0 0 1px transparent}.ui.labeled.icon.loading.button .icon{background-color:transparent;box-shadow:none}.ui.basic.loading.button:not(.inverted):before{border-color:rgba(0,0,0,.1)}.ui.basic.loading.button:not(.inverted):after{border-color:#767676}.ui.button:disabled,.ui.buttons .disabled.button:not(.basic),.ui.disabled.active.button,.ui.disabled.button,.ui.disabled.button:hover{cursor:default;opacity:.45!important;background-image:none;box-shadow:none;pointer-events:none!important}.ui.basic.buttons .ui.disabled.button{border-color:rgba(34,36,38,.5)}.ui.animated.button{position:relative;overflow:hidden;padding-right:0!important;vertical-align:middle;z-index:1}.ui.animated.button .content{will-change:transform,opacity}.ui.animated.button .visible.content{position:relative;margin-right:1.5em}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .hidden.content,.ui.animated.button .visible.content{transition:right .3s ease 0s}.ui.animated.button .visible.content{left:auto;right:0}.ui.animated.button .hidden.content{top:50%;left:auto;right:-100%;margin-top:-.5em}.ui.animated.button:focus .visible.content,.ui.animated.button:hover .visible.content{left:auto;right:200%}.ui.animated.button:focus .hidden.content,.ui.animated.button:hover .hidden.content{left:auto;right:0}.ui.vertical.animated.button .hidden.content,.ui.vertical.animated.button .visible.content{transition:top .3s ease,transform .3s ease}.ui.vertical.animated.button .visible.content{transform:translateY(0);right:auto}.ui.vertical.animated.button .hidden.content{top:-50%;left:0;right:auto}.ui.vertical.animated.button:focus .visible.content,.ui.vertical.animated.button:hover .visible.content{transform:translateY(200%);right:auto}.ui.vertical.animated.button:focus .hidden.content,.ui.vertical.animated.button:hover .hidden.content{top:50%;right:auto}.ui.fade.animated.button .hidden.content,.ui.fade.animated.button .visible.content{transition:opacity .3s ease,transform .3s ease}.ui.fade.animated.button .visible.content{left:auto;right:auto;opacity:1;transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;left:0;right:auto;transform:scale(1.5)}.ui.fade.animated.button:focus .visible.content,.ui.fade.animated.button:hover .visible.content{left:auto;right:auto;opacity:0;transform:scale(.75)}.ui.fade.animated.button:focus .hidden.content,.ui.fade.animated.button:hover .hidden.content{left:0;right:auto;opacity:1;transform:scale(1)}.ui.inverted.button{box-shadow:inset 0 0 0 2px #fff;background:transparent none;color:#fff;text-shadow:none!important}.ui.inverted.buttons .button{margin:0 0 0 -2px}.ui.inverted.buttons .button:first-child{margin-left:0}.ui.inverted.vertical.buttons .button{margin:0 0 -2px}.ui.inverted.vertical.buttons .button:first-child{margin-top:0}.ui.inverted.button.active,.ui.inverted.button:focus,.ui.inverted.button:hover{background:#fff;box-shadow:inset 0 0 0 2px #fff;color:rgba(0,0,0,.8)}.ui.inverted.button.active:focus{background:#dcddde;box-shadow:inset 0 0 0 2px #dcddde;color:rgba(0,0,0,.8)}.ui.labeled.button:not(.icon){display:inline-flex;flex-direction:row;background:none;padding:0!important;border:none;box-shadow:none}.ui.labeled.button>.button{margin:0}.ui.labeled.button>.label{display:flex;align-items:center;margin:0 0 0 -1px!important;font-size:1em;padding:"";border-color:rgba(34,36,38,.15)}.ui.labeled.button>.tag.label:before{width:1.85em;height:1.85em}.ui.labeled.button:not([class*="left labeled"])>.button{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.button:not([class*="left labeled"])>.label,.ui[class*="left labeled"].button>.button{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="left labeled"].button>.label{border-top-right-radius:0;border-bottom-right-radius:0}.ui.facebook.button{background-color:#3b5998;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.facebook.button:hover{background-color:#304d8a;color:#fff;text-shadow:none}.ui.facebook.button:active{background-color:#2d4373;color:#fff;text-shadow:none}.ui.twitter.button{background-color:#1da1f2;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.twitter.button:hover{background-color:#0298f3;color:#fff;text-shadow:none}.ui.twitter.button:active{background-color:#0c85d0;color:#fff;text-shadow:none}.ui.google.plus.button{background-color:#dd4b39;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.google.plus.button:hover{background-color:#e0321c;color:#fff;text-shadow:none}.ui.google.plus.button:active{background-color:#c23321;color:#fff;text-shadow:none}.ui.linkedin.button{background-color:#0077b5;color:#fff;text-shadow:none}.ui.linkedin.button:hover{background-color:#00669c;color:#fff;text-shadow:none}.ui.linkedin.button:active{background-color:#005582;color:#fff;text-shadow:none}.ui.youtube.button{background-color:red;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.youtube.button:hover{background-color:#e60000;color:#fff;text-shadow:none}.ui.youtube.button:active{background-color:#c00;color:#fff;text-shadow:none}.ui.instagram.button{background-color:#49769c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.instagram.button:hover{background-color:#3d698e;color:#fff;text-shadow:none}.ui.instagram.button:active{background-color:#395c79;color:#fff;text-shadow:none}.ui.pinterest.button{background-color:#bd081c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pinterest.button:hover{background-color:#ac0013;color:#fff;text-shadow:none}.ui.pinterest.button:active{background-color:#8c0615;color:#fff;text-shadow:none}.ui.vk.button{background-color:#45668e;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.vk.button:hover{background-color:#395980;color:#fff}.ui.vk.button:active{background-color:#344d6c;color:#fff}.ui.whatsapp.button{background-color:#25d366;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.whatsapp.button:hover{background-color:#19c55a;color:#fff}.ui.whatsapp.button:active{background-color:#1da851;color:#fff}.ui.telegram.button{background-color:#08c;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.telegram.button:hover{background-color:#0077b3;color:#fff}.ui.telegram.button:active{background-color:#069;color:#fff}.ui.button>.icon:not(.button){height:auto;opacity:.8;transition:opacity .1s ease;color:""}.ui.button:not(.icon)>.icon:not(.button):not(.dropdown),.ui.button:not(.icon)>.icons:not(.button):not(.dropdown){margin:0 .42857143em 0 -.21428571em;vertical-align:baseline}.ui.button:not(.icon)>.icons:not(.button):not(.dropdown)>.icon{vertical-align:baseline}.ui.button:not(.icon)>.right.icon:not(.button):not(.dropdown){margin:0 -.21428571em 0 .42857143em}.ui[class*="left floated"].button,.ui[class*="left floated"].buttons{float:left;margin-left:0;margin-right:.25em}.ui[class*="right floated"].button,.ui[class*="right floated"].buttons{float:right;margin-right:0;margin-left:.25em}.ui.compact.button,.ui.compact.buttons .button{padding:.58928571em 1.125em}.ui.compact.icon.button,.ui.compact.icon.buttons .button{padding:.58928571em}.ui.compact.labeled.icon.button,.ui.compact.labeled.icon.buttons .button{padding:.58928571em 3.69642857em}.ui.compact.labeled.icon.button>.icon,.ui.compact.labeled.icon.buttons .button>.icon{padding:.58928571em 0}.ui.button,.ui.buttons .button,.ui.buttons .or{font-size:1rem}.ui.mini.buttons .button,.ui.mini.buttons .dropdown,.ui.mini.buttons .dropdown .menu>.item,.ui.mini.buttons .or,.ui.ui.ui.ui.mini.button{font-size:.78571429rem}.ui.tiny.buttons .button,.ui.tiny.buttons .dropdown,.ui.tiny.buttons .dropdown .menu>.item,.ui.tiny.buttons .or,.ui.ui.ui.ui.tiny.button{font-size:.85714286rem}.ui.small.buttons .button,.ui.small.buttons .dropdown,.ui.small.buttons .dropdown .menu>.item,.ui.small.buttons .or,.ui.ui.ui.ui.small.button{font-size:.92857143rem}.ui.large.buttons .button,.ui.large.buttons .dropdown,.ui.large.buttons .dropdown .menu>.item,.ui.large.buttons .or,.ui.ui.ui.ui.large.button{font-size:1.14285714rem}.ui.big.buttons .button,.ui.big.buttons .dropdown,.ui.big.buttons .dropdown .menu>.item,.ui.big.buttons .or,.ui.ui.ui.ui.big.button{font-size:1.28571429rem}.ui.huge.buttons .button,.ui.huge.buttons .dropdown,.ui.huge.buttons .dropdown .menu>.item,.ui.huge.buttons .or,.ui.ui.ui.ui.huge.button{font-size:1.42857143rem}.ui.massive.buttons .button,.ui.massive.buttons .dropdown,.ui.massive.buttons .dropdown .menu>.item,.ui.massive.buttons .or,.ui.ui.ui.ui.massive.button{font-size:1.71428571rem}.ui.icon.button:not(.animated):not(.compact),.ui.icon.buttons .button{padding:.78571429em}.ui.animated.icon.button>.content>.icon,.ui.icon.button>.icon,.ui.icon.buttons .button>.icon{opacity:.9;margin:0!important;vertical-align:top}.ui.animated.button>.content>.icon{vertical-align:top}.ui.basic.button,.ui.basic.buttons .button{background:transparent none;color:rgba(0,0,0,.6);font-weight:400;border-radius:.28571429rem;text-transform:none;text-shadow:none!important;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.basic.buttons{box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem}.ui.basic.buttons .button{border-radius:0}.ui.basic.button:focus,.ui.basic.button:hover,.ui.basic.buttons .button:focus,.ui.basic.buttons .button:hover{background:#fff;color:rgba(0,0,0,.8);box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.button:active,.ui.basic.buttons .button:active{background:#f8f8f8;color:rgba(0,0,0,.9);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.active.button,.ui.basic.buttons .active.button{background:rgba(0,0,0,.05);box-shadow:"";color:rgba(0,0,0,.95)}.ui.basic.active.button:hover,.ui.basic.buttons .active.button:hover{background-color:rgba(0,0,0,.05)}.ui.basic.buttons .button:hover{box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.buttons .button:active{box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.buttons .active.button{box-shadow:""}.ui.basic.inverted.button,.ui.basic.inverted.buttons .button{background-color:transparent;color:#f9fafb;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)}.ui.basic.inverted.button:focus,.ui.basic.inverted.button:hover,.ui.basic.inverted.buttons .button:focus,.ui.basic.inverted.buttons .button:hover{color:#fff;box-shadow:inset 0 0 0 2px #fff}.ui.basic.inverted.button:active,.ui.basic.inverted.buttons .button:active{background-color:hsla(0,0%,100%,.08);color:#fff;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.9)}.ui.basic.inverted.active.button,.ui.basic.inverted.buttons .active.button{background-color:hsla(0,0%,100%,.08);color:#fff;text-shadow:none;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.7)}.ui.basic.inverted.active.button:hover,.ui.basic.inverted.buttons .active.button:hover{background-color:hsla(0,0%,100%,.15);box-shadow:inset 0 0 0 2px #fff}.ui.basic.buttons .button{border-left:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.vertical.buttons .button{border-left:0;border-top:1px solid rgba(34,36,38,.15)}.ui.basic.vertical.buttons .button:first-child{border-top-width:0}.ui.tertiary.button{transition:color .1s ease!important;border-radius:0;margin:.28571429em .25em .28571429em 0!important;padding:.5em!important;box-shadow:none;color:rgba(0,0,0,.6);background:none}.ui.tertiary.button:focus,.ui.tertiary.button:hover{box-shadow:inset 0 -.2em 0 #666;color:#333;background:none}.ui.tertiary.button:active{box-shadow:inset 0 -.2em 0 #999;border-radius:.28571429rem .28571429rem 0 0;color:#666;background:none}.ui.labeled.icon.button,.ui.labeled.icon.buttons .button{position:relative;padding-left:4.07142857em!important;padding-right:1.5em!important}.ui.labeled.icon.button>.icon,.ui.labeled.icon.buttons>.button>.icon{position:absolute;top:0;left:0;height:100%;line-height:1;border-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit;text-align:center;-webkit-animation:none;animation:none;padding:.78571429em 0;margin:0;width:2.57142857em;background-color:rgba(0,0,0,.05);color:"";box-shadow:inset -1px 0 0 0 transparent}.ui[class*="right labeled"].icon.button{padding-right:4.07142857em!important;padding-left:1.5em!important}.ui[class*="right labeled"].icon.button>.icon{left:auto;right:0;border-radius:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit;box-shadow:inset 1px 0 0 0 transparent}.ui.labeled.icon.button>.icon:after,.ui.labeled.icon.button>.icon:before,.ui.labeled.icon.buttons>.button>.icon:after,.ui.labeled.icon.buttons>.button>.icon:before{display:block;position:relative;width:100%;top:0;text-align:center}.ui.labeled.icon.buttons .button>.icon{border-radius:0}.ui.labeled.icon.buttons .button:first-child>.icon{border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-left-radius:.28571429rem}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-left-radius:.28571429rem}.ui.labeled.icon.button>.loading.icon:before{-webkit-animation:loader 2s linear infinite;animation:loader 2s linear infinite}.ui.button.toggle.active,.ui.buttons .button.toggle.active,.ui.toggle.buttons .active.button{background-color:#21ba45;box-shadow:none;text-shadow:none;color:#fff}.ui.button.toggle.active:hover{background-color:#16ab39;text-shadow:none;color:#fff}.ui.circular.button{border-radius:10em}.ui.circular.button>.icon{width:1em;vertical-align:baseline}.ui.buttons .or{position:relative;width:.3em;height:2.57142857em;z-index:3}.ui.buttons .or:before{position:absolute;text-align:center;border-radius:500rem;content:"or";top:50%;left:50%;background-color:#fff;text-shadow:none;margin-top:-.89285714em;margin-left:-.89285714em;width:1.78571429em;height:1.78571429em;line-height:1.78571429em;color:rgba(0,0,0,.4);font-style:normal;font-weight:700;box-shadow:inset 0 0 0 1px transparent}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.ui.attached.button{position:relative;display:block;margin:0;border-radius:0;box-shadow:0 0 0 1px rgba(34,36,38,.15)}.ui.attached.top.button{border-radius:.28571429rem .28571429rem 0 0}.ui.attached.bottom.button{border-radius:0 0 .28571429rem .28571429rem}.ui.left.attached.button{display:inline-block;border-left:none;text-align:right;padding-right:.75em;border-radius:.28571429rem 0 0 .28571429rem}.ui.right.attached.button{display:inline-block;text-align:left;padding-left:.75em;border-radius:0 .28571429rem .28571429rem 0}.ui.attached.buttons{position:relative;display:flex;border-radius:0;width:auto!important;z-index:auto;margin-left:-1px;margin-right:-1px}.ui.attached.buttons .button{margin:0}.ui.attached.buttons .button:first-child,.ui.attached.buttons .button:last-child{border-radius:0}.ui[class*="top attached"].buttons{margin-bottom:-1px;border-radius:.28571429rem .28571429rem 0 0}.ui[class*="top attached"].buttons .button:first-child{border-radius:.28571429rem 0 0 0}.ui[class*="top attached"].buttons .button:last-child{border-radius:0 .28571429rem 0 0}.ui[class*="bottom attached"].buttons{margin-top:-1px;border-radius:0 0 .28571429rem .28571429rem}.ui[class*="bottom attached"].buttons .button:first-child{border-radius:0 0 0 .28571429rem}.ui[class*="bottom attached"].buttons .button:last-child{border-radius:0 0 .28571429rem 0}.ui[class*="left attached"].buttons{display:inline-flex;margin-right:0;margin-left:-1px;border-radius:0 .28571429rem .28571429rem 0}.ui[class*="left attached"].buttons .button:first-child{margin-left:-1px;border-radius:0 .28571429rem 0 0}.ui[class*="left attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 .28571429rem 0}.ui[class*="right attached"].buttons{display:inline-flex;margin-left:0;margin-right:-1px;border-radius:.28571429rem 0 0 .28571429rem}.ui[class*="right attached"].buttons .button:first-child{margin-left:-1px;border-radius:.28571429rem 0 0 0}.ui[class*="right attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 0 .28571429rem}.ui.fluid.button,.ui.fluid.buttons{width:100%}.ui.fluid.button{display:block}.ui.two.buttons{width:100%}.ui.two.buttons>.button{width:50%}.ui.three.buttons{width:100%}.ui.three.buttons>.button{width:33.333%}.ui.four.buttons{width:100%}.ui.four.buttons>.button{width:25%}.ui.five.buttons{width:100%}.ui.five.buttons>.button{width:20%}.ui.six.buttons{width:100%}.ui.six.buttons>.button{width:16.666%}.ui.seven.buttons{width:100%}.ui.seven.buttons>.button{width:14.285%}.ui.eight.buttons{width:100%}.ui.eight.buttons>.button{width:12.5%}.ui.nine.buttons{width:100%}.ui.nine.buttons>.button{width:11.11%}.ui.ten.buttons{width:100%}.ui.ten.buttons>.button{width:10%}.ui.eleven.buttons{width:100%}.ui.eleven.buttons>.button{width:9.09%}.ui.twelve.buttons{width:100%}.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:flex;width:auto;justify-content:center}.ui.two.vertical.buttons>.button{height:50%}.ui.three.vertical.buttons>.button{height:33.333%}.ui.four.vertical.buttons>.button{height:25%}.ui.five.vertical.buttons>.button{height:20%}.ui.six.vertical.buttons>.button{height:16.666%}.ui.seven.vertical.buttons>.button{height:14.285%}.ui.eight.vertical.buttons>.button{height:12.5%}.ui.nine.vertical.buttons>.button{height:11.11%}.ui.ten.vertical.buttons>.button{height:10%}.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.primary.button,.ui.primary.buttons .button{background-color:#2185d0;color:#fff;text-shadow:none;background-image:none}.ui.primary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.primary.button:hover,.ui.primary.buttons .button:hover{background-color:#1678c2;color:#fff;text-shadow:none}.ui.primary.button:focus,.ui.primary.buttons .button:focus{background-color:#0d71bb;color:#fff;text-shadow:none}.ui.primary.button:active,.ui.primary.buttons .button:active{background-color:#1a69a4;color:#fff;text-shadow:none}.ui.primary.active.button,.ui.primary.button .active.button:active,.ui.primary.buttons .active.button,.ui.primary.buttons .active.button:active{background-color:#1279c6;color:#fff;text-shadow:none}.ui.basic.primary.button,.ui.basic.primary.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #2185d0;color:#2185d0}.ui.basic.primary.button:hover,.ui.basic.primary.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #1678c2;color:#1678c2}.ui.basic.primary.button:focus,.ui.basic.primary.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #0d71bb;color:#1678c2}.ui.basic.primary.active.button,.ui.basic.primary.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #1279c6;color:#1a69a4}.ui.basic.primary.button:active,.ui.basic.primary.buttons .button:active{box-shadow:inset 0 0 0 1px #1a69a4;color:#1a69a4}.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child){margin-left:-1px}.ui.inverted.primary.button,.ui.inverted.primary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #54c8ff;color:#54c8ff}.ui.inverted.primary.button.active,.ui.inverted.primary.button:active,.ui.inverted.primary.button:focus,.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button.active,.ui.inverted.primary.buttons .button:active,.ui.inverted.primary.buttons .button:focus,.ui.inverted.primary.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button:hover{background-color:#21b8ff}.ui.inverted.primary.button:focus,.ui.inverted.primary.buttons .button:focus{background-color:#2bbbff}.ui.inverted.primary.active.button,.ui.inverted.primary.buttons .active.button{background-color:#3ac0ff}.ui.inverted.primary.button:active,.ui.inverted.primary.buttons .button:active{background-color:#21b8ff}.ui.inverted.primary.basic.button,.ui.inverted.primary.basic.buttons .button,.ui.inverted.primary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.primary.basic.button:hover,.ui.inverted.primary.basic.buttons .button:hover,.ui.inverted.primary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.inverted.primary.basic.button:focus,.ui.inverted.primary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #2bbbff;color:#54c8ff}.ui.inverted.primary.basic.active.button,.ui.inverted.primary.basic.buttons .active.button,.ui.inverted.primary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3ac0ff;color:#54c8ff}.ui.inverted.primary.basic.button:active,.ui.inverted.primary.basic.buttons .button:active,.ui.inverted.primary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.tertiary.primary.button,.ui.tertiary.primary.buttons .button,.ui.tertiary.primary.buttons .tertiary.button{background:transparent;box-shadow:none;color:#2185d0}.ui.tertiary.primary.button:hover,.ui.tertiary.primary.buttons .button:hover,.ui.tertiary.primary.buttons button:hover{box-shadow:inset 0 -.2em 0 #2b75ac;color:#2b75ac}.ui.tertiary.primary.button:focus,.ui.tertiary.primary.buttons .button:focus,.ui.tertiary.primary.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #216ea7;color:#216ea7}.ui.tertiary.primary.active.button,.ui.tertiary.primary.button:active,.ui.tertiary.primary.buttons .active.button,.ui.tertiary.primary.buttons .button:active,.ui.tertiary.primary.buttons .tertiary.active.button,.ui.tertiary.primary.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #007bd8;color:#1279c6}.ui.secondary.button,.ui.secondary.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.secondary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.secondary.button:hover,.ui.secondary.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.secondary.button:focus,.ui.secondary.buttons .button:focus{background-color:#2e3032;color:#fff;text-shadow:none}.ui.secondary.button:active,.ui.secondary.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.secondary.active.button,.ui.secondary.button .active.button:active,.ui.secondary.buttons .active.button,.ui.secondary.buttons .active.button:active{background-color:#27292a;color:#fff;text-shadow:none}.ui.basic.secondary.button,.ui.basic.secondary.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #1b1c1d;color:#1b1c1d}.ui.basic.secondary.button:hover,.ui.basic.secondary.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #27292a;color:#27292a}.ui.basic.secondary.button:focus,.ui.basic.secondary.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #2e3032;color:#27292a}.ui.basic.secondary.active.button,.ui.basic.secondary.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #27292a;color:#343637}.ui.basic.secondary.button:active,.ui.basic.secondary.buttons .button:active{box-shadow:inset 0 0 0 1px #343637;color:#343637}.ui.buttons:not(.vertical)>.basic.secondary.button:not(:first-child){margin-left:-1px}.ui.inverted.secondary.button,.ui.inverted.secondary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #545454;color:#545454}.ui.inverted.secondary.button.active,.ui.inverted.secondary.button:active,.ui.inverted.secondary.button:focus,.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button.active,.ui.inverted.secondary.buttons .button:active,.ui.inverted.secondary.buttons .button:focus,.ui.inverted.secondary.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button:hover{background-color:#6e6e6e}.ui.inverted.secondary.button:focus,.ui.inverted.secondary.buttons .button:focus{background-color:#686868}.ui.inverted.secondary.active.button,.ui.inverted.secondary.buttons .active.button{background-color:#616161}.ui.inverted.secondary.button:active,.ui.inverted.secondary.buttons .button:active{background-color:#6e6e6e}.ui.inverted.secondary.basic.button,.ui.inverted.secondary.basic.buttons .button,.ui.inverted.secondary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.secondary.basic.button:hover,.ui.inverted.secondary.basic.buttons .button:hover,.ui.inverted.secondary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #6e6e6e;color:#545454}.ui.inverted.secondary.basic.button:focus,.ui.inverted.secondary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #686868;color:#545454}.ui.inverted.secondary.basic.active.button,.ui.inverted.secondary.basic.buttons .active.button,.ui.inverted.secondary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #616161;color:#545454}.ui.inverted.secondary.basic.button:active,.ui.inverted.secondary.basic.buttons .button:active,.ui.inverted.secondary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #6e6e6e;color:#545454}.ui.tertiary.secondary.button,.ui.tertiary.secondary.buttons .button,.ui.tertiary.secondary.buttons .tertiary.button{background:transparent;box-shadow:none;color:#1b1c1d}.ui.tertiary.secondary.button:hover,.ui.tertiary.secondary.buttons .button:hover,.ui.tertiary.secondary.buttons button:hover{box-shadow:inset 0 -.2em 0 #292929;color:#292929}.ui.tertiary.secondary.button:focus,.ui.tertiary.secondary.buttons .button:focus,.ui.tertiary.secondary.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #303030;color:#303030}.ui.tertiary.secondary.active.button,.ui.tertiary.secondary.button:active,.ui.tertiary.secondary.buttons .active.button,.ui.tertiary.secondary.buttons .button:active,.ui.tertiary.secondary.buttons .tertiary.active.button,.ui.tertiary.secondary.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #1f2933;color:#27292a}.ui.red.button,.ui.red.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.red.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.red.button:hover,.ui.red.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.red.button:focus,.ui.red.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.red.button:active,.ui.red.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.red.active.button,.ui.red.button .active.button:active,.ui.red.buttons .active.button,.ui.red.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.red.button,.ui.basic.red.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #db2828;color:#db2828}.ui.basic.red.button:hover,.ui.basic.red.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #d01919;color:#d01919}.ui.basic.red.button:focus,.ui.basic.red.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #ca1010;color:#d01919}.ui.basic.red.active.button,.ui.basic.red.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #d41515;color:#b21e1e}.ui.basic.red.button:active,.ui.basic.red.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e;color:#b21e1e}.ui.buttons:not(.vertical)>.basic.red.button:not(:first-child){margin-left:-1px}.ui.inverted.red.button,.ui.inverted.red.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff695e;color:#ff695e}.ui.inverted.red.button.active,.ui.inverted.red.button:active,.ui.inverted.red.button:focus,.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button.active,.ui.inverted.red.buttons .button:active,.ui.inverted.red.buttons .button:focus,.ui.inverted.red.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button:hover{background-color:#ff392b}.ui.inverted.red.button:focus,.ui.inverted.red.buttons .button:focus{background-color:#ff4335}.ui.inverted.red.active.button,.ui.inverted.red.buttons .active.button{background-color:#ff5144}.ui.inverted.red.button:active,.ui.inverted.red.buttons .button:active{background-color:#ff392b}.ui.inverted.red.basic.button,.ui.inverted.red.basic.buttons .button,.ui.inverted.red.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.red.basic.button:hover,.ui.inverted.red.basic.buttons .button:hover,.ui.inverted.red.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff392b;color:#ff695e}.ui.inverted.red.basic.button:focus,.ui.inverted.red.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff4335;color:#ff695e}.ui.inverted.red.basic.active.button,.ui.inverted.red.basic.buttons .active.button,.ui.inverted.red.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff5144;color:#ff695e}.ui.inverted.red.basic.button:active,.ui.inverted.red.basic.buttons .button:active,.ui.inverted.red.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff392b;color:#ff695e}.ui.tertiary.red.button,.ui.tertiary.red.buttons .button,.ui.tertiary.red.buttons .tertiary.button{background:transparent;box-shadow:none;color:#db2828}.ui.tertiary.red.button:hover,.ui.tertiary.red.buttons .button:hover,.ui.tertiary.red.buttons button:hover{box-shadow:inset 0 -.2em 0 #b93131;color:#b93131}.ui.tertiary.red.button:focus,.ui.tertiary.red.buttons .button:focus,.ui.tertiary.red.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #b52626;color:#b52626}.ui.tertiary.red.active.button,.ui.tertiary.red.button:active,.ui.tertiary.red.buttons .active.button,.ui.tertiary.red.buttons .button:active,.ui.tertiary.red.buttons .tertiary.active.button,.ui.tertiary.red.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #ea0000;color:#d41515}.ui.orange.button,.ui.orange.buttons .button{background-color:#f2711c;color:#fff;text-shadow:none;background-image:none}.ui.orange.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.orange.button:hover,.ui.orange.buttons .button:hover{background-color:#f26202;color:#fff;text-shadow:none}.ui.orange.button:focus,.ui.orange.buttons .button:focus{background-color:#e55b00;color:#fff;text-shadow:none}.ui.orange.button:active,.ui.orange.buttons .button:active{background-color:#cf590c;color:#fff;text-shadow:none}.ui.orange.active.button,.ui.orange.button .active.button:active,.ui.orange.buttons .active.button,.ui.orange.buttons .active.button:active{background-color:#f56100;color:#fff;text-shadow:none}.ui.basic.orange.button,.ui.basic.orange.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #f2711c;color:#f2711c}.ui.basic.orange.button:hover,.ui.basic.orange.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #f26202;color:#f26202}.ui.basic.orange.button:focus,.ui.basic.orange.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #e55b00;color:#f26202}.ui.basic.orange.active.button,.ui.basic.orange.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #f56100;color:#cf590c}.ui.basic.orange.button:active,.ui.basic.orange.buttons .button:active{box-shadow:inset 0 0 0 1px #cf590c;color:#cf590c}.ui.buttons:not(.vertical)>.basic.orange.button:not(:first-child){margin-left:-1px}.ui.inverted.orange.button,.ui.inverted.orange.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff851b;color:#ff851b}.ui.inverted.orange.button.active,.ui.inverted.orange.button:active,.ui.inverted.orange.button:focus,.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button.active,.ui.inverted.orange.buttons .button:active,.ui.inverted.orange.buttons .button:focus,.ui.inverted.orange.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button:hover{background-color:#e76b00}.ui.inverted.orange.button:focus,.ui.inverted.orange.buttons .button:focus{background-color:#f17000}.ui.inverted.orange.active.button,.ui.inverted.orange.buttons .active.button{background-color:#ff7701}.ui.inverted.orange.button:active,.ui.inverted.orange.buttons .button:active{background-color:#e76b00}.ui.inverted.orange.basic.button,.ui.inverted.orange.basic.buttons .button,.ui.inverted.orange.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.orange.basic.button:hover,.ui.inverted.orange.basic.buttons .button:hover,.ui.inverted.orange.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #e76b00;color:#ff851b}.ui.inverted.orange.basic.button:focus,.ui.inverted.orange.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f17000;color:#ff851b}.ui.inverted.orange.basic.active.button,.ui.inverted.orange.basic.buttons .active.button,.ui.inverted.orange.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff7701;color:#ff851b}.ui.inverted.orange.basic.button:active,.ui.inverted.orange.basic.buttons .button:active,.ui.inverted.orange.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #e76b00;color:#ff851b}.ui.tertiary.orange.button,.ui.tertiary.orange.buttons .button,.ui.tertiary.orange.buttons .tertiary.button{background:transparent;box-shadow:none;color:#f2711c}.ui.tertiary.orange.button:hover,.ui.tertiary.orange.buttons .button:hover,.ui.tertiary.orange.buttons button:hover{box-shadow:inset 0 -.2em 0 #da671b;color:#da671b}.ui.tertiary.orange.button:focus,.ui.tertiary.orange.buttons .button:focus,.ui.tertiary.orange.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #ce6017;color:#ce6017}.ui.tertiary.orange.active.button,.ui.tertiary.orange.button:active,.ui.tertiary.orange.buttons .active.button,.ui.tertiary.orange.buttons .button:active,.ui.tertiary.orange.buttons .tertiary.active.button,.ui.tertiary.orange.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #f56100;color:#f56100}.ui.yellow.button,.ui.yellow.buttons .button{background-color:#fbbd08;color:#fff;text-shadow:none;background-image:none}.ui.yellow.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.yellow.button:hover,.ui.yellow.buttons .button:hover{background-color:#eaae00;color:#fff;text-shadow:none}.ui.yellow.button:focus,.ui.yellow.buttons .button:focus{background-color:#daa300;color:#fff;text-shadow:none}.ui.yellow.button:active,.ui.yellow.buttons .button:active{background-color:#cd9903;color:#fff;text-shadow:none}.ui.yellow.active.button,.ui.yellow.button .active.button:active,.ui.yellow.buttons .active.button,.ui.yellow.buttons .active.button:active{background-color:#eaae00;color:#fff;text-shadow:none}.ui.basic.yellow.button,.ui.basic.yellow.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #fbbd08;color:#fbbd08}.ui.basic.yellow.button:hover,.ui.basic.yellow.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #eaae00;color:#eaae00}.ui.basic.yellow.button:focus,.ui.basic.yellow.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #daa300;color:#eaae00}.ui.basic.yellow.active.button,.ui.basic.yellow.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #eaae00;color:#cd9903}.ui.basic.yellow.button:active,.ui.basic.yellow.buttons .button:active{box-shadow:inset 0 0 0 1px #cd9903;color:#cd9903}.ui.buttons:not(.vertical)>.basic.yellow.button:not(:first-child){margin-left:-1px}.ui.inverted.yellow.button,.ui.inverted.yellow.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ffe21f;color:#ffe21f}.ui.inverted.yellow.button.active,.ui.inverted.yellow.button:active,.ui.inverted.yellow.button:focus,.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button.active,.ui.inverted.yellow.buttons .button:active,.ui.inverted.yellow.buttons .button:focus,.ui.inverted.yellow.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button:hover{background-color:#ebcd00}.ui.inverted.yellow.button:focus,.ui.inverted.yellow.buttons .button:focus{background-color:#f5d500}.ui.inverted.yellow.active.button,.ui.inverted.yellow.buttons .active.button{background-color:#ffdf05}.ui.inverted.yellow.button:active,.ui.inverted.yellow.buttons .button:active{background-color:#ebcd00}.ui.inverted.yellow.basic.button,.ui.inverted.yellow.basic.buttons .button,.ui.inverted.yellow.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.yellow.basic.button:hover,.ui.inverted.yellow.basic.buttons .button:hover,.ui.inverted.yellow.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ebcd00;color:#ffe21f}.ui.inverted.yellow.basic.button:focus,.ui.inverted.yellow.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f5d500;color:#ffe21f}.ui.inverted.yellow.basic.active.button,.ui.inverted.yellow.basic.buttons .active.button,.ui.inverted.yellow.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ffdf05;color:#ffe21f}.ui.inverted.yellow.basic.button:active,.ui.inverted.yellow.basic.buttons .button:active,.ui.inverted.yellow.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ebcd00;color:#ffe21f}.ui.tertiary.yellow.button,.ui.tertiary.yellow.buttons .button,.ui.tertiary.yellow.buttons .tertiary.button{background:transparent;box-shadow:none;color:#fbbd08}.ui.tertiary.yellow.button:hover,.ui.tertiary.yellow.buttons .button:hover,.ui.tertiary.yellow.buttons button:hover{box-shadow:inset 0 -.2em 0 #d2a217;color:#d2a217}.ui.tertiary.yellow.button:focus,.ui.tertiary.yellow.buttons .button:focus,.ui.tertiary.yellow.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #c49816;color:#c49816}.ui.tertiary.yellow.active.button,.ui.tertiary.yellow.button:active,.ui.tertiary.yellow.buttons .active.button,.ui.tertiary.yellow.buttons .button:active,.ui.tertiary.yellow.buttons .tertiary.active.button,.ui.tertiary.yellow.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #eaae00;color:#eaae00}.ui.olive.button,.ui.olive.buttons .button{background-color:#b5cc18;color:#fff;text-shadow:none;background-image:none}.ui.olive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.olive.button:hover,.ui.olive.buttons .button:hover{background-color:#a7bd0d;color:#fff;text-shadow:none}.ui.olive.button:focus,.ui.olive.buttons .button:focus{background-color:#a0b605;color:#fff;text-shadow:none}.ui.olive.button:active,.ui.olive.buttons .button:active{background-color:#8d9e13;color:#fff;text-shadow:none}.ui.olive.active.button,.ui.olive.button .active.button:active,.ui.olive.buttons .active.button,.ui.olive.buttons .active.button:active{background-color:#aac109;color:#fff;text-shadow:none}.ui.basic.olive.button,.ui.basic.olive.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #b5cc18;color:#b5cc18}.ui.basic.olive.button:hover,.ui.basic.olive.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #a7bd0d;color:#a7bd0d}.ui.basic.olive.button:focus,.ui.basic.olive.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #a0b605;color:#a7bd0d}.ui.basic.olive.active.button,.ui.basic.olive.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #aac109;color:#8d9e13}.ui.basic.olive.button:active,.ui.basic.olive.buttons .button:active{box-shadow:inset 0 0 0 1px #8d9e13;color:#8d9e13}.ui.buttons:not(.vertical)>.basic.olive.button:not(:first-child){margin-left:-1px}.ui.inverted.olive.button,.ui.inverted.olive.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d9e778;color:#d9e778}.ui.inverted.olive.button.active,.ui.inverted.olive.button:active,.ui.inverted.olive.button:focus,.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button.active,.ui.inverted.olive.buttons .button:active,.ui.inverted.olive.buttons .button:focus,.ui.inverted.olive.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button:hover{background-color:#d2e745}.ui.inverted.olive.button:focus,.ui.inverted.olive.buttons .button:focus{background-color:#daef47}.ui.inverted.olive.active.button,.ui.inverted.olive.buttons .active.button{background-color:#daed59}.ui.inverted.olive.button:active,.ui.inverted.olive.buttons .button:active{background-color:#cddf4d}.ui.inverted.olive.basic.button,.ui.inverted.olive.basic.buttons .button,.ui.inverted.olive.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.olive.basic.button:hover,.ui.inverted.olive.basic.buttons .button:hover,.ui.inverted.olive.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #d2e745;color:#d9e778}.ui.inverted.olive.basic.button:focus,.ui.inverted.olive.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #daef47;color:#d9e778}.ui.inverted.olive.basic.active.button,.ui.inverted.olive.basic.buttons .active.button,.ui.inverted.olive.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #daed59;color:#d9e778}.ui.inverted.olive.basic.button:active,.ui.inverted.olive.basic.buttons .button:active,.ui.inverted.olive.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cddf4d;color:#d9e778}.ui.tertiary.olive.button,.ui.tertiary.olive.buttons .button,.ui.tertiary.olive.buttons .tertiary.button{background:transparent;box-shadow:none;color:#b5cc18}.ui.tertiary.olive.button:hover,.ui.tertiary.olive.buttons .button:hover,.ui.tertiary.olive.buttons button:hover{box-shadow:inset 0 -.2em 0 #98a922;color:#98a922}.ui.tertiary.olive.button:focus,.ui.tertiary.olive.buttons .button:focus,.ui.tertiary.olive.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #92a418;color:#92a418}.ui.tertiary.olive.active.button,.ui.tertiary.olive.button:active,.ui.tertiary.olive.buttons .active.button,.ui.tertiary.olive.buttons .button:active,.ui.tertiary.olive.buttons .tertiary.active.button,.ui.tertiary.olive.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #b1cb00;color:#aac109}.ui.green.button,.ui.green.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.green.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.green.button:hover,.ui.green.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.green.button:focus,.ui.green.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.green.button:active,.ui.green.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.green.active.button,.ui.green.button .active.button:active,.ui.green.buttons .active.button,.ui.green.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.green.button,.ui.basic.green.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #21ba45;color:#21ba45}.ui.basic.green.button:hover,.ui.basic.green.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #16ab39;color:#16ab39}.ui.basic.green.button:focus,.ui.basic.green.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #0ea432;color:#16ab39}.ui.basic.green.active.button,.ui.basic.green.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #13ae38;color:#198f35}.ui.basic.green.button:active,.ui.basic.green.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35;color:#198f35}.ui.buttons:not(.vertical)>.basic.green.button:not(:first-child){margin-left:-1px}.ui.inverted.green.button,.ui.inverted.green.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #2ecc40;color:#2ecc40}.ui.inverted.green.button.active,.ui.inverted.green.button:active,.ui.inverted.green.button:focus,.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button.active,.ui.inverted.green.buttons .button:active,.ui.inverted.green.buttons .button:focus,.ui.inverted.green.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button:hover{background-color:#1ea92e}.ui.inverted.green.button:focus,.ui.inverted.green.buttons .button:focus{background-color:#19b82b}.ui.inverted.green.active.button,.ui.inverted.green.buttons .active.button{background-color:#1fc231}.ui.inverted.green.button:active,.ui.inverted.green.buttons .button:active{background-color:#25a233}.ui.inverted.green.basic.button,.ui.inverted.green.basic.buttons .button,.ui.inverted.green.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.green.basic.button:hover,.ui.inverted.green.basic.buttons .button:hover,.ui.inverted.green.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #1ea92e;color:#2ecc40}.ui.inverted.green.basic.button:focus,.ui.inverted.green.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #19b82b;color:#2ecc40}.ui.inverted.green.basic.active.button,.ui.inverted.green.basic.buttons .active.button,.ui.inverted.green.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #1fc231;color:#2ecc40}.ui.inverted.green.basic.button:active,.ui.inverted.green.basic.buttons .button:active,.ui.inverted.green.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #25a233;color:#2ecc40}.ui.tertiary.green.button,.ui.tertiary.green.buttons .button,.ui.tertiary.green.buttons .tertiary.button{background:transparent;box-shadow:none;color:#21ba45}.ui.tertiary.green.button:hover,.ui.tertiary.green.buttons .button:hover,.ui.tertiary.green.buttons button:hover{box-shadow:inset 0 -.2em 0 #2a9844;color:#2a9844}.ui.tertiary.green.button:focus,.ui.tertiary.green.buttons .button:focus,.ui.tertiary.green.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #20923b;color:#20923b}.ui.tertiary.green.active.button,.ui.tertiary.green.button:active,.ui.tertiary.green.buttons .active.button,.ui.tertiary.green.buttons .button:active,.ui.tertiary.green.buttons .tertiary.active.button,.ui.tertiary.green.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #00c22e;color:#13ae38}.ui.teal.button,.ui.teal.buttons .button{background-color:#00b5ad;color:#fff;text-shadow:none;background-image:none}.ui.teal.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.teal.button:hover,.ui.teal.buttons .button:hover{background-color:#009c95;color:#fff;text-shadow:none}.ui.teal.button:focus,.ui.teal.buttons .button:focus{background-color:#008c86;color:#fff;text-shadow:none}.ui.teal.button:active,.ui.teal.buttons .button:active{background-color:#00827c;color:#fff;text-shadow:none}.ui.teal.active.button,.ui.teal.button .active.button:active,.ui.teal.buttons .active.button,.ui.teal.buttons .active.button:active{background-color:#009c95;color:#fff;text-shadow:none}.ui.basic.teal.button,.ui.basic.teal.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #00b5ad;color:#00b5ad}.ui.basic.teal.button:hover,.ui.basic.teal.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #009c95;color:#009c95}.ui.basic.teal.button:focus,.ui.basic.teal.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #008c86;color:#009c95}.ui.basic.teal.active.button,.ui.basic.teal.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #009c95;color:#00827c}.ui.basic.teal.button:active,.ui.basic.teal.buttons .button:active{box-shadow:inset 0 0 0 1px #00827c;color:#00827c}.ui.buttons:not(.vertical)>.basic.teal.button:not(:first-child){margin-left:-1px}.ui.inverted.teal.button,.ui.inverted.teal.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #6dffff;color:#6dffff}.ui.inverted.teal.button.active,.ui.inverted.teal.button:active,.ui.inverted.teal.button:focus,.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button.active,.ui.inverted.teal.buttons .button:active,.ui.inverted.teal.buttons .button:focus,.ui.inverted.teal.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button:hover{background-color:#3affff}.ui.inverted.teal.button:focus,.ui.inverted.teal.buttons .button:focus{background-color:#4ff}.ui.inverted.teal.active.button,.ui.inverted.teal.buttons .active.button{background-color:#54ffff}.ui.inverted.teal.button:active,.ui.inverted.teal.buttons .button:active{background-color:#3affff}.ui.inverted.teal.basic.button,.ui.inverted.teal.basic.buttons .button,.ui.inverted.teal.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.teal.basic.button:hover,.ui.inverted.teal.basic.buttons .button:hover,.ui.inverted.teal.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #3affff;color:#6dffff}.ui.inverted.teal.basic.button:focus,.ui.inverted.teal.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #4ff;color:#6dffff}.ui.inverted.teal.basic.active.button,.ui.inverted.teal.basic.buttons .active.button,.ui.inverted.teal.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #54ffff;color:#6dffff}.ui.inverted.teal.basic.button:active,.ui.inverted.teal.basic.buttons .button:active,.ui.inverted.teal.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3affff;color:#6dffff}.ui.tertiary.teal.button,.ui.tertiary.teal.buttons .button,.ui.tertiary.teal.buttons .tertiary.button{background:transparent;box-shadow:none;color:#00b5ad}.ui.tertiary.teal.button:hover,.ui.tertiary.teal.buttons .button:hover,.ui.tertiary.teal.buttons button:hover{box-shadow:inset 0 -.2em 0 #108c86;color:#108c86}.ui.tertiary.teal.button:focus,.ui.tertiary.teal.buttons .button:focus,.ui.tertiary.teal.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #0e7e79;color:#0e7e79}.ui.tertiary.teal.active.button,.ui.tertiary.teal.button:active,.ui.tertiary.teal.buttons .active.button,.ui.tertiary.teal.buttons .button:active,.ui.tertiary.teal.buttons .tertiary.active.button,.ui.tertiary.teal.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #009c95;color:#009c95}.ui.blue.button,.ui.blue.buttons .button{background-color:#2185d0;color:#fff;text-shadow:none;background-image:none}.ui.blue.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.blue.button:hover,.ui.blue.buttons .button:hover{background-color:#1678c2;color:#fff;text-shadow:none}.ui.blue.button:focus,.ui.blue.buttons .button:focus{background-color:#0d71bb;color:#fff;text-shadow:none}.ui.blue.button:active,.ui.blue.buttons .button:active{background-color:#1a69a4;color:#fff;text-shadow:none}.ui.blue.active.button,.ui.blue.button .active.button:active,.ui.blue.buttons .active.button,.ui.blue.buttons .active.button:active{background-color:#1279c6;color:#fff;text-shadow:none}.ui.basic.blue.button,.ui.basic.blue.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #2185d0;color:#2185d0}.ui.basic.blue.button:hover,.ui.basic.blue.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #1678c2;color:#1678c2}.ui.basic.blue.button:focus,.ui.basic.blue.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #0d71bb;color:#1678c2}.ui.basic.blue.active.button,.ui.basic.blue.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #1279c6;color:#1a69a4}.ui.basic.blue.button:active,.ui.basic.blue.buttons .button:active{box-shadow:inset 0 0 0 1px #1a69a4;color:#1a69a4}.ui.buttons:not(.vertical)>.basic.blue.button:not(:first-child){margin-left:-1px}.ui.inverted.blue.button,.ui.inverted.blue.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #54c8ff;color:#54c8ff}.ui.inverted.blue.button.active,.ui.inverted.blue.button:active,.ui.inverted.blue.button:focus,.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button.active,.ui.inverted.blue.buttons .button:active,.ui.inverted.blue.buttons .button:focus,.ui.inverted.blue.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button:hover{background-color:#21b8ff}.ui.inverted.blue.button:focus,.ui.inverted.blue.buttons .button:focus{background-color:#2bbbff}.ui.inverted.blue.active.button,.ui.inverted.blue.buttons .active.button{background-color:#3ac0ff}.ui.inverted.blue.button:active,.ui.inverted.blue.buttons .button:active{background-color:#21b8ff}.ui.inverted.blue.basic.button,.ui.inverted.blue.basic.buttons .button,.ui.inverted.blue.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.blue.basic.button:hover,.ui.inverted.blue.basic.buttons .button:hover,.ui.inverted.blue.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.inverted.blue.basic.button:focus,.ui.inverted.blue.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #2bbbff;color:#54c8ff}.ui.inverted.blue.basic.active.button,.ui.inverted.blue.basic.buttons .active.button,.ui.inverted.blue.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3ac0ff;color:#54c8ff}.ui.inverted.blue.basic.button:active,.ui.inverted.blue.basic.buttons .button:active,.ui.inverted.blue.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.tertiary.blue.button,.ui.tertiary.blue.buttons .button,.ui.tertiary.blue.buttons .tertiary.button{background:transparent;box-shadow:none;color:#2185d0}.ui.tertiary.blue.button:hover,.ui.tertiary.blue.buttons .button:hover,.ui.tertiary.blue.buttons button:hover{box-shadow:inset 0 -.2em 0 #2b75ac;color:#2b75ac}.ui.tertiary.blue.button:focus,.ui.tertiary.blue.buttons .button:focus,.ui.tertiary.blue.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #216ea7;color:#216ea7}.ui.tertiary.blue.active.button,.ui.tertiary.blue.button:active,.ui.tertiary.blue.buttons .active.button,.ui.tertiary.blue.buttons .button:active,.ui.tertiary.blue.buttons .tertiary.active.button,.ui.tertiary.blue.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #007bd8;color:#1279c6}.ui.violet.button,.ui.violet.buttons .button{background-color:#6435c9;color:#fff;text-shadow:none;background-image:none}.ui.violet.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.violet.button:hover,.ui.violet.buttons .button:hover{background-color:#5829bb;color:#fff;text-shadow:none}.ui.violet.button:focus,.ui.violet.buttons .button:focus{background-color:#4f20b5;color:#fff;text-shadow:none}.ui.violet.button:active,.ui.violet.buttons .button:active{background-color:#502aa1;color:#fff;text-shadow:none}.ui.violet.active.button,.ui.violet.button .active.button:active,.ui.violet.buttons .active.button,.ui.violet.buttons .active.button:active{background-color:#5626bf;color:#fff;text-shadow:none}.ui.basic.violet.button,.ui.basic.violet.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #6435c9;color:#6435c9}.ui.basic.violet.button:hover,.ui.basic.violet.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #5829bb;color:#5829bb}.ui.basic.violet.button:focus,.ui.basic.violet.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #4f20b5;color:#5829bb}.ui.basic.violet.active.button,.ui.basic.violet.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #5626bf;color:#502aa1}.ui.basic.violet.button:active,.ui.basic.violet.buttons .button:active{box-shadow:inset 0 0 0 1px #502aa1;color:#502aa1}.ui.buttons:not(.vertical)>.basic.violet.button:not(:first-child){margin-left:-1px}.ui.inverted.violet.button,.ui.inverted.violet.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #a291fb;color:#a291fb}.ui.inverted.violet.button.active,.ui.inverted.violet.button:active,.ui.inverted.violet.button:focus,.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button.active,.ui.inverted.violet.buttons .button:active,.ui.inverted.violet.buttons .button:focus,.ui.inverted.violet.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button:hover{background-color:#745aff}.ui.inverted.violet.button:focus,.ui.inverted.violet.buttons .button:focus{background-color:#7d64ff}.ui.inverted.violet.active.button,.ui.inverted.violet.buttons .active.button{background-color:#8a73ff}.ui.inverted.violet.button:active,.ui.inverted.violet.buttons .button:active{background-color:#7860f9}.ui.inverted.violet.basic.button,.ui.inverted.violet.basic.buttons .button,.ui.inverted.violet.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.violet.basic.button:hover,.ui.inverted.violet.basic.buttons .button:hover,.ui.inverted.violet.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #745aff;color:#a291fb}.ui.inverted.violet.basic.button:focus,.ui.inverted.violet.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #7d64ff;color:#a291fb}.ui.inverted.violet.basic.active.button,.ui.inverted.violet.basic.buttons .active.button,.ui.inverted.violet.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #8a73ff;color:#a291fb}.ui.inverted.violet.basic.button:active,.ui.inverted.violet.basic.buttons .button:active,.ui.inverted.violet.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #7860f9;color:#a291fb}.ui.tertiary.violet.button,.ui.tertiary.violet.buttons .button,.ui.tertiary.violet.buttons .tertiary.button{background:transparent;box-shadow:none;color:#6435c9}.ui.tertiary.violet.button:hover,.ui.tertiary.violet.buttons .button:hover,.ui.tertiary.violet.buttons button:hover{box-shadow:inset 0 -.2em 0 #6040a5;color:#6040a5}.ui.tertiary.violet.button:focus,.ui.tertiary.violet.buttons .button:focus,.ui.tertiary.violet.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #5735a0;color:#5735a0}.ui.tertiary.violet.active.button,.ui.tertiary.violet.button:active,.ui.tertiary.violet.buttons .active.button,.ui.tertiary.violet.buttons .button:active,.ui.tertiary.violet.buttons .tertiary.active.button,.ui.tertiary.violet.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #4e0fd6;color:#5626bf}.ui.purple.button,.ui.purple.buttons .button{background-color:#a333c8;color:#fff;text-shadow:none;background-image:none}.ui.purple.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.purple.button:hover,.ui.purple.buttons .button:hover{background-color:#9627ba;color:#fff;text-shadow:none}.ui.purple.button:focus,.ui.purple.buttons .button:focus{background-color:#8f1eb4;color:#fff;text-shadow:none}.ui.purple.button:active,.ui.purple.buttons .button:active{background-color:#82299f;color:#fff;text-shadow:none}.ui.purple.active.button,.ui.purple.button .active.button:active,.ui.purple.buttons .active.button,.ui.purple.buttons .active.button:active{background-color:#9724be;color:#fff;text-shadow:none}.ui.basic.purple.button,.ui.basic.purple.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #a333c8;color:#a333c8}.ui.basic.purple.button:hover,.ui.basic.purple.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #9627ba;color:#9627ba}.ui.basic.purple.button:focus,.ui.basic.purple.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #8f1eb4;color:#9627ba}.ui.basic.purple.active.button,.ui.basic.purple.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #9724be;color:#82299f}.ui.basic.purple.button:active,.ui.basic.purple.buttons .button:active{box-shadow:inset 0 0 0 1px #82299f;color:#82299f}.ui.buttons:not(.vertical)>.basic.purple.button:not(:first-child){margin-left:-1px}.ui.inverted.purple.button,.ui.inverted.purple.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #dc73ff;color:#dc73ff}.ui.inverted.purple.button.active,.ui.inverted.purple.button:active,.ui.inverted.purple.button:focus,.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button.active,.ui.inverted.purple.buttons .button:active,.ui.inverted.purple.buttons .button:focus,.ui.inverted.purple.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button:hover{background-color:#cf40ff}.ui.inverted.purple.button:focus,.ui.inverted.purple.buttons .button:focus{background-color:#d24aff}.ui.inverted.purple.active.button,.ui.inverted.purple.buttons .active.button{background-color:#d65aff}.ui.inverted.purple.button:active,.ui.inverted.purple.buttons .button:active{background-color:#cf40ff}.ui.inverted.purple.basic.button,.ui.inverted.purple.basic.buttons .button,.ui.inverted.purple.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.purple.basic.button:hover,.ui.inverted.purple.basic.buttons .button:hover,.ui.inverted.purple.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #cf40ff;color:#dc73ff}.ui.inverted.purple.basic.button:focus,.ui.inverted.purple.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #d24aff;color:#dc73ff}.ui.inverted.purple.basic.active.button,.ui.inverted.purple.basic.buttons .active.button,.ui.inverted.purple.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #d65aff;color:#dc73ff}.ui.inverted.purple.basic.button:active,.ui.inverted.purple.basic.buttons .button:active,.ui.inverted.purple.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cf40ff;color:#dc73ff}.ui.tertiary.purple.button,.ui.tertiary.purple.buttons .button,.ui.tertiary.purple.buttons .tertiary.button{background:transparent;box-shadow:none;color:#a333c8}.ui.tertiary.purple.button:hover,.ui.tertiary.purple.buttons .button:hover,.ui.tertiary.purple.buttons button:hover{box-shadow:inset 0 -.2em 0 #8a3ea4;color:#8a3ea4}.ui.tertiary.purple.button:focus,.ui.tertiary.purple.buttons .button:focus,.ui.tertiary.purple.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #84339f;color:#84339f}.ui.tertiary.purple.active.button,.ui.tertiary.purple.button:active,.ui.tertiary.purple.buttons .active.button,.ui.tertiary.purple.buttons .button:active,.ui.tertiary.purple.buttons .tertiary.active.button,.ui.tertiary.purple.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #a30dd4;color:#9724be}.ui.pink.button,.ui.pink.buttons .button{background-color:#e03997;color:#fff;text-shadow:none;background-image:none}.ui.pink.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pink.button:hover,.ui.pink.buttons .button:hover{background-color:#e61a8d;color:#fff;text-shadow:none}.ui.pink.button:focus,.ui.pink.buttons .button:focus{background-color:#e10f85;color:#fff;text-shadow:none}.ui.pink.button:active,.ui.pink.buttons .button:active{background-color:#c71f7e;color:#fff;text-shadow:none}.ui.pink.active.button,.ui.pink.button .active.button:active,.ui.pink.buttons .active.button,.ui.pink.buttons .active.button:active{background-color:#ea158d;color:#fff;text-shadow:none}.ui.basic.pink.button,.ui.basic.pink.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #e03997;color:#e03997}.ui.basic.pink.button:hover,.ui.basic.pink.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #e61a8d;color:#e61a8d}.ui.basic.pink.button:focus,.ui.basic.pink.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #e10f85;color:#e61a8d}.ui.basic.pink.active.button,.ui.basic.pink.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #ea158d;color:#c71f7e}.ui.basic.pink.button:active,.ui.basic.pink.buttons .button:active{box-shadow:inset 0 0 0 1px #c71f7e;color:#c71f7e}.ui.buttons:not(.vertical)>.basic.pink.button:not(:first-child){margin-left:-1px}.ui.inverted.pink.button,.ui.inverted.pink.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff8edf;color:#ff8edf}.ui.inverted.pink.button.active,.ui.inverted.pink.button:active,.ui.inverted.pink.button:focus,.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button.active,.ui.inverted.pink.buttons .button:active,.ui.inverted.pink.buttons .button:focus,.ui.inverted.pink.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button:hover{background-color:#ff5bd1}.ui.inverted.pink.button:focus,.ui.inverted.pink.buttons .button:focus{background-color:#ff65d3}.ui.inverted.pink.active.button,.ui.inverted.pink.buttons .active.button{background-color:#ff74d8}.ui.inverted.pink.button:active,.ui.inverted.pink.buttons .button:active{background-color:#ff5bd1}.ui.inverted.pink.basic.button,.ui.inverted.pink.basic.buttons .button,.ui.inverted.pink.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.pink.basic.button:hover,.ui.inverted.pink.basic.buttons .button:hover,.ui.inverted.pink.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff5bd1;color:#ff8edf}.ui.inverted.pink.basic.button:focus,.ui.inverted.pink.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff65d3;color:#ff8edf}.ui.inverted.pink.basic.active.button,.ui.inverted.pink.basic.buttons .active.button,.ui.inverted.pink.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff74d8;color:#ff8edf}.ui.inverted.pink.basic.button:active,.ui.inverted.pink.basic.buttons .button:active,.ui.inverted.pink.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff5bd1;color:#ff8edf}.ui.tertiary.pink.button,.ui.tertiary.pink.buttons .button,.ui.tertiary.pink.buttons .tertiary.button{background:transparent;box-shadow:none;color:#e03997}.ui.tertiary.pink.button:hover,.ui.tertiary.pink.buttons .button:hover,.ui.tertiary.pink.buttons button:hover{box-shadow:inset 0 -.2em 0 #cc3389;color:#cc3389}.ui.tertiary.pink.button:focus,.ui.tertiary.pink.buttons .button:focus,.ui.tertiary.pink.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #c92782;color:#c92782}.ui.tertiary.pink.active.button,.ui.tertiary.pink.button:active,.ui.tertiary.pink.buttons .active.button,.ui.tertiary.pink.buttons .button:active,.ui.tertiary.pink.buttons .tertiary.active.button,.ui.tertiary.pink.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #ff0090;color:#ea158d}.ui.brown.button,.ui.brown.buttons .button{background-color:#a5673f;color:#fff;text-shadow:none;background-image:none}.ui.brown.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.brown.button:hover,.ui.brown.buttons .button:hover{background-color:#975b33;color:#fff;text-shadow:none}.ui.brown.button:focus,.ui.brown.buttons .button:focus{background-color:#90532b;color:#fff;text-shadow:none}.ui.brown.button:active,.ui.brown.buttons .button:active{background-color:#805031;color:#fff;text-shadow:none}.ui.brown.active.button,.ui.brown.button .active.button:active,.ui.brown.buttons .active.button,.ui.brown.buttons .active.button:active{background-color:#995a31;color:#fff;text-shadow:none}.ui.basic.brown.button,.ui.basic.brown.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #a5673f;color:#a5673f}.ui.basic.brown.button:hover,.ui.basic.brown.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #975b33;color:#975b33}.ui.basic.brown.button:focus,.ui.basic.brown.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #90532b;color:#975b33}.ui.basic.brown.active.button,.ui.basic.brown.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #995a31;color:#805031}.ui.basic.brown.button:active,.ui.basic.brown.buttons .button:active{box-shadow:inset 0 0 0 1px #805031;color:#805031}.ui.buttons:not(.vertical)>.basic.brown.button:not(:first-child){margin-left:-1px}.ui.inverted.brown.button,.ui.inverted.brown.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d67c1c;color:#d67c1c}.ui.inverted.brown.button.active,.ui.inverted.brown.button:active,.ui.inverted.brown.button:focus,.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button.active,.ui.inverted.brown.buttons .button:active,.ui.inverted.brown.buttons .button:focus,.ui.inverted.brown.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button:hover{background-color:#b0620f}.ui.inverted.brown.button:focus,.ui.inverted.brown.buttons .button:focus{background-color:#c16808}.ui.inverted.brown.active.button,.ui.inverted.brown.buttons .active.button{background-color:#cc6f0d}.ui.inverted.brown.button:active,.ui.inverted.brown.buttons .button:active{background-color:#a96216}.ui.inverted.brown.basic.button,.ui.inverted.brown.basic.buttons .button,.ui.inverted.brown.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.brown.basic.button:hover,.ui.inverted.brown.basic.buttons .button:hover,.ui.inverted.brown.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #b0620f;color:#d67c1c}.ui.inverted.brown.basic.button:focus,.ui.inverted.brown.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c16808;color:#d67c1c}.ui.inverted.brown.basic.active.button,.ui.inverted.brown.basic.buttons .active.button,.ui.inverted.brown.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cc6f0d;color:#d67c1c}.ui.inverted.brown.basic.button:active,.ui.inverted.brown.basic.buttons .button:active,.ui.inverted.brown.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #a96216;color:#d67c1c}.ui.tertiary.brown.button,.ui.tertiary.brown.buttons .button,.ui.tertiary.brown.buttons .tertiary.button{background:transparent;box-shadow:none;color:#a5673f}.ui.tertiary.brown.button:hover,.ui.tertiary.brown.buttons .button:hover,.ui.tertiary.brown.buttons button:hover{box-shadow:inset 0 -.2em 0 #835f48;color:#835f48}.ui.tertiary.brown.button:focus,.ui.tertiary.brown.buttons .button:focus,.ui.tertiary.brown.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #7d573e;color:#7d573e}.ui.tertiary.brown.active.button,.ui.tertiary.brown.button:active,.ui.tertiary.brown.buttons .active.button,.ui.tertiary.brown.buttons .button:active,.ui.tertiary.brown.buttons .tertiary.active.button,.ui.tertiary.brown.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #ae561d;color:#995a31}.ui.grey.button,.ui.grey.buttons .button{background-color:#767676;color:#fff;text-shadow:none;background-image:none}.ui.grey.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.grey.button:hover,.ui.grey.buttons .button:hover{background-color:#838383;color:#fff;text-shadow:none}.ui.grey.button:focus,.ui.grey.buttons .button:focus{background-color:#8a8a8a;color:#fff;text-shadow:none}.ui.grey.button:active,.ui.grey.buttons .button:active{background-color:#909090;color:#fff;text-shadow:none}.ui.grey.active.button,.ui.grey.button .active.button:active,.ui.grey.buttons .active.button,.ui.grey.buttons .active.button:active{background-color:#696969;color:#fff;text-shadow:none}.ui.basic.grey.button,.ui.basic.grey.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #767676;color:#767676}.ui.basic.grey.button:hover,.ui.basic.grey.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #838383;color:#838383}.ui.basic.grey.button:focus,.ui.basic.grey.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #8a8a8a;color:#838383}.ui.basic.grey.active.button,.ui.basic.grey.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #696969;color:#909090}.ui.basic.grey.button:active,.ui.basic.grey.buttons .button:active{box-shadow:inset 0 0 0 1px #909090;color:#909090}.ui.buttons:not(.vertical)>.basic.grey.button:not(:first-child){margin-left:-1px}.ui.inverted.grey.button,.ui.inverted.grey.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5;color:#fff}.ui.inverted.grey.button.active,.ui.inverted.grey.button:active,.ui.inverted.grey.button:focus,.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button.active,.ui.inverted.grey.buttons .button:active,.ui.inverted.grey.buttons .button:focus,.ui.inverted.grey.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button:hover{background-color:#c2c4c5}.ui.inverted.grey.button:focus,.ui.inverted.grey.buttons .button:focus{background-color:#c7c9cb}.ui.inverted.grey.active.button,.ui.inverted.grey.buttons .active.button{background-color:#cfd0d2}.ui.inverted.grey.button:active,.ui.inverted.grey.buttons .button:active{background-color:#c2c4c5}.ui.inverted.grey.basic.button,.ui.inverted.grey.basic.buttons .button,.ui.inverted.grey.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.grey.basic.button:hover,.ui.inverted.grey.basic.buttons .button:hover,.ui.inverted.grey.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #c2c4c5;color:#fff}.ui.inverted.grey.basic.button:focus,.ui.inverted.grey.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c7c9cb;color:#dcddde}.ui.inverted.grey.basic.active.button,.ui.inverted.grey.basic.buttons .active.button,.ui.inverted.grey.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cfd0d2;color:#fff}.ui.inverted.grey.basic.button:active,.ui.inverted.grey.basic.buttons .button:active,.ui.inverted.grey.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #c2c4c5;color:#fff}.ui.tertiary.grey.button,.ui.tertiary.grey.buttons .button,.ui.tertiary.grey.buttons .tertiary.button{background:transparent;box-shadow:none;color:#767676}.ui.tertiary.grey.button:hover,.ui.tertiary.grey.buttons .button:hover,.ui.tertiary.grey.buttons button:hover{box-shadow:inset 0 -.2em 0 #838383;color:#838383}.ui.tertiary.grey.button:focus,.ui.tertiary.grey.buttons .button:focus,.ui.tertiary.grey.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #8a8a8a;color:#8a8a8a}.ui.tertiary.grey.active.button,.ui.tertiary.grey.button:active,.ui.tertiary.grey.buttons .active.button,.ui.tertiary.grey.buttons .button:active,.ui.tertiary.grey.buttons .tertiary.active.button,.ui.tertiary.grey.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #7e5454;color:#696969}.ui.black.button,.ui.black.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.black.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.black.button:hover,.ui.black.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.black.button:focus,.ui.black.buttons .button:focus{background-color:#2f3032;color:#fff;text-shadow:none}.ui.black.button:active,.ui.black.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.black.active.button,.ui.black.button .active.button:active,.ui.black.buttons .active.button,.ui.black.buttons .active.button:active{background-color:#0f0f10;color:#fff;text-shadow:none}.ui.basic.black.button,.ui.basic.black.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #1b1c1d;color:#1b1c1d}.ui.basic.black.button:hover,.ui.basic.black.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #27292a;color:#27292a}.ui.basic.black.button:focus,.ui.basic.black.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #2f3032;color:#27292a}.ui.basic.black.active.button,.ui.basic.black.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #0f0f10;color:#343637}.ui.basic.black.button:active,.ui.basic.black.buttons .button:active{box-shadow:inset 0 0 0 1px #343637;color:#343637}.ui.buttons:not(.vertical)>.basic.black.button:not(:first-child){margin-left:-1px}.ui.inverted.black.button,.ui.inverted.black.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5;color:#fff}.ui.inverted.black.button.active,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .button.active,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.black.active.button,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .active.button,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{background-color:#000}.ui.inverted.black.basic.button,.ui.inverted.black.basic.buttons .button,.ui.inverted.black.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.black.basic.button:hover,.ui.inverted.black.basic.buttons .button:hover,.ui.inverted.black.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #000;color:#fff}.ui.inverted.black.basic.button:focus,.ui.inverted.black.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #000;color:#545454}.ui.inverted.black.basic.active.button,.ui.inverted.black.basic.button:active,.ui.inverted.black.basic.buttons .active.button,.ui.inverted.black.basic.buttons .button:active,.ui.inverted.black.buttons .basic.active.button,.ui.inverted.black.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #000;color:#fff}.ui.tertiary.black.button,.ui.tertiary.black.buttons .button,.ui.tertiary.black.buttons .tertiary.button{background:transparent;box-shadow:none;color:#1b1c1d}.ui.tertiary.black.button:hover,.ui.tertiary.black.buttons .button:hover,.ui.tertiary.black.buttons button:hover{box-shadow:inset 0 -.2em 0 #8b8f93;color:#8b8f93}.ui.tertiary.black.button:focus,.ui.tertiary.black.buttons .button:focus,.ui.tertiary.black.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #93969a;color:#93969a}.ui.tertiary.black.active.button,.ui.tertiary.black.button:active,.ui.tertiary.black.buttons .active.button,.ui.tertiary.black.buttons .button:active,.ui.tertiary.black.buttons .tertiary.active.button,.ui.tertiary.black.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #404245;color:#0f0f10}.ui.positive.button,.ui.positive.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.positive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.positive.button:hover,.ui.positive.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.positive.button:focus,.ui.positive.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.positive.button:active,.ui.positive.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.positive.active.button,.ui.positive.button .active.button:active,.ui.positive.buttons .active.button,.ui.positive.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.positive.button,.ui.basic.positive.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #21ba45;color:#21ba45}.ui.basic.positive.button:hover,.ui.basic.positive.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #16ab39;color:#16ab39}.ui.basic.positive.button:focus,.ui.basic.positive.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #0ea432;color:#16ab39}.ui.basic.positive.active.button,.ui.basic.positive.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #13ae38;color:#198f35}.ui.basic.positive.button:active,.ui.basic.positive.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35;color:#198f35}.ui.buttons:not(.vertical)>.basic.positive.button:not(:first-child){margin-left:-1px}.ui.negative.button,.ui.negative.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.negative.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.negative.button:hover,.ui.negative.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.negative.button:focus,.ui.negative.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.negative.button:active,.ui.negative.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.negative.active.button,.ui.negative.button .active.button:active,.ui.negative.buttons .active.button,.ui.negative.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.negative.button,.ui.basic.negative.buttons .button{background:transparent;box-shadow:inset 0 0 0 1px #db2828;color:#db2828}.ui.basic.negative.button:hover,.ui.basic.negative.buttons .button:hover{background:transparent;box-shadow:inset 0 0 0 1px #d01919;color:#d01919}.ui.basic.negative.button:focus,.ui.basic.negative.buttons .button:focus{background:transparent;box-shadow:inset 0 0 0 1px #ca1010;color:#d01919}.ui.basic.negative.active.button,.ui.basic.negative.buttons .active.button{background:transparent;box-shadow:inset 0 0 0 1px #d41515;color:#b21e1e}.ui.basic.negative.button:active,.ui.basic.negative.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e;color:#b21e1e}.ui.buttons:not(.vertical)>.basic.negative.button:not(:first-child){margin-left:-1px}.ui.buttons{display:inline-flex;flex-direction:row;font-size:0;vertical-align:baseline;margin:0 .25em 0 0}.ui.buttons:not(.basic):not(.inverted){box-shadow:none}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button{flex:1 0 auto;border-radius:0;margin:0}.ui.buttons:not(.basic):not(.inverted)>.button:not(.basic):not(.inverted){box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.buttons .button:first-child{border-left:none;margin-left:0;border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.buttons .button:last-child{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.buttons{display:inline-flex;flex-direction:column}.ui.vertical.buttons .button{display:block;float:none;width:100%;margin:0;box-shadow:none;border-radius:0}.ui.vertical.buttons .button:first-child{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.vertical.buttons .button:last-child{margin-bottom:0;border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.buttons .button:only-child{border-radius:.28571429rem}
+
+
+/*!
+ * # Fomantic-UI - Checkbox
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.checkbox{position:relative;display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:none;vertical-align:baseline;font-style:normal;min-height:17px;font-size:1em;line-height:17px;min-width:17px}.ui.checkbox input[type=checkbox],.ui.checkbox input[type=radio]{cursor:pointer;position:absolute;top:0;left:0;opacity:0!important;outline:none;z-index:3;width:17px;height:17px}.ui.checkbox label{cursor:auto;position:relative;display:block;padding-left:1.85714em;outline:none;font-size:1em}.ui.checkbox label:before{content:"";background:#fff;border-radius:.21428571rem;border:1px solid #d4d4d5}.ui.checkbox label:after,.ui.checkbox label:before{position:absolute;top:0;left:0;width:17px;height:17px;transition:border .1s ease,opacity .1s ease,transform .1s ease,box-shadow .1s ease}.ui.checkbox label:after{font-size:14px;text-align:center;opacity:0;color:rgba(0,0,0,.87)}.ui.checkbox+label,.ui.checkbox label{color:rgba(0,0,0,.87);transition:color .1s ease}.ui.checkbox+label{vertical-align:middle}.ui.checkbox label:hover:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox+label:hover,.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox label:active:before{background:#f9fafb;border-color:rgba(34,36,38,.35)}.ui.checkbox input:active~label,.ui.checkbox label:active:after{color:rgba(0,0,0,.95)}.ui.checkbox input:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:focus~label,.ui.checkbox input:focus~label:after{color:rgba(0,0,0,.95)}.ui.checkbox input:checked~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:checked~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.checkbox input:not([type=radio]):indeterminate~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:not([type=radio]):indeterminate~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.indeterminate.toggle.checkbox input:not([type=radio]):indeterminate~label:before{background:rgba(0,0,0,.15)}.ui.indeterminate.toggle.checkbox input:not([type=radio])~label:after{left:1.075rem}.ui.checkbox input:checked:focus~label:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:checked:focus~label:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:after{color:rgba(0,0,0,.95)}.ui.read-only.checkbox,.ui.read-only.checkbox label{cursor:default}.ui.checkbox input[disabled]~label,.ui.disabled.checkbox label{cursor:default!important;opacity:.5;color:#000;pointer-events:none}.ui.checkbox input.hidden{z-index:-1}.ui.checkbox input.hidden+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.radio.checkbox{min-height:15px}.ui.radio.checkbox label{padding-left:1.85714em}.ui.radio.checkbox label:before{content:"";transform:none;width:15px;height:15px;border-radius:500rem;top:1px;left:0}.ui.radio.checkbox label:after{border:none;content:""!important;line-height:15px;top:1px;left:0;width:15px;height:15px;border-radius:500rem;transform:scale(.46666667);background-color:rgba(0,0,0,.87)}.ui.radio.checkbox input:focus~label:before{background-color:#fff}.ui.radio.checkbox input:focus~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:indeterminate~label:after{opacity:0}.ui.radio.checkbox input:checked~label:before{background-color:#fff}.ui.radio.checkbox input:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:focus:checked~label:before{background-color:#fff}.ui.radio.checkbox input:focus:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.slider.checkbox{min-height:1.25rem}.ui.slider.checkbox input{width:3.5rem;height:1.25rem}.ui.slider.checkbox label{padding-left:4.5rem;line-height:1rem;color:rgba(0,0,0,.4)}.ui.slider.checkbox label:before{display:block;position:absolute;content:"";transform:none;border:none!important;left:0;z-index:1;top:.4rem;background-color:rgba(0,0,0,.05);width:3.5rem;height:.21428571rem;border-radius:500rem;transition:background .3s ease}.ui.slider.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));position:absolute;content:""!important;opacity:1;z-index:2;border:none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);width:1.5rem;height:1.5rem;top:-.25rem;left:0;transform:none;border-radius:500rem;transition:left .3s ease}.ui.slider.checkbox input:focus~label:before{background-color:rgba(0,0,0,.15);border:none}.ui.slider.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.slider.checkbox label:hover:before{background:rgba(0,0,0,.15)}.ui.slider.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:checked~label:before{background-color:#545454!important}.ui.slider.checkbox input:checked~label:after{left:2rem}.ui.slider.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:focus:checked~label:before{background-color:#000!important}.ui.toggle.checkbox{min-height:1.5rem}.ui.toggle.checkbox input{width:3.5rem;height:1.5rem}.ui.toggle.checkbox label{min-height:1.5rem;padding-left:4.5rem;color:rgba(0,0,0,.87);padding-top:.15em}.ui.toggle.checkbox label:before{display:block;content:"";z-index:1;transform:none;background:rgba(0,0,0,.05);box-shadow:none;width:3.5rem}.ui.toggle.checkbox label:after,.ui.toggle.checkbox label:before{position:absolute;border:none;top:0;height:1.5rem;border-radius:500rem}.ui.toggle.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));content:""!important;opacity:1;z-index:2;width:1.5rem;left:0;transition:background .3s ease,left .3s ease}.ui.toggle.checkbox input~label:after,.ui.toggle.checkbox label:after{box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox input~label:after{left:-.05rem}.ui.toggle.checkbox input:focus~label:before,.ui.toggle.checkbox label:hover:before{background-color:rgba(0,0,0,.15);border:none}.ui.toggle.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:checked~label:before{background-color:#2185d0!important}.ui.toggle.checkbox input:checked~label:after{left:2.15rem;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:focus:checked~label:before{background-color:#0d71bb!important}.ui.fitted.checkbox label{padding-left:0!important}.ui.fitted.slider.checkbox,.ui.fitted.toggle.checkbox{width:3.5rem}.ui.inverted.checkbox+label,.ui.inverted.checkbox label{color:hsla(0,0%,100%,.9)!important}.ui.inverted.checkbox label:hover{color:#fff!important}.ui.inverted.checkbox label:hover:before{border-color:rgba(34,36,38,.5)}.ui.inverted.slider.checkbox label{color:hsla(0,0%,100%,.5)}.ui.inverted.slider.checkbox label:before{background-color:hsla(0,0%,100%,.5)!important}.ui.inverted.slider.checkbox label:hover:before{background:hsla(0,0%,100%,.7)!important}.ui.inverted.slider.checkbox input:checked~label{color:#fff!important}.ui.inverted.slider.checkbox input:checked~label:before{background-color:hsla(0,0%,100%,.8)!important}.ui.inverted.slider.checkbox input:focus:checked~label{color:#fff!important}.ui.inverted.slider.checkbox input:focus:checked~label:before{background-color:hsla(0,0%,100%,.8)!important}.ui.inverted.toggle.checkbox label:before{background-color:hsla(0,0%,100%,.9)!important}.ui.inverted.toggle.checkbox label:hover:before{background:#fff!important}.ui.inverted.toggle.checkbox input:checked~label{color:#fff!important}.ui.inverted.toggle.checkbox input:checked~label:before{background-color:#2185d0!important}.ui.inverted.toggle.checkbox input:focus:checked~label{color:#fff!important}.ui.inverted.toggle.checkbox input:focus:checked~label:before{background-color:#0d71bb!important}.ui.mini.checkbox{font-size:.78571429em}.ui.tiny.checkbox{font-size:.85714286em}.ui.small.checkbox{font-size:.92857143em}.ui.large.checkbox{font-size:1.14285714em}.ui.large.checkbox.radio label:before,.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.large.form .checkbox.radio label:before,.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.14285714);transform-origin:left}.ui.large.checkbox.radio label:after,.ui.large.form .checkbox.radio label:after{transform:scale(.57142857);transform-origin:left;left:.33571429em}.ui.big.checkbox{font-size:1.28571429em}.ui.big.checkbox.radio label:before,.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.big.form .checkbox.radio label:before,.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.28571429);transform-origin:left}.ui.big.checkbox.radio label:after,.ui.big.form .checkbox.radio label:after{transform:scale(.64285714);transform-origin:left;left:.37142857em}.ui.huge.checkbox{font-size:1.42857143em}.ui.huge.checkbox.radio label:before,.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.huge.form .checkbox.radio label:before,.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.42857143);transform-origin:left}.ui.huge.checkbox.radio label:after,.ui.huge.form .checkbox.radio label:after{transform:scale(.71428571);transform-origin:left;left:.40714286em}.ui.massive.checkbox{font-size:1.71428571em}.ui.massive.checkbox.radio label:before,.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.massive.form .checkbox.radio label:before,.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.71428571);transform-origin:left}.ui.massive.checkbox.radio label:after,.ui.massive.form .checkbox.radio label:after{transform:scale(.85714286);transform-origin:left;left:.47857143em}@font-face{font-family:Checkbox;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype")}.ui.checkbox .box:after,.ui.checkbox label:after{font-family:Checkbox}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{content:"\e800"}.ui.checkbox input:indeterminate~.box:after,.ui.checkbox input:indeterminate~label:after{font-size:12px;content:"\e801"}
+
+
+/*!
+ * # Fomantic-UI - Dimmer
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.dimmable:not(body){position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;padding:1em;background:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;transition:background-color .5s linear;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;color:#fff}.ui.segment>.ui.dimmer:not(.page){border-radius:inherit}.ui.dimmer:not(.inverted)::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:flex;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.dimmed.dimmable>.ui.animating.legacy.dimmer,.dimmed.dimmable>.ui.visible.legacy.dimmer,.ui.active.legacy.dimmer{display:block}.ui[class*="top aligned"].dimmer{justify-content:flex-start}.ui[class*="bottom aligned"].dimmer{justify-content:flex-end}.ui.page.dimmer{position:fixed;transform-style:"";perspective:2000px;transform-origin:center center}.ui.page.dimmer.modals{-moz-perspective:none}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){filter:none;transition:filter .8s ease}.blurring.dimmed.dimmable>:not(.dimmer):not(.popup){filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background:hsla(0,0%,100%,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.medium.medium.medium.medium.medium.dimmer{background:rgba(0,0,0,.65)}.light.light.light.light.light.dimmer{background:rgba(0,0,0,.45)}.very.light.light.light.light.dimmer{background:rgba(0,0,0,.25)}.ui.inverted.dimmer{background:hsla(0,0%,100%,.85)}.ui.inverted.dimmer>.content,.ui.inverted.dimmer>.content>*{color:#000}.medium.medium.medium.medium.medium.inverted.dimmer{background:hsla(0,0%,100%,.65)}.light.light.light.light.light.inverted.dimmer{background:hsla(0,0%,100%,.45)}.very.light.light.light.light.inverted.dimmer{background:hsla(0,0%,100%,.25)}.ui.simple.dimmer{display:block;overflow:hidden;opacity:0;width:0;height:0;z-index:-100;background:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background:hsla(0,0%,100%,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background:hsla(0,0%,100%,.85)}.ui[class*="bottom dimmer"],.ui[class*="center dimmer"],.ui[class*="top dimmer"]{height:auto}.ui[class*="bottom dimmer"]{top:auto!important;bottom:0}.ui[class*="center dimmer"]{top:50%!important;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}.ui.segment>.ui.ui[class*="top dimmer"]{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.segment>.ui.ui[class*="center dimmer"]{border-radius:0}.ui.segment>.ui.ui[class*="bottom dimmer"]{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="center dimmer"].transition[class*="fade up"].in{-webkit-animation-name:fadeInUpCenter;animation-name:fadeInUpCenter}.ui[class*="center dimmer"].transition[class*="fade down"].in{-webkit-animation-name:fadeInDownCenter;animation-name:fadeInDownCenter}.ui[class*="center dimmer"].transition[class*="fade up"].out{-webkit-animation-name:fadeOutUpCenter;animation-name:fadeOutUpCenter}.ui[class*="center dimmer"].transition[class*="fade down"].out{-webkit-animation-name:fadeOutDownCenter;animation-name:fadeOutDownCenter}.ui[class*="center dimmer"].bounce.transition{-webkit-animation-name:bounceCenter;animation-name:bounceCenter}@-webkit-keyframes fadeInUpCenter{0%{opacity:0;transform:translateY(-40%);-webkit-transform:translateY(calc(-40% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@keyframes fadeInUpCenter{0%{opacity:0;transform:translateY(-40%);-webkit-transform:translateY(calc(-40% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@-webkit-keyframes fadeInDownCenter{0%{opacity:0;transform:translateY(-60%);-webkit-transform:translateY(calc(-60% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@keyframes fadeInDownCenter{0%{opacity:0;transform:translateY(-60%);-webkit-transform:translateY(calc(-60% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@-webkit-keyframes fadeOutUpCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-45%);-webkit-transform:translateY(calc(-45% - .5px))}}@keyframes fadeOutUpCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-45%);-webkit-transform:translateY(calc(-45% - .5px))}}@-webkit-keyframes fadeOutDownCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-55%);-webkit-transform:translateY(calc(-55% - .5px))}}@keyframes fadeOutDownCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-55%);-webkit-transform:translateY(calc(-55% - .5px))}}@-webkit-keyframes bounceCenter{0%,20%,50%,80%,to{transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}40%{transform:translateY(calc(-50% - 30px))}60%{transform:translateY(calc(-50% - 15px))}}@keyframes bounceCenter{0%,20%,50%,80%,to{transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}40%{transform:translateY(calc(-50% - 30px))}60%{transform:translateY(calc(-50% - 15px))}}
+
+
+/*!
+ * # Fomantic-UI - Dropdown
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.dropdown{cursor:pointer;position:relative;display:inline-block;outline:none;text-align:left;transition:box-shadow .1s ease,width .1s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;outline:none;top:100%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;margin:0;padding:0;background:#fff;font-size:1em;text-shadow:none;text-align:left;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem;transition:opacity .1s ease;z-index:11;will-change:transform,opacity}.ui.dropdown .menu>*{white-space:nowrap}.ui.dropdown>input:not(.search):first-child,.ui.dropdown>select{display:none!important}.ui.dropdown:not(.labeled)>.dropdown.icon{position:relative;width:auto;font-size:.85714286em;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon{width:auto;float:right;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon+.text{margin-right:1em}.ui.dropdown>.text{display:inline-block;transition:none}.ui.dropdown .menu>.item{position:relative;cursor:pointer;display:block;height:auto;min-height:2.57142857rem;text-align:left;border:none;line-height:1em;font-size:1rem;color:rgba(0,0,0,.87);padding:.78571429rem 1.14285714rem!important;text-transform:none;font-weight:400;box-shadow:none;-webkit-touch-callout:none}.ui.dropdown .menu>.item:first-child{border-top-width:0}.ui.dropdown .menu>.item.vertical{display:flex;flex-direction:column-reverse}.ui.dropdown .menu .item>[class*="right floated"],.ui.dropdown>.text>[class*="right floated"]{float:right!important;margin-right:0!important;margin-left:1em!important}.ui.dropdown .menu .item>[class*="left floated"],.ui.dropdown>.text>[class*="left floated"]{float:left!important;margin-left:0!important;margin-right:1em!important}.ui.dropdown .menu .item>.flag.floated,.ui.dropdown .menu .item>.image.floated,.ui.dropdown .menu .item>i.icon.floated,.ui.dropdown .menu .item>img.floated{margin-top:0}.ui.dropdown .menu>.header{margin:1rem 0 .75rem;padding:0 1.14285714rem;font-weight:700;text-transform:uppercase}.ui.dropdown .menu>.header:not(.ui){color:rgba(0,0,0,.85);font-size:.78571429em}.ui.dropdown .menu>.divider{border-top:1px solid rgba(34,36,38,.1);height:0;margin:.5em 0}.ui.dropdown .menu>.horizontal.divider{border-top:none}.ui.dropdown.dropdown .menu>.input{width:auto;display:flex;margin:1.14285714rem .78571429rem;min-width:10rem}.ui.dropdown .menu>.header+.input{margin-top:0}.ui.dropdown .menu>.input:not(.transparent) input{padding:.5em 1em}.ui.dropdown .menu>.input:not(.transparent) .button,.ui.dropdown .menu>.input:not(.transparent) .label,.ui.dropdown .menu>.input:not(.transparent) i.icon{padding-top:.5em;padding-bottom:.5em}.ui.dropdown .menu>.item>.description,.ui.dropdown>.text>.description{float:right;margin:0 0 0 1em;color:rgba(0,0,0,.4)}.ui.dropdown .menu>.item.vertical>.description{margin:0}.ui.dropdown .menu>.item.vertical>.text{margin-bottom:.25em}.ui.dropdown .menu>.message{padding:.78571429rem 1.14285714rem;font-weight:400}.ui.dropdown .menu>.message:not(.ui){color:rgba(0,0,0,.4)}.ui.dropdown .menu .menu{top:0;left:100%;right:auto;margin:0 -.5em!important;border-radius:.28571429rem!important;z-index:21!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>i.icon,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>i.icon,.ui.dropdown>.text>img{margin-top:0}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>i.icon,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>i.icon,.ui.dropdown>.text>img{margin-left:0;float:none;margin-right:.78571429rem}.ui.dropdown .menu>.item>.image:not(.icon),.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.image:not(.icon),.ui.dropdown>.text>img{display:inline-block;vertical-align:top;width:auto;margin-top:-.5em;margin-bottom:-.5em;max-height:2em}.ui.dropdown .ui.menu>.item:before,.ui.menu .ui.dropdown .menu>.item:before{display:none}.ui.menu .ui.dropdown .menu .active.item{border-left:none}.ui.buttons>.ui.dropdown:last-child>.menu:not(.left),.ui.menu .right.dropdown.item>.menu:not(.left),.ui.menu .right.menu .dropdown:last-child>.menu:not(.left){left:auto;right:0}.ui.label.dropdown .menu{min-width:100%}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.button.dropdown .menu{min-width:100%}select.ui.dropdown{height:38px;padding:.5em;border:1px solid rgba(34,36,38,.15);visibility:visible}.ui.selection.dropdown{cursor:pointer;word-wrap:break-word;line-height:1em;white-space:normal;outline:0;transform:rotate(0deg);min-width:14em;min-height:2.71428571em;background:#fff;display:inline-block;padding:.78571429em 3.2em .78571429em 1em;color:rgba(0,0,0,.87);box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem;transition:box-shadow .1s ease,width .1s ease}.ui.selection.dropdown.active,.ui.selection.dropdown.visible{z-index:10}.ui.selection.dropdown>.delete.icon,.ui.selection.dropdown>.dropdown.icon,.ui.selection.dropdown>.search.icon{cursor:pointer;position:absolute;width:auto;height:auto;line-height:1.21428571em;top:.78571429em;right:1em;z-index:3;margin:-.78571429em;padding:.91666667em;opacity:.8;transition:opacity .1s ease}.ui.compact.selection.dropdown{min-width:0}.ui.selection.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;border-top-width:0!important;width:auto;outline:none;margin:0 -1px;min-width:calc(100% + 2px);width:calc(100% + 2px);border-radius:0 0 .28571429rem .28571429rem;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);transition:opacity .1s ease}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu>.message{padding:.78571429rem 1.14285714rem}@media only screen and (max-width:767.98px){.ui.selection.dropdown.short .menu{max-height:6.01071429rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:4.00714286rem}.ui.selection.dropdown .menu{max-height:8.01428571rem}.ui.selection.dropdown.long .menu{max-height:16.02857143rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:24.04285714rem}}@media only screen and (min-width:768px){.ui.selection.dropdown.short .menu{max-height:8.01428571rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:5.34285714rem}.ui.selection.dropdown .menu{max-height:10.68571429rem}.ui.selection.dropdown.long .menu{max-height:21.37142857rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:32.05714286rem}}@media only screen and (min-width:992px){.ui.selection.dropdown.short .menu{max-height:12.02142857rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:8.01428571rem}.ui.selection.dropdown .menu{max-height:16.02857143rem}.ui.selection.dropdown.long .menu{max-height:32.05714286rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:48.08571429rem}}@media only screen and (min-width:1920px){.ui.selection.dropdown.short .menu{max-height:16.02857143rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:10.68571429rem}.ui.selection.dropdown .menu{max-height:21.37142857rem}.ui.selection.dropdown.long .menu{max-height:42.74285714rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:64.11428571rem}}.ui.selection.dropdown .menu>.item{border-top:1px solid #fafafa;padding:.78571429rem 1.14285714rem!important;white-space:normal;word-wrap:normal}.ui.selection.dropdown .menu>.hidden.addition.item{display:none}.ui.selection.dropdown:hover{border-color:rgba(34,36,38,.35);box-shadow:none}.ui.selection.active.dropdown,.ui.selection.active.dropdown .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.dropdown:focus{border-color:#96c8da;box-shadow:none}.ui.selection.dropdown:focus .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.visible.dropdown>.text:not(.default){font-weight:400;color:rgba(0,0,0,.8)}.ui.selection.active.dropdown:hover,.ui.selection.active.dropdown:hover .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.active.selection.dropdown>.dropdown.icon,.ui.visible.selection.dropdown>.dropdown.icon{opacity:"";z-index:3}.ui.active.selection.dropdown{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.active.empty.selection.dropdown{border-radius:.28571429rem!important;box-shadow:none!important}.ui.active.empty.selection.dropdown .menu{border:none!important;box-shadow:none!important}@supports (-webkit-touch-callout:none) or (-webkit-overflow-scrolling:touch) or (-moz-appearance:none){@media (-moz-touch-enabled),(pointer:coarse){.ui.dropdown .scrollhint.menu:not(.hidden):before{-webkit-animation:scrollhint 2s ease 2;animation:scrollhint 2s ease 2;content:"";z-index:15;display:block;position:absolute;opacity:0;right:.25em;top:0;height:100%;border-right:.25em solid;border-left:0;-o-border-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent) 1 100%;border-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent) 1 100%}.ui.inverted.dropdown .scrollhint.menu:not(.hidden):before{-o-border-image:linear-gradient(180deg,hsla(0,0%,100%,.75),hsla(0,0%,100%,0)) 1 100%;border-image:linear-gradient(180deg,hsla(0,0%,100%,.75),hsla(0,0%,100%,0)) 1 100%}@-webkit-keyframes scrollhint{0%{opacity:1;top:100%}to{opacity:0;top:0}}@keyframes scrollhint{0%{opacity:1;top:100%}to{opacity:0;top:0}}}}.ui.search.dropdown{min-width:""}.ui.search.dropdown>input.search{background:none transparent!important;border:none!important;box-shadow:none!important;cursor:text;top:0;left:1px;width:100%;outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);padding:inherit;position:absolute;z-index:2}.ui.search.dropdown>.text{cursor:text;position:relative;left:1px;z-index:auto}.ui.search.selection.dropdown>input.search,.ui.search.selection.dropdown>span.sizer{line-height:1.21428571em;padding:.67857143em 3.2em .67857143em 1em}.ui.search.selection.dropdown>span.sizer{display:none;white-space:pre}.ui.search.dropdown.active>input.search,.ui.search.dropdown.visible>input.search{cursor:auto}.ui.search.dropdown.active>.text,.ui.search.dropdown.visible>.text{pointer-events:none}.ui.active.search.dropdown input.search:focus+.text .flag,.ui.active.search.dropdown input.search:focus+.text i.icon{opacity:.45}.ui.active.search.dropdown input.search:focus+.text{color:hsla(0,0%,45.1%,.87)!important}.ui.search.dropdown.button>span.sizer{display:none}.ui.search.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}@media only screen and (max-width:767.98px){.ui.search.dropdown .menu{max-height:8.01428571rem}}@media only screen and (min-width:768px){.ui.search.dropdown .menu{max-height:10.68571429rem}}@media only screen and (min-width:992px){.ui.search.dropdown .menu{max-height:16.02857143rem}}@media only screen and (min-width:1920px){.ui.search.dropdown .menu{max-height:21.37142857rem}}.ui.dropdown>.remove.icon{cursor:pointer;font-size:.85714286em;margin:-.78571429em;padding:.91666667em;right:3em;top:.78571429em;position:absolute;opacity:.6;z-index:3}.ui.clearable.dropdown .text,.ui.clearable.dropdown a:last-of-type{margin-right:1.5em}.ui.dropdown.loading>.remove.icon,.ui.dropdown input:not([value])~.remove.icon,.ui.dropdown input[value=""]~.remove.icon,.ui.dropdown select.noselection~.remove.icon{display:none}.ui.ui.multiple.dropdown{padding:.22619048em 3.2em .22619048em .35714286em}.ui.multiple.dropdown .menu{cursor:auto}.ui.multiple.dropdown>.label{display:inline-block;white-space:normal;font-size:1em;padding:.35714286em .78571429em;margin:.14285714rem .28571429rem .14285714rem 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.multiple.dropdown .dropdown.icon{margin:"";padding:""}.ui.multiple.dropdown>.text{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.dropdown>.text.default{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui.multiple.dropdown>.label~input.search{margin-left:.14285714em!important}.ui.multiple.dropdown>.label~.text{display:none}.ui.multiple.dropdown>.label:not(.image)>img:not(.centered){margin-right:.78571429rem}.ui.multiple.dropdown>.label:not(.image)>img.ui:not(.avatar){margin-bottom:.39285714rem}.ui.multiple.dropdown>.image.label img{margin:-.35714286em .78571429em -.35714286em -.78571429em;height:1.71428571em}.ui.multiple.search.dropdown,.ui.multiple.search.dropdown>input.search{cursor:text}.ui.multiple.search.dropdown>.text{display:inline-block;position:absolute;top:0;left:0;padding:inherit;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.search.dropdown>.label~.text{display:none}.ui.multiple.search.dropdown>input.search{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;width:2.2em;line-height:1.21428571em}.ui.multiple.search.dropdown.button{min-width:14em}.ui.inline.dropdown{cursor:pointer;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .21428571em;vertical-align:baseline}.ui.inline.dropdown>.text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.21428571em;border-radius:.28571429rem}.ui.dropdown .menu .active.item{background:transparent;font-weight:700;color:rgba(0,0,0,.95);box-shadow:none;z-index:12}.ui.dropdown .menu>.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);z-index:13}.ui.default.dropdown:not(.button)>.text,.ui.dropdown:not(.button)>.default.text{color:hsla(0,0%,74.9%,.87)}.ui.default.dropdown:not(.button)>input:focus~.text,.ui.dropdown:not(.button)>input:focus~.default.text{color:hsla(0,0%,45.1%,.87)}.ui.loading.dropdown>i.icon{height:1em!important}.ui.loading.selection.dropdown>i.icon{padding:1.5em 1.28571429em!important}.ui.loading.dropdown>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.dropdown>i.icon:after,.ui.loading.dropdown>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.dropdown>i.icon:after{box-shadow:0 0 0 1px transparent;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem}.ui.loading.dropdown.button>i.icon:after,.ui.loading.dropdown.button>i.icon:before{display:none}.ui.loading.dropdown>.text{transition:none}.ui.dropdown .loading.menu{display:block;visibility:hidden;z-index:-1}.ui.dropdown>.loading.menu{left:0!important;right:auto!important}.ui.dropdown>.menu .loading.menu{left:100%!important;right:auto!important}.ui.dropdown .menu .selected.item,.ui.dropdown.selected{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.dropdown>.filtered.text{visibility:hidden}.ui.dropdown .filtered.item{display:none!important}.ui.dropdown.error,.ui.dropdown.error>.default.text,.ui.dropdown.error>.text{color:#9f3a38}.ui.selection.dropdown.error{background:#fff6f6;border-color:#e0b4b4}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu,.ui.multiple.selection.error.dropdown>.label,.ui.selection.dropdown.error:hover{border-color:#e0b4b4}.ui.dropdown.error>.menu>.item{color:#9f3a38}.ui.dropdown.error>.menu>.item:hover{background-color:#fbe7e7}.ui.dropdown.error>.menu .active.item{background-color:#fdcfcf}.ui.dropdown.info,.ui.dropdown.info>.default.text,.ui.dropdown.info>.text{color:#276f86}.ui.selection.dropdown.info{background:#f8ffff;border-color:#a9d5de}.ui.dropdown.info>.menu,.ui.dropdown.info>.menu .menu,.ui.multiple.selection.info.dropdown>.label,.ui.selection.dropdown.info:hover{border-color:#a9d5de}.ui.dropdown.info>.menu>.item{color:#276f86}.ui.dropdown.info>.menu>.item:hover{background-color:#e9f2fb}.ui.dropdown.info>.menu .active.item{background-color:#cef1fd}.ui.dropdown.success,.ui.dropdown.success>.default.text,.ui.dropdown.success>.text{color:#2c662d}.ui.selection.dropdown.success{background:#fcfff5;border-color:#a3c293}.ui.dropdown.success>.menu,.ui.dropdown.success>.menu .menu,.ui.multiple.selection.success.dropdown>.label,.ui.selection.dropdown.success:hover{border-color:#a3c293}.ui.dropdown.success>.menu>.item{color:#2c662d}.ui.dropdown.success>.menu>.item:hover{background-color:#e9fbe9}.ui.dropdown.success>.menu .active.item{background-color:#dafdce}.ui.dropdown.warning,.ui.dropdown.warning>.default.text,.ui.dropdown.warning>.text{color:#573a08}.ui.selection.dropdown.warning{background:#fffaf3;border-color:#c9ba9b}.ui.dropdown.warning>.menu,.ui.dropdown.warning>.menu .menu,.ui.multiple.selection.warning.dropdown>.label,.ui.selection.dropdown.warning:hover{border-color:#c9ba9b}.ui.dropdown.warning>.menu>.item{color:#573a08}.ui.dropdown.warning>.menu>.item:hover{background-color:#fbfbe9}.ui.dropdown.warning>.menu .active.item{background-color:#fdfdce}.ui.dropdown>.clear.dropdown.icon{opacity:.8;transition:opacity .1s ease}.ui.dropdown>.clear.dropdown.icon:hover{opacity:1}.ui.disabled.dropdown,.ui.dropdown .menu>.disabled.item{cursor:default;pointer-events:none;opacity:.45}.ui.dropdown .menu{left:0}.ui.dropdown .menu .right.menu,.ui.dropdown .right.menu>.menu{left:100%!important;right:auto!important;border-radius:.28571429rem!important}.ui.dropdown>.left.menu{left:auto!important;right:0!important}.ui.dropdown .menu .left.menu,.ui.dropdown>.left.menu .menu{left:auto;right:100%;margin:0 -.5em 0 0!important;border-radius:.28571429rem!important}.ui.dropdown .item .left.dropdown.icon,.ui.dropdown .left.menu .item .dropdown.icon{width:auto;float:left;margin:0}.ui.dropdown .item .left.dropdown.icon+.text,.ui.dropdown .left.menu .item .dropdown.icon+.text{margin-left:1em;margin-right:0}.ui.upward.dropdown>.menu{top:auto;bottom:100%;box-shadow:0 0 3px 0 rgba(0,0,0,.08);border-radius:.28571429rem .28571429rem 0 0}.ui.dropdown .upward.menu{top:auto!important;bottom:0!important}.ui.simple.upward.active.dropdown,.ui.simple.upward.dropdown:hover{border-radius:.28571429rem .28571429rem 0 0!important}.ui.upward.dropdown.button:not(.pointing):not(.floating).active{border-radius:.28571429rem .28571429rem 0 0}.ui.upward.selection.dropdown .menu{border-top-width:1px!important;border-bottom-width:0!important;box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.upward.selection.dropdown:hover{box-shadow:0 0 2px 0 rgba(0,0,0,.05)}.ui.active.upward.selection.dropdown,.ui.upward.selection.dropdown.visible{border-radius:0 0 .28571429rem .28571429rem!important}.ui.upward.selection.dropdown.visible{box-shadow:0 0 3px 0 rgba(0,0,0,.08)}.ui.upward.active.selection.dropdown:hover{box-shadow:0 0 3px 0 rgba(0,0,0,.05)}.ui.upward.active.selection.dropdown:hover .menu{box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-x:hidden;overflow-y:auto}.ui.scrolling.dropdown .menu{overflow-x:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-y:auto;min-width:100%!important;width:auto!important}.ui.dropdown .scrolling.menu{position:static;box-shadow:none!important;border-radius:0!important;margin:0!important;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.dropdown .scrolling.menu .item:first-child,.ui.dropdown .scrolling.menu>.item.item.item,.ui.scrolling.dropdown .menu .item.item.item,.ui.scrolling.dropdown .menu .item:first-child{border-top:none}.ui.dropdown>.animating.menu .scrolling.menu,.ui.dropdown>.visible.menu .scrolling.menu{display:block}@media (-ms-high-contrast:none){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{min-width:calc(100% - 17px)}}@media only screen and (max-width:767.98px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:10.28571429rem}}@media only screen and (min-width:768px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:15.42857143rem}}@media only screen and (min-width:992px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}@media only screen and (min-width:1920px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}.ui.column.dropdown>.menu{flex-wrap:wrap}.ui.dropdown[class*="two column"]>.menu>.item{width:50%}.ui.dropdown[class*="three column"]>.menu>.item{width:33%}.ui.dropdown[class*="four column"]>.menu>.item{width:25%}.ui.dropdown[class*="five column"]>.menu>.item{width:20%}.ui.simple.dropdown .menu:after,.ui.simple.dropdown .menu:before{display:none}.ui.simple.dropdown .menu{position:absolute;display:-ms-inline-flexbox!important;display:block;overflow:hidden;top:-9999px;opacity:0;width:0;height:0;transition:opacity .1s ease;margin-top:0!important}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%;opacity:1}.ui.simple.dropdown .menu .item:hover>.menu,.ui.simple.dropdown>.menu>.item:active>.menu{overflow:visible;width:auto;height:auto;top:0!important;left:100%;opacity:1}.right.menu .ui.simple.dropdown>.menu .item:hover>.menu:not(.right),.right.menu .ui.simple.dropdown>.menu>.item:active>.menu:not(.right),.ui.simple.dropdown .menu .item:hover>.left.menu,.ui.simple.dropdown>.menu>.item:active>.left.menu{left:auto;right:100%}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.simple.visible.dropdown>.menu{display:block}.ui.simple.scrolling.active.dropdown>.menu,.ui.simple.scrolling.dropdown:hover>.menu{overflow-x:hidden;overflow-y:auto}.ui.fluid.dropdown{display:block;width:100%!important;min-width:0}.ui.fluid.dropdown>.dropdown.icon{float:right}.ui.floating.dropdown .menu{left:0;right:auto;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)!important}.ui.floating.dropdown .menu,.ui.floating.dropdown>.menu{border-radius:.28571429rem!important}.ui:not(.upward).floating.dropdown>.menu{margin-top:.5em}.ui.upward.floating.dropdown>.menu{margin-bottom:.5em}.ui.pointing.dropdown>.menu{top:100%;margin-top:.78571429rem;border-radius:.28571429rem}.ui.pointing.dropdown>.menu:not(.hidden):after{display:block;position:absolute;pointer-events:none;content:"";visibility:visible;transform:rotate(45deg);width:.5em;height:.5em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15);background:#fff;z-index:2;top:-.25em;left:50%;margin:0 0 0 -.25em}.ui.top.left.pointing.dropdown>.menu{top:100%;bottom:auto;left:0;right:auto;margin:1em 0 0}.ui.top.left.pointing.dropdown>.menu:after{top:-.25em;left:1em;right:auto;margin:0;transform:rotate(45deg)}.ui.top.right.pointing.dropdown>.menu{top:100%;bottom:auto;right:0;left:auto;margin:1em 0 0}.ui.top.pointing.dropdown>.left.menu:after,.ui.top.right.pointing.dropdown>.menu:after{top:-.25em;left:auto!important;right:1em!important;margin:0;transform:rotate(45deg)}.ui.left.pointing.dropdown>.menu{top:0;left:100%;right:auto;margin:0 0 0 1em}.ui.left.pointing.dropdown>.menu:after{top:1em;left:-.25em;margin:0;transform:rotate(-45deg)}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu{left:auto!important;right:100%!important;margin:0 1em 0 0}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.right.pointing.dropdown>.menu{top:0;left:auto;right:100%;margin:0 1em 0 0}.ui.right.pointing.dropdown>.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.bottom.pointing.dropdown>.menu{top:auto;bottom:100%;left:0;right:auto;margin:0 0 1em}.ui.bottom.pointing.dropdown>.menu:after{top:auto;bottom:-.25em;right:auto;margin:0;transform:rotate(-135deg)}.ui.bottom.pointing.dropdown>.menu .menu{top:auto!important;bottom:0!important}.ui.bottom.left.pointing.dropdown>.menu{left:0;right:auto}.ui.bottom.left.pointing.dropdown>.menu:after{left:1em;right:auto}.ui.bottom.right.pointing.dropdown>.menu{right:0;left:auto}.ui.bottom.right.pointing.dropdown>.menu:after{left:auto;right:1em}.ui.pointing.upward.dropdown .menu,.ui.top.pointing.upward.dropdown .menu{top:auto!important;bottom:100%!important;margin:0 0 .78571429rem;border-radius:.28571429rem}.ui.pointing.upward.dropdown .menu:after,.ui.top.pointing.upward.dropdown .menu:after{top:100%!important;bottom:auto!important;box-shadow:1px 1px 0 0 rgba(34,36,38,.15);margin:-.25em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 1em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 0 0 1em}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}.ui.dropdown,.ui.dropdown .menu>.item{font-size:1rem}.ui.mini.dropdown,.ui.mini.dropdown .menu>.item{font-size:.78571429rem}.ui.tiny.dropdown,.ui.tiny.dropdown .menu>.item{font-size:.85714286rem}.ui.small.dropdown,.ui.small.dropdown .menu>.item{font-size:.92857143rem}.ui.large.dropdown,.ui.large.dropdown .menu>.item{font-size:1.14285714rem}.ui.big.dropdown,.ui.big.dropdown .menu>.item{font-size:1.28571429rem}.ui.huge.dropdown,.ui.huge.dropdown .menu>.item{font-size:1.42857143rem}.ui.massive.dropdown,.ui.massive.dropdown .menu>.item{font-size:1.71428571rem}.ui.inverted.dropdown .menu{background:#1b1c1d;box-shadow:none;border:1px solid hsla(0,0%,100%,.15)}.ui.inverted.dropdown .menu>.item{color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu .active.item{background:transparent;color:hsla(0,0%,100%,.8);box-shadow:none}.ui.inverted.dropdown .menu>.item:hover{background:hsla(0,0%,100%,.08);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu .selected.item,.ui.inverted.dropdown.selected{background:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu>.header{color:#fff}.ui.inverted.dropdown .menu>.item>.description,.ui.inverted.dropdown>.text>.description{color:hsla(0,0%,100%,.5)}.ui.inverted.dropdown .menu>.divider{border-top:1px solid hsla(0,0%,100%,.15)}.ui.inverted.dropdown .scrolling.menu{border:none;border-top:1px solid hsla(0,0%,100%,.15)}.ui.inverted.selection.dropdown{border:1px solid hsla(0,0%,100%,.15);background:#1b1c1d;color:hsla(0,0%,100%,.8)}.ui.inverted.selection.dropdown:hover{border-color:hsla(0,0%,100%,.25);box-shadow:none}.ui.inverted.selection.dropdown input{color:#fff}.ui.inverted.selection.visible.dropdown>.text:not(.default){color:hsla(0,0%,100%,.9)}.ui.inverted.selection.active.dropdown .menu,.ui.inverted.selection.active.dropdown:hover{border-color:hsla(0,0%,100%,.15)}.ui.inverted.selection.dropdown .menu>.item{border-top:1px solid #242526}.ui.inverted.default.dropdown:not(.button)>.text,.ui.inverted.dropdown:not(.button)>.default.text{color:hsla(0,0%,100%,.5)}.ui.inverted.default.dropdown:not(.button)>input:focus~.text,.ui.inverted.dropdown:not(.button)>input:focus~.default.text{color:hsla(0,0%,100%,.7)}.ui.inverted.active.search.dropdown input.search:focus+.text .flag,.ui.inverted.active.search.dropdown input.search:focus+.text i.icon{opacity:.45}.ui.inverted.active.search.dropdown input.search:focus+.text{color:hsla(0,0%,100%,.7)!important}.ui.inverted.dropdown .menu>.message:not(.ui){color:hsla(0,0%,100%,.5)}.ui.inverted.dropdown .menu>.item:first-child{border-top-width:0}.ui.inverted.multiple.dropdown>.label{background-color:hsla(0,0%,100%,.7);background-image:none;color:#000;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,0)}.ui.inverted.multiple.dropdown>.label:hover{background-color:hsla(0,0%,100%,.9);border-color:hsla(0,0%,100%,.9);background-image:none;color:#000}.ui.inverted.multiple.dropdown>.label>.close.icon,.ui.inverted.multiple.dropdown>.label>.delete.icon{opacity:.6}.ui.inverted.multiple.dropdown>.label>.close.icon:hover,.ui.inverted.multiple.dropdown>.label>.delete.icon:hover{opacity:.8}.ui.inverted.dropdown input::-webkit-selection,.ui.inverted.dropdown textarea::-webkit-selection{background-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown input::-moz-selection,.ui.inverted.dropdown textarea::-moz-selection{background-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown input::selection,.ui.inverted.dropdown textarea::selection{background-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}.ui.inverted.pointing.dropdown>.menu:after{background:#1b1c1d;box-shadow:-1px -1px 0 0 hsla(0,0%,100%,.15)}@font-face{font-family:Dropdown;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("woff");font-weight:400;font-style:normal}.ui.dropdown>.dropdown.icon{font-family:Dropdown;line-height:1;height:1em;width:1.23em;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center;width:auto}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown .item .left.dropdown.icon:before,.ui.dropdown .left.menu .item .dropdown.icon:before{content:"\f0d9"}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}
+
+
+/*!
+ * # Fomantic-UI - Form
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.form{position:relative;max-width:100%}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field:last-child,.ui.form .fields .fields,.ui.form .fields:last-child .field{margin-bottom:0}.ui.form .fields .field{clear:both;margin:0}.ui.form .field>label{display:block;margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url],.ui.form textarea{width:100%;vertical-align:top}.ui.form ::-webkit-datetime-edit,.ui.form ::-webkit-inner-spin-button{height:1.21428571em}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0;outline:none;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease}.ui.form textarea,.ui.input textarea{margin:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);padding:.78571429em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);outline:none;color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease;font-size:1em;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;line-height:1.2857;resize:vertical}.ui.form textarea:not([rows]){height:12em;min-height:8em;max-height:24em}.ui.form input[type=checkbox],.ui.form textarea{vertical-align:top}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) label+.ui.ui.checkbox{margin-top:.7em}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.checkbox{margin-top:2.41428571em}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.toggle.checkbox{margin-top:2.21428571em}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.slider.checkbox{margin-top:2.61428571em}.ui.ui.form .field .fields .field:not(:only-child) .ui.checkbox{margin-top:.6em}.ui.ui.form .field .fields .field:not(:only-child) .ui.toggle.checkbox{margin-top:.5em}.ui.ui.form .field .fields .field:not(:only-child) .ui.slider.checkbox{margin-top:.7em}.ui.form .field .transparent.input:not(.icon) input,.ui.form .field input.transparent,.ui.form .field textarea.transparent{padding:.67857143em 1em}.ui.form .field input.transparent,.ui.form .field textarea.transparent{border-color:transparent!important;background-color:transparent!important;box-shadow:none!important}.ui.form input.attached{width:auto}.ui.form select{display:block;height:auto;width:100%;background:#fff;border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem;box-shadow:inset 0 0 0 0 transparent;padding:.62em 1em;color:rgba(0,0,0,.87);transition:color .1s ease,border-color .1s ease}.ui.form .field>.selection.dropdown{min-width:auto;width:100%}.ui.form .field>.selection.dropdown>.dropdown.icon{float:right}.ui.form .inline.field>.selection.dropdown,.ui.form .inline.fields .field>.selection.dropdown{width:auto}.ui.form .inline.field>.selection.dropdown>.dropdown.icon,.ui.form .inline.fields .field>.selection.dropdown>.dropdown.icon{float:none}.ui.form .field .ui.input,.ui.form .fields .field .ui.input,.ui.form .wide.field .ui.input{width:100%}.ui.form .inline.field:not(.wide) .ui.input,.ui.form .inline.fields .field:not(.wide) .ui.input{width:auto;vertical-align:middle}.ui.form .field .ui.input input,.ui.form .fields .field .ui.input input{width:auto}.ui.form .eight.fields .ui.input input,.ui.form .five.fields .ui.input input,.ui.form .four.fields .ui.input input,.ui.form .nine.fields .ui.input input,.ui.form .seven.fields .ui.input input,.ui.form .six.fields .ui.input input,.ui.form .ten.fields .ui.input input,.ui.form .three.fields .ui.input input,.ui.form .two.fields .ui.input input,.ui.form .wide.field .ui.input input{flex:1 0 auto;width:0}.ui.form .error.message,.ui.form .error.message:empty,.ui.form .info.message,.ui.form .info.message:empty,.ui.form .success.message,.ui.form .success.message:empty,.ui.form .warning.message,.ui.form .warning.message:empty{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:normal;background:#fff!important;border:1px solid #e0b4b4!important;color:#9f3a38!important}.ui.form .inline.field .prompt,.ui.form .inline.fields .field .prompt{vertical-align:top;margin:-.25em 0 -.5em .5em}.ui.form .inline.field .prompt:before,.ui.form .inline.fields .field .prompt:before{border-width:0 0 1px 1px;bottom:auto;right:auto;top:50%;left:0}.ui.form .field.field input:-webkit-autofill{box-shadow:inset 0 0 0 100px ivory!important;border-color:#e5dfa1!important}.ui.form .field.field input:-webkit-autofill:focus{box-shadow:inset 0 0 0 100px ivory!important;border-color:#d5c315!important}.ui.form ::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)!important}.ui.form ::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form :focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)!important}.ui.form :focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form input:not([type]):focus,.ui.form input[type=date]:focus,.ui.form input[type=datetime-local]:focus,.ui.form input[type=email]:focus,.ui.form input[type=file]:focus,.ui.form input[type=number]:focus,.ui.form input[type=password]:focus,.ui.form input[type=search]:focus,.ui.form input[type=tel]:focus,.ui.form input[type=text]:focus,.ui.form input[type=time]:focus,.ui.form input[type=url]:focus{color:rgba(0,0,0,.95);border-color:#85b7d9;border-radius:.28571429rem;background:#fff;box-shadow:inset 0 0 0 0 rgba(34,36,38,.35)}.ui.form .ui.action.input:not([class*="left action"]) input:not([type]):focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=date]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=datetime-local]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=email]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=file]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=number]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=password]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=search]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=tel]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=text]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=time]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=url]:focus{border-top-right-radius:0;border-bottom-right-radius:0}.ui.form .ui[class*="left action"].input input:not([type]),.ui.form .ui[class*="left action"].input input[type=date],.ui.form .ui[class*="left action"].input input[type=datetime-local],.ui.form .ui[class*="left action"].input input[type=email],.ui.form .ui[class*="left action"].input input[type=file],.ui.form .ui[class*="left action"].input input[type=number],.ui.form .ui[class*="left action"].input input[type=password],.ui.form .ui[class*="left action"].input input[type=search],.ui.form .ui[class*="left action"].input input[type=tel],.ui.form .ui[class*="left action"].input input[type=text],.ui.form .ui[class*="left action"].input input[type=time],.ui.form .ui[class*="left action"].input input[type=url]{border-bottom-left-radius:0;border-top-left-radius:0}.ui.form textarea:focus{color:rgba(0,0,0,.95);border-color:#85b7d9;border-radius:.28571429rem;background:#fff;box-shadow:inset 0 0 0 0 rgba(34,36,38,.35);-webkit-appearance:none}.ui.form.error .error.message:not(:empty){display:block}.ui.form.error .compact.error.message:not(:empty){display:inline-block}.ui.form.error .icon.error.message:not(:empty){display:flex}.ui.form .field.error .error.message:not(:empty),.ui.form .fields.error .error.message:not(:empty){display:block}.ui.form .field.error .compact.error.message:not(:empty),.ui.form .fields.error .compact.error.message:not(:empty){display:inline-block}.ui.form .field.error .icon.error.message:not(:empty),.ui.form .fields.error .icon.error.message:not(:empty){display:flex}.ui.ui.form .field.error .input,.ui.ui.form .field.error label,.ui.ui.form .fields.error .field .input,.ui.ui.form .fields.error .field label{color:#9f3a38}.ui.form .field.error .corner.label,.ui.form .fields.error .field .corner.label{border-color:#9f3a38;color:#fff}.ui.form .field.error input:not([type]),.ui.form .field.error input[type=date],.ui.form .field.error input[type=datetime-local],.ui.form .field.error input[type=email],.ui.form .field.error input[type=file],.ui.form .field.error input[type=number],.ui.form .field.error input[type=password],.ui.form .field.error input[type=search],.ui.form .field.error input[type=tel],.ui.form .field.error input[type=text],.ui.form .field.error input[type=time],.ui.form .field.error input[type=url],.ui.form .field.error select,.ui.form .field.error textarea,.ui.form .fields.error .field input:not([type]),.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=datetime-local],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=file],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=search],.ui.form .fields.error .field input[type=tel],.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=time],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field select,.ui.form .fields.error .field textarea{color:#9f3a38;background:#fff6f6;border-color:#e0b4b4;border-radius:"";box-shadow:none}.ui.form .field.error input:not([type]):focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=datetime-local]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=file]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=search]:focus,.ui.form .field.error input[type=tel]:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=time]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error select:focus,.ui.form .field.error textarea:focus{background:#fff6f6;border-color:#e0b4b4;color:#9f3a38;box-shadow:none}.ui.form .field.error select{-webkit-appearance:menulist-button}.ui.form .field.error .transparent.input input,.ui.form .field.error .transparent.input textarea,.ui.form .field.error input.transparent,.ui.form .field.error textarea.transparent{background-color:#fff6f6!important;color:#9f3a38!important}.ui.form .error.error input:-webkit-autofill{box-shadow:inset 0 0 0 100px #fffaf0!important;border-color:#e0b4b4!important}.ui.form .error ::-webkit-input-placeholder{color:#e7bdbc}.ui.form .error :-ms-input-placeholder{color:#e7bdbc!important}.ui.form .error ::-moz-placeholder{color:#e7bdbc}.ui.form .error :focus::-webkit-input-placeholder{color:#da9796}.ui.form .error :focus:-ms-input-placeholder{color:#da9796!important}.ui.form .error :focus::-moz-placeholder{color:#da9796}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item,.ui.form .field.error .ui.dropdown .text,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item{background:#fff6f6;color:#9f3a38}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown:hover,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown:hover{border-color:#e0b4b4!important}.ui.form .field.error .ui.dropdown:hover .menu,.ui.form .fields.error .field .ui.dropdown:hover .menu{border-color:#e0b4b4}.ui.form .field.error .ui.multiple.selection.dropdown>.label,.ui.form .fields.error .field .ui.multiple.selection.dropdown>.label{background-color:#eacbcb;color:#9f3a38}.ui.form .field.error .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .selected.item,.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .fields.error .field .ui.dropdown .menu .selected.item{background-color:#fbe7e7}.ui.form .field.error .ui.dropdown .menu .active.item,.ui.form .fields.error .field .ui.dropdown .menu .active.item{background-color:#fdcfcf!important}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label{color:#9f3a38}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before{background:#fff6f6;border-color:#e0b4b4}.ui.form .field.error .checkbox .box:after,.ui.form .field.error .checkbox label:after,.ui.form .fields.error .field .checkbox .box:after,.ui.form .fields.error .field .checkbox label:after{color:#9f3a38}.ui.form.info .info.message:not(:empty){display:block}.ui.form.info .compact.info.message:not(:empty){display:inline-block}.ui.form.info .icon.info.message:not(:empty){display:flex}.ui.form .field.info .info.message:not(:empty),.ui.form .fields.info .info.message:not(:empty){display:block}.ui.form .field.info .compact.info.message:not(:empty),.ui.form .fields.info .compact.info.message:not(:empty){display:inline-block}.ui.form .field.info .icon.info.message:not(:empty),.ui.form .fields.info .icon.info.message:not(:empty){display:flex}.ui.ui.form .field.info .input,.ui.ui.form .field.info label,.ui.ui.form .fields.info .field .input,.ui.ui.form .fields.info .field label{color:#276f86}.ui.form .field.info .corner.label,.ui.form .fields.info .field .corner.label{border-color:#276f86;color:#fff}.ui.form .field.info input:not([type]),.ui.form .field.info input[type=date],.ui.form .field.info input[type=datetime-local],.ui.form .field.info input[type=email],.ui.form .field.info input[type=file],.ui.form .field.info input[type=number],.ui.form .field.info input[type=password],.ui.form .field.info input[type=search],.ui.form .field.info input[type=tel],.ui.form .field.info input[type=text],.ui.form .field.info input[type=time],.ui.form .field.info input[type=url],.ui.form .field.info select,.ui.form .field.info textarea,.ui.form .fields.info .field input:not([type]),.ui.form .fields.info .field input[type=date],.ui.form .fields.info .field input[type=datetime-local],.ui.form .fields.info .field input[type=email],.ui.form .fields.info .field input[type=file],.ui.form .fields.info .field input[type=number],.ui.form .fields.info .field input[type=password],.ui.form .fields.info .field input[type=search],.ui.form .fields.info .field input[type=tel],.ui.form .fields.info .field input[type=text],.ui.form .fields.info .field input[type=time],.ui.form .fields.info .field input[type=url],.ui.form .fields.info .field select,.ui.form .fields.info .field textarea{color:#276f86;background:#f8ffff;border-color:#a9d5de;border-radius:"";box-shadow:none}.ui.form .field.info input:not([type]):focus,.ui.form .field.info input[type=date]:focus,.ui.form .field.info input[type=datetime-local]:focus,.ui.form .field.info input[type=email]:focus,.ui.form .field.info input[type=file]:focus,.ui.form .field.info input[type=number]:focus,.ui.form .field.info input[type=password]:focus,.ui.form .field.info input[type=search]:focus,.ui.form .field.info input[type=tel]:focus,.ui.form .field.info input[type=text]:focus,.ui.form .field.info input[type=time]:focus,.ui.form .field.info input[type=url]:focus,.ui.form .field.info select:focus,.ui.form .field.info textarea:focus{background:#f8ffff;border-color:#a9d5de;color:#276f86;box-shadow:none}.ui.form .field.info select{-webkit-appearance:menulist-button}.ui.form .field.info .transparent.input input,.ui.form .field.info .transparent.input textarea,.ui.form .field.info input.transparent,.ui.form .field.info textarea.transparent{background-color:#f8ffff!important;color:#276f86!important}.ui.form .info.info input:-webkit-autofill{box-shadow:inset 0 0 0 100px #f0faff!important;border-color:#b3e0e0!important}.ui.form .info ::-webkit-input-placeholder{color:#98cfe1}.ui.form .info :-ms-input-placeholder{color:#98cfe1!important}.ui.form .info ::-moz-placeholder{color:#98cfe1}.ui.form .info :focus::-webkit-input-placeholder{color:#70bdd6}.ui.form .info :focus:-ms-input-placeholder{color:#70bdd6!important}.ui.form .info :focus::-moz-placeholder{color:#70bdd6}.ui.form .field.info .ui.dropdown,.ui.form .field.info .ui.dropdown .item,.ui.form .field.info .ui.dropdown .text,.ui.form .fields.info .field .ui.dropdown,.ui.form .fields.info .field .ui.dropdown .item{background:#f8ffff;color:#276f86}.ui.form .field.info .ui.dropdown,.ui.form .field.info .ui.dropdown:hover,.ui.form .fields.info .field .ui.dropdown,.ui.form .fields.info .field .ui.dropdown:hover{border-color:#a9d5de!important}.ui.form .field.info .ui.dropdown:hover .menu,.ui.form .fields.info .field .ui.dropdown:hover .menu{border-color:#a9d5de}.ui.form .field.info .ui.multiple.selection.dropdown>.label,.ui.form .fields.info .field .ui.multiple.selection.dropdown>.label{background-color:#cce3ea;color:#276f86}.ui.form .field.info .ui.dropdown .menu .item:hover,.ui.form .field.info .ui.dropdown .menu .selected.item,.ui.form .fields.info .field .ui.dropdown .menu .item:hover,.ui.form .fields.info .field .ui.dropdown .menu .selected.item{background-color:#e9f2fb}.ui.form .field.info .ui.dropdown .menu .active.item,.ui.form .fields.info .field .ui.dropdown .menu .active.item{background-color:#cef1fd!important}.ui.form .field.info .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.info .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) label{color:#276f86}.ui.form .field.info .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.info .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) label:before{background:#f8ffff;border-color:#a9d5de}.ui.form .field.info .checkbox .box:after,.ui.form .field.info .checkbox label:after,.ui.form .fields.info .field .checkbox .box:after,.ui.form .fields.info .field .checkbox label:after{color:#276f86}.ui.form.success .success.message:not(:empty){display:block}.ui.form.success .compact.success.message:not(:empty){display:inline-block}.ui.form.success .icon.success.message:not(:empty){display:flex}.ui.form .field.success .success.message:not(:empty),.ui.form .fields.success .success.message:not(:empty){display:block}.ui.form .field.success .compact.success.message:not(:empty),.ui.form .fields.success .compact.success.message:not(:empty){display:inline-block}.ui.form .field.success .icon.success.message:not(:empty),.ui.form .fields.success .icon.success.message:not(:empty){display:flex}.ui.ui.form .field.success .input,.ui.ui.form .field.success label,.ui.ui.form .fields.success .field .input,.ui.ui.form .fields.success .field label{color:#2c662d}.ui.form .field.success .corner.label,.ui.form .fields.success .field .corner.label{border-color:#2c662d;color:#fff}.ui.form .field.success input:not([type]),.ui.form .field.success input[type=date],.ui.form .field.success input[type=datetime-local],.ui.form .field.success input[type=email],.ui.form .field.success input[type=file],.ui.form .field.success input[type=number],.ui.form .field.success input[type=password],.ui.form .field.success input[type=search],.ui.form .field.success input[type=tel],.ui.form .field.success input[type=text],.ui.form .field.success input[type=time],.ui.form .field.success input[type=url],.ui.form .field.success select,.ui.form .field.success textarea,.ui.form .fields.success .field input:not([type]),.ui.form .fields.success .field input[type=date],.ui.form .fields.success .field input[type=datetime-local],.ui.form .fields.success .field input[type=email],.ui.form .fields.success .field input[type=file],.ui.form .fields.success .field input[type=number],.ui.form .fields.success .field input[type=password],.ui.form .fields.success .field input[type=search],.ui.form .fields.success .field input[type=tel],.ui.form .fields.success .field input[type=text],.ui.form .fields.success .field input[type=time],.ui.form .fields.success .field input[type=url],.ui.form .fields.success .field select,.ui.form .fields.success .field textarea{color:#2c662d;background:#fcfff5;border-color:#a3c293;border-radius:"";box-shadow:none}.ui.form .field.success input:not([type]):focus,.ui.form .field.success input[type=date]:focus,.ui.form .field.success input[type=datetime-local]:focus,.ui.form .field.success input[type=email]:focus,.ui.form .field.success input[type=file]:focus,.ui.form .field.success input[type=number]:focus,.ui.form .field.success input[type=password]:focus,.ui.form .field.success input[type=search]:focus,.ui.form .field.success input[type=tel]:focus,.ui.form .field.success input[type=text]:focus,.ui.form .field.success input[type=time]:focus,.ui.form .field.success input[type=url]:focus,.ui.form .field.success select:focus,.ui.form .field.success textarea:focus{background:#fcfff5;border-color:#a3c293;color:#2c662d;box-shadow:none}.ui.form .field.success select{-webkit-appearance:menulist-button}.ui.form .field.success .transparent.input input,.ui.form .field.success .transparent.input textarea,.ui.form .field.success input.transparent,.ui.form .field.success textarea.transparent{background-color:#fcfff5!important;color:#2c662d!important}.ui.form .success.success input:-webkit-autofill{box-shadow:inset 0 0 0 100px #f0fff0!important;border-color:#bee0b3!important}.ui.form .success ::-webkit-input-placeholder{color:#8fcf90}.ui.form .success :-ms-input-placeholder{color:#8fcf90!important}.ui.form .success ::-moz-placeholder{color:#8fcf90}.ui.form .success :focus::-webkit-input-placeholder{color:#6cbf6d}.ui.form .success :focus:-ms-input-placeholder{color:#6cbf6d!important}.ui.form .success :focus::-moz-placeholder{color:#6cbf6d}.ui.form .field.success .ui.dropdown,.ui.form .field.success .ui.dropdown .item,.ui.form .field.success .ui.dropdown .text,.ui.form .fields.success .field .ui.dropdown,.ui.form .fields.success .field .ui.dropdown .item{background:#fcfff5;color:#2c662d}.ui.form .field.success .ui.dropdown,.ui.form .field.success .ui.dropdown:hover,.ui.form .fields.success .field .ui.dropdown,.ui.form .fields.success .field .ui.dropdown:hover{border-color:#a3c293!important}.ui.form .field.success .ui.dropdown:hover .menu,.ui.form .fields.success .field .ui.dropdown:hover .menu{border-color:#a3c293}.ui.form .field.success .ui.multiple.selection.dropdown>.label,.ui.form .fields.success .field .ui.multiple.selection.dropdown>.label{background-color:#cceacc;color:#2c662d}.ui.form .field.success .ui.dropdown .menu .item:hover,.ui.form .field.success .ui.dropdown .menu .selected.item,.ui.form .fields.success .field .ui.dropdown .menu .item:hover,.ui.form .fields.success .field .ui.dropdown .menu .selected.item{background-color:#e9fbe9}.ui.form .field.success .ui.dropdown .menu .active.item,.ui.form .fields.success .field .ui.dropdown .menu .active.item{background-color:#dafdce!important}.ui.form .field.success .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.success .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) label{color:#2c662d}.ui.form .field.success .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.success .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) label:before{background:#fcfff5;border-color:#a3c293}.ui.form .field.success .checkbox .box:after,.ui.form .field.success .checkbox label:after,.ui.form .fields.success .field .checkbox .box:after,.ui.form .fields.success .field .checkbox label:after{color:#2c662d}.ui.form.warning .warning.message:not(:empty){display:block}.ui.form.warning .compact.warning.message:not(:empty){display:inline-block}.ui.form.warning .icon.warning.message:not(:empty){display:flex}.ui.form .field.warning .warning.message:not(:empty),.ui.form .fields.warning .warning.message:not(:empty){display:block}.ui.form .field.warning .compact.warning.message:not(:empty),.ui.form .fields.warning .compact.warning.message:not(:empty){display:inline-block}.ui.form .field.warning .icon.warning.message:not(:empty),.ui.form .fields.warning .icon.warning.message:not(:empty){display:flex}.ui.ui.form .field.warning .input,.ui.ui.form .field.warning label,.ui.ui.form .fields.warning .field .input,.ui.ui.form .fields.warning .field label{color:#573a08}.ui.form .field.warning .corner.label,.ui.form .fields.warning .field .corner.label{border-color:#573a08;color:#fff}.ui.form .field.warning input:not([type]),.ui.form .field.warning input[type=date],.ui.form .field.warning input[type=datetime-local],.ui.form .field.warning input[type=email],.ui.form .field.warning input[type=file],.ui.form .field.warning input[type=number],.ui.form .field.warning input[type=password],.ui.form .field.warning input[type=search],.ui.form .field.warning input[type=tel],.ui.form .field.warning input[type=text],.ui.form .field.warning input[type=time],.ui.form .field.warning input[type=url],.ui.form .field.warning select,.ui.form .field.warning textarea,.ui.form .fields.warning .field input:not([type]),.ui.form .fields.warning .field input[type=date],.ui.form .fields.warning .field input[type=datetime-local],.ui.form .fields.warning .field input[type=email],.ui.form .fields.warning .field input[type=file],.ui.form .fields.warning .field input[type=number],.ui.form .fields.warning .field input[type=password],.ui.form .fields.warning .field input[type=search],.ui.form .fields.warning .field input[type=tel],.ui.form .fields.warning .field input[type=text],.ui.form .fields.warning .field input[type=time],.ui.form .fields.warning .field input[type=url],.ui.form .fields.warning .field select,.ui.form .fields.warning .field textarea{color:#573a08;background:#fffaf3;border-color:#c9ba9b;border-radius:"";box-shadow:none}.ui.form .field.warning input:not([type]):focus,.ui.form .field.warning input[type=date]:focus,.ui.form .field.warning input[type=datetime-local]:focus,.ui.form .field.warning input[type=email]:focus,.ui.form .field.warning input[type=file]:focus,.ui.form .field.warning input[type=number]:focus,.ui.form .field.warning input[type=password]:focus,.ui.form .field.warning input[type=search]:focus,.ui.form .field.warning input[type=tel]:focus,.ui.form .field.warning input[type=text]:focus,.ui.form .field.warning input[type=time]:focus,.ui.form .field.warning input[type=url]:focus,.ui.form .field.warning select:focus,.ui.form .field.warning textarea:focus{background:#fffaf3;border-color:#c9ba9b;color:#573a08;box-shadow:none}.ui.form .field.warning select{-webkit-appearance:menulist-button}.ui.form .field.warning .transparent.input input,.ui.form .field.warning .transparent.input textarea,.ui.form .field.warning input.transparent,.ui.form .field.warning textarea.transparent{background-color:#fffaf3!important;color:#573a08!important}.ui.form .warning.warning input:-webkit-autofill{box-shadow:inset 0 0 0 100px #ffffe0!important;border-color:#e0e0b3!important}.ui.form .warning ::-webkit-input-placeholder{color:#edad3e}.ui.form .warning :-ms-input-placeholder{color:#edad3e!important}.ui.form .warning ::-moz-placeholder{color:#edad3e}.ui.form .warning :focus::-webkit-input-placeholder{color:#e39715}.ui.form .warning :focus:-ms-input-placeholder{color:#e39715!important}.ui.form .warning :focus::-moz-placeholder{color:#e39715}.ui.form .field.warning .ui.dropdown,.ui.form .field.warning .ui.dropdown .item,.ui.form .field.warning .ui.dropdown .text,.ui.form .fields.warning .field .ui.dropdown,.ui.form .fields.warning .field .ui.dropdown .item{background:#fffaf3;color:#573a08}.ui.form .field.warning .ui.dropdown,.ui.form .field.warning .ui.dropdown:hover,.ui.form .fields.warning .field .ui.dropdown,.ui.form .fields.warning .field .ui.dropdown:hover{border-color:#c9ba9b!important}.ui.form .field.warning .ui.dropdown:hover .menu,.ui.form .fields.warning .field .ui.dropdown:hover .menu{border-color:#c9ba9b}.ui.form .field.warning .ui.multiple.selection.dropdown>.label,.ui.form .fields.warning .field .ui.multiple.selection.dropdown>.label{background-color:#eaeacc;color:#573a08}.ui.form .field.warning .ui.dropdown .menu .item:hover,.ui.form .field.warning .ui.dropdown .menu .selected.item,.ui.form .fields.warning .field .ui.dropdown .menu .item:hover,.ui.form .fields.warning .field .ui.dropdown .menu .selected.item{background-color:#fbfbe9}.ui.form .field.warning .ui.dropdown .menu .active.item,.ui.form .fields.warning .field .ui.dropdown .menu .active.item{background-color:#fdfdce!important}.ui.form .field.warning .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.warning .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) label{color:#573a08}.ui.form .field.warning .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.warning .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) label:before{background:#fffaf3;border-color:#c9ba9b}.ui.form .field.warning .checkbox .box:after,.ui.form .field.warning .checkbox label:after,.ui.form .fields.warning .field .checkbox .box:after,.ui.form .fields.warning .field .checkbox label:after{color:#573a08}.ui.form .disabled.field,.ui.form .disabled.fields .field,.ui.form .field :disabled{pointer-events:none;opacity:.45}.ui.form .field.disabled>label,.ui.form .fields.disabled>label{opacity:.45}.ui.form .field.disabled :disabled{opacity:1}.ui.loading.form{position:relative;cursor:default;pointer-events:none}.ui.loading.form:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;z-index:100}.ui.loading.form.segments:before{border-radius:.28571429rem}.ui.loading.form:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.ui.form .required.field>.checkbox:after,.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>label:after,.ui.form label.required:after{margin:-.2em 0 0 .2em;content:"*";color:#db2828}.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>label:after,.ui.form label.required:after{display:inline-block;vertical-align:top}.ui.form .required.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after{position:absolute;top:0;left:100%}.ui.form .inverted.segment .ui.checkbox .box,.ui.form .inverted.segment .ui.checkbox label,.ui.form .inverted.segment label,.ui.inverted.form .inline.field>label,.ui.inverted.form .inline.field>p,.ui.inverted.form .inline.fields .field>label,.ui.inverted.form .inline.fields .field>p,.ui.inverted.form .inline.fields>label,.ui.inverted.form .ui.checkbox .box,.ui.inverted.form .ui.checkbox label,.ui.inverted.form label{color:hsla(0,0%,100%,.9)}.ui.inverted.loading.form{color:#fff}.ui.inverted.loading.form:before{background:rgba(0,0,0,.85)}.ui.inverted.form input:not([type]),.ui.inverted.form input[type=date],.ui.inverted.form input[type=datetime-local],.ui.inverted.form input[type=email],.ui.inverted.form input[type=file],.ui.inverted.form input[type=number],.ui.inverted.form input[type=password],.ui.inverted.form input[type=search],.ui.inverted.form input[type=tel],.ui.inverted.form input[type=text],.ui.inverted.form input[type=time],.ui.inverted.form input[type=url]{background:#fff;border-color:hsla(0,0%,100%,.1);color:rgba(0,0,0,.87);box-shadow:none}.ui.form .grouped.fields{display:block;margin:0 0 1em}.ui.form .grouped.fields:last-child{margin-bottom:0}.ui.form .grouped.fields>label{margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form .grouped.fields .field,.ui.form .grouped.inline.fields .field{display:block;margin:.5em 0;padding:0}.ui.form .grouped.inline.fields .ui.checkbox{margin-bottom:.4em}.ui.form .fields{display:flex;flex-direction:row;margin:0 -.5em 1em}.ui.form .fields>.field{flex:0 1 auto;padding-left:.5em;padding-right:.5em}.ui.form .fields>.field:first-child{border-left:none;box-shadow:none}.ui.form .two.fields>.field,.ui.form .two.fields>.fields{width:50%}.ui.form .three.fields>.field,.ui.form .three.fields>.fields{width:33.33333333%}.ui.form .four.fields>.field,.ui.form .four.fields>.fields{width:25%}.ui.form .five.fields>.field,.ui.form .five.fields>.fields{width:20%}.ui.form .six.fields>.field,.ui.form .six.fields>.fields{width:16.66666667%}.ui.form .seven.fields>.field,.ui.form .seven.fields>.fields{width:14.28571429%}.ui.form .eight.fields>.field,.ui.form .eight.fields>.fields{width:12.5%}.ui.form .nine.fields>.field,.ui.form .nine.fields>.fields{width:11.11111111%}.ui.form .ten.fields>.field,.ui.form .ten.fields>.fields{width:10%}@media only screen and (max-width:767.98px){.ui.form .fields{flex-wrap:wrap;margin-bottom:0}.ui.form:not(.unstackable) .fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.fields{width:100%;margin:0 0 1em}}.ui.form .fields .wide.field{width:6.25%;padding-left:.5em;padding-right:.5em}.ui.form .one.wide.field{width:6.25%}.ui.form .two.wide.field{width:12.5%}.ui.form .three.wide.field{width:18.75%}.ui.form .four.wide.field{width:25%}.ui.form .five.wide.field{width:31.25%}.ui.form .six.wide.field{width:37.5%}.ui.form .seven.wide.field{width:43.75%}.ui.form .eight.wide.field{width:50%}.ui.form .nine.wide.field{width:56.25%}.ui.form .ten.wide.field{width:62.5%}.ui.form .eleven.wide.field{width:68.75%}.ui.form .twelve.wide.field{width:75%}.ui.form .thirteen.wide.field{width:81.25%}.ui.form .fourteen.wide.field{width:87.5%}.ui.form .fifteen.wide.field{width:93.75%}.ui.form .sixteen.wide.field{width:100%}.ui.form [class*="equal width"].fields>.field,.ui[class*="equal width"].form .fields>.field{width:100%;flex:1 1 auto}.ui.form .inline.fields{margin:0 0 1em;align-items:center}.ui.form .inline.fields .field{margin:0;padding:0 1em 0 0}.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields>label{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:baseline;font-size:.92857143em;font-weight:700;color:rgba(0,0,0,.87);text-transform:none}.ui.form .inline.fields>label{margin:.035714em 1em 0 0}.ui.form .inline.field>input,.ui.form .inline.field>select,.ui.form .inline.fields .field>input,.ui.form .inline.fields .field>select{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.field .calendar:not(.popup),.ui.form .inline.fields .field .calendar:not(.popup){display:inline-block}.ui.form .inline.field .calendar:not(.popup)>.input>input,.ui.form .inline.fields .field .calendar:not(.popup)>.input>input{width:13.11em}.ui.form .inline.field>:first-child,.ui.form .inline.fields .field>:first-child{margin:0 .85714286em 0 0}.ui.form .inline.field>:only-child,.ui.form .inline.fields .field>:only-child{margin:0}.ui.form .inline.fields .wide.field{display:flex;align-items:center}.ui.form .inline.fields .wide.field>input,.ui.form .inline.fields .wide.field>select{width:100%}.ui.form,.ui.form .field .dropdown,.ui.form .field .dropdown .menu>.item{font-size:1rem}.ui.mini.form,.ui.mini.form .field .dropdown,.ui.mini.form .field .dropdown .menu>.item{font-size:.78571429rem}.ui.tiny.form,.ui.tiny.form .field .dropdown,.ui.tiny.form .field .dropdown .menu>.item{font-size:.85714286rem}.ui.small.form,.ui.small.form .field .dropdown,.ui.small.form .field .dropdown .menu>.item{font-size:.92857143rem}.ui.large.form,.ui.large.form .field .dropdown,.ui.large.form .field .dropdown .menu>.item{font-size:1.14285714rem}.ui.big.form,.ui.big.form .field .dropdown,.ui.big.form .field .dropdown .menu>.item{font-size:1.28571429rem}.ui.huge.form,.ui.huge.form .field .dropdown,.ui.huge.form .field .dropdown .menu>.item{font-size:1.42857143rem}.ui.massive.form,.ui.massive.form .field .dropdown,.ui.massive.form .field .dropdown .menu>.item{font-size:1.71428571rem}
+
+
+/*!
+ * # Fomantic-UI - Icon
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */@font-face{font-family:Icons;src:url(../fonts/icons.eot);src:url(../fonts/icons.eot?#iefix) format("embedded-opentype"),url(../fonts/icons.woff2) format("woff2"),url(../fonts/icons.woff) format("woff"),url(../fonts/icons.ttf) format("truetype"),url(../images/icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:1;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.icon:before{background:none!important}i.icon.loading{height:1em;line-height:1;-webkit-animation:loader 2s linear infinite;animation:loader 2s linear infinite}i.emphasized.icon:not(.disabled),i.emphasized.icons:not(.disabled),i.icon:active,i.icon:hover,i.icons:active,i.icons:hover{opacity:1}i.disabled.icon,i.disabled.icons{opacity:.45;cursor:default;pointer-events:none}i.fitted.icon{width:auto;margin:0!important}i.link.icon:not(.disabled),i.link.icons:not(.disabled){cursor:pointer;opacity:.8;transition:opacity .1s ease}i.link.icon:hover,i.link.icons:hover{opacity:1}i.circular.icon{border-radius:500em!important;line-height:1!important;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1);width:2em!important;height:2em!important}i.circular.inverted.icon{border:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{transform:scaleX(-1)}i.vertically.flipped.icon{transform:scaleY(-1)}i.clockwise.rotated.icon,i.right.rotated.icon,i.rotated.icon{transform:rotate(90deg)}i.counterclockwise.rotated.icon,i.left.rotated.icon{transform:rotate(-90deg)}i.halfway.rotated.icon{transform:rotate(180deg)}i.clockwise.rotated.flipped.icon,i.right.rotated.flipped.icon,i.rotated.flipped.icon{transform:scaleX(-1) rotate(90deg)}i.counterclockwise.rotated.flipped.icon,i.left.rotated.flipped.icon{transform:scaleX(-1) rotate(-90deg)}i.halfway.rotated.flipped.icon{transform:scaleX(-1) rotate(180deg)}i.clockwise.rotated.vertically.flipped.icon,i.right.rotated.vertically.flipped.icon,i.rotated.vertically.flipped.icon{transform:scaleY(-1) rotate(90deg)}i.counterclockwise.rotated.vertically.flipped.icon,i.left.rotated.vertically.flipped.icon{transform:scaleY(-1) rotate(-90deg)}i.halfway.rotated.vertically.flipped.icon{transform:scaleY(-1) rotate(180deg)}i.bordered.icon{line-height:1;vertical-align:baseline;width:2em;height:2em;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1)}i.bordered.inverted.icon{border:none;box-shadow:none}i.inverted.bordered.icon,i.inverted.circular.icon{background-color:#1b1c1d;color:#fff}i.inverted.icon{color:#fff}i.primary.icon.icon.icon.icon{color:#2185d0}i.inverted.primary.icon.icon.icon.icon{color:#54c8ff}i.inverted.bordered.primary.icon.icon.icon.icon,i.inverted.circular.primary.icon.icon.icon.icon{background-color:#2185d0;color:#fff}i.secondary.icon.icon.icon.icon{color:#1b1c1d}i.inverted.secondary.icon.icon.icon.icon{color:#545454}i.inverted.bordered.secondary.icon.icon.icon.icon,i.inverted.circular.secondary.icon.icon.icon.icon{background-color:#1b1c1d;color:#fff}i.red.icon.icon.icon.icon{color:#db2828}i.inverted.red.icon.icon.icon.icon{color:#ff695e}i.inverted.bordered.red.icon.icon.icon.icon,i.inverted.circular.red.icon.icon.icon.icon{background-color:#db2828;color:#fff}i.orange.icon.icon.icon.icon{color:#f2711c}i.inverted.orange.icon.icon.icon.icon{color:#ff851b}i.inverted.bordered.orange.icon.icon.icon.icon,i.inverted.circular.orange.icon.icon.icon.icon{background-color:#f2711c;color:#fff}i.yellow.icon.icon.icon.icon{color:#fbbd08}i.inverted.yellow.icon.icon.icon.icon{color:#ffe21f}i.inverted.bordered.yellow.icon.icon.icon.icon,i.inverted.circular.yellow.icon.icon.icon.icon{background-color:#fbbd08;color:#fff}i.olive.icon.icon.icon.icon{color:#b5cc18}i.inverted.olive.icon.icon.icon.icon{color:#d9e778}i.inverted.bordered.olive.icon.icon.icon.icon,i.inverted.circular.olive.icon.icon.icon.icon{background-color:#b5cc18;color:#fff}i.green.icon.icon.icon.icon{color:#21ba45}i.inverted.green.icon.icon.icon.icon{color:#2ecc40}i.inverted.bordered.green.icon.icon.icon.icon,i.inverted.circular.green.icon.icon.icon.icon{background-color:#21ba45;color:#fff}i.teal.icon.icon.icon.icon{color:#00b5ad}i.inverted.teal.icon.icon.icon.icon{color:#6dffff}i.inverted.bordered.teal.icon.icon.icon.icon,i.inverted.circular.teal.icon.icon.icon.icon{background-color:#00b5ad;color:#fff}i.blue.icon.icon.icon.icon{color:#2185d0}i.inverted.blue.icon.icon.icon.icon{color:#54c8ff}i.inverted.bordered.blue.icon.icon.icon.icon,i.inverted.circular.blue.icon.icon.icon.icon{background-color:#2185d0;color:#fff}i.violet.icon.icon.icon.icon{color:#6435c9}i.inverted.violet.icon.icon.icon.icon{color:#a291fb}i.inverted.bordered.violet.icon.icon.icon.icon,i.inverted.circular.violet.icon.icon.icon.icon{background-color:#6435c9;color:#fff}i.purple.icon.icon.icon.icon{color:#a333c8}i.inverted.purple.icon.icon.icon.icon{color:#dc73ff}i.inverted.bordered.purple.icon.icon.icon.icon,i.inverted.circular.purple.icon.icon.icon.icon{background-color:#a333c8;color:#fff}i.pink.icon.icon.icon.icon{color:#e03997}i.inverted.pink.icon.icon.icon.icon{color:#ff8edf}i.inverted.bordered.pink.icon.icon.icon.icon,i.inverted.circular.pink.icon.icon.icon.icon{background-color:#e03997;color:#fff}i.brown.icon.icon.icon.icon{color:#a5673f}i.inverted.brown.icon.icon.icon.icon{color:#d67c1c}i.inverted.bordered.brown.icon.icon.icon.icon,i.inverted.circular.brown.icon.icon.icon.icon{background-color:#a5673f;color:#fff}i.grey.icon.icon.icon.icon{color:#767676}i.inverted.grey.icon.icon.icon.icon{color:#dcddde}i.inverted.bordered.grey.icon.icon.icon.icon,i.inverted.circular.grey.icon.icon.icon.icon{background-color:#767676;color:#fff}i.black.icon.icon.icon.icon{color:#1b1c1d}i.inverted.black.icon.icon.icon.icon{color:#545454}i.inverted.bordered.black.icon.icon.icon.icon,i.inverted.circular.black.icon.icon.icon.icon{background-color:#1b1c1d;color:#fff}i.icon,i.icons{font-size:1em;line-height:1}i.mini.mini.mini.icon,i.mini.mini.mini.icons{font-size:.4em;vertical-align:middle}i.tiny.tiny.tiny.icon,i.tiny.tiny.tiny.icons{font-size:.5em;vertical-align:middle}i.small.small.small.icon,i.small.small.small.icons{font-size:.75em;vertical-align:middle}i.large.large.large.icon,i.large.large.large.icons{font-size:1.5em;vertical-align:middle}i.big.big.big.icon,i.big.big.big.icons{font-size:2em;vertical-align:middle}i.huge.huge.huge.icon,i.huge.huge.huge.icons{font-size:4em;vertical-align:middle}i.massive.massive.massive.icon,i.massive.massive.massive.icons{font-size:8em;vertical-align:middle}i.icons{display:inline-block;position:relative;line-height:1}i.icons .icon{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);margin:0}i.icons .icon:first-child{position:static;width:auto;height:auto;vertical-align:top;transform:none}i.icons .corner.icon{top:auto;left:auto;right:0;bottom:0;transform:none;font-size:.45em;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}i.icons .icon.corner[class*="top right"]{top:0;left:auto;right:0;bottom:auto}i.icons .icon.corner[class*="top left"]{top:0;left:0;right:auto;bottom:auto}i.icons .icon.corner[class*="bottom left"]{top:auto;left:0;right:auto;bottom:0}i.icons .icon.corner[class*="bottom right"]{top:auto;left:auto;right:0;bottom:0}i.icons .inverted.corner.icon{text-shadow:-1px -1px 0 #1b1c1d,1px -1px 0 #1b1c1d,-1px 1px 0 #1b1c1d,1px 1px 0 #1b1c1d}i.icon.ad:before{content:"\f641"}i.icon.address.book:before{content:"\f2b9"}i.icon.address.card:before{content:"\f2bb"}i.icon.adjust:before{content:"\f042"}i.icon.air.freshener:before{content:"\f5d0"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.allergies:before{content:"\f461"}i.icon.ambulance:before{content:"\f0f9"}i.icon.american.sign.language.interpreting:before{content:"\f2a3"}i.icon.anchor:before{content:"\f13d"}i.icon.angle.double.down:before{content:"\f103"}i.icon.angle.double.left:before{content:"\f100"}i.icon.angle.double.right:before{content:"\f101"}i.icon.angle.double.up:before{content:"\f102"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.angry:before{content:"\f556"}i.icon.ankh:before{content:"\f644"}i.icon.archive:before{content:"\f187"}i.icon.archway:before{content:"\f557"}i.icon.arrow.alternate.circle.down:before{content:"\f358"}i.icon.arrow.alternate.circle.left:before{content:"\f359"}i.icon.arrow.alternate.circle.right:before{content:"\f35a"}i.icon.arrow.alternate.circle.up:before{content:"\f35b"}i.icon.arrow.circle.down:before{content:"\f0ab"}i.icon.arrow.circle.left:before{content:"\f0a8"}i.icon.arrow.circle.right:before{content:"\f0a9"}i.icon.arrow.circle.up:before{content:"\f0aa"}i.icon.arrow.left:before{content:"\f060"}i.icon.arrow.right:before{content:"\f061"}i.icon.arrow.up:before{content:"\f062"}i.icon.arrow.down:before{content:"\f063"}i.icon.arrows.alternate:before{content:"\f0b2"}i.icon.arrows.alternate.horizontal:before{content:"\f337"}i.icon.arrows.alternate.vertical:before{content:"\f338"}i.icon.assistive.listening.systems:before{content:"\f2a2"}i.icon.asterisk:before{content:"\f069"}i.icon.at:before{content:"\f1fa"}i.icon.atlas:before{content:"\f558"}i.icon.atom:before{content:"\f5d2"}i.icon.audio.description:before{content:"\f29e"}i.icon.award:before{content:"\f559"}i.icon.baby:before{content:"\f77c"}i.icon.baby.carriage:before{content:"\f77d"}i.icon.backspace:before{content:"\f55a"}i.icon.backward:before{content:"\f04a"}i.icon.bacon:before{content:"\f7e5"}i.icon.bahai:before{content:"\f666"}i.icon.balance.scale:before{content:"\f24e"}i.icon.balance.scale.left:before{content:"\f515"}i.icon.balance.scale.right:before{content:"\f516"}i.icon.ban:before{content:"\f05e"}i.icon.band.aid:before{content:"\f462"}i.icon.barcode:before{content:"\f02a"}i.icon.bars:before{content:"\f0c9"}i.icon.baseball.ball:before{content:"\f433"}i.icon.basketball.ball:before{content:"\f434"}i.icon.bath:before{content:"\f2cd"}i.icon.battery.empty:before{content:"\f244"}i.icon.battery.full:before{content:"\f240"}i.icon.battery.half:before{content:"\f242"}i.icon.battery.quarter:before{content:"\f243"}i.icon.battery.three.quarters:before{content:"\f241"}i.icon.bed:before{content:"\f236"}i.icon.beer:before{content:"\f0fc"}i.icon.bell:before{content:"\f0f3"}i.icon.bell.slash:before{content:"\f1f6"}i.icon.bezier.curve:before{content:"\f55b"}i.icon.bible:before{content:"\f647"}i.icon.bicycle:before{content:"\f206"}i.icon.biking:before{content:"\f84a"}i.icon.binoculars:before{content:"\f1e5"}i.icon.biohazard:before{content:"\f780"}i.icon.birthday.cake:before{content:"\f1fd"}i.icon.blender:before{content:"\f517"}i.icon.blender.phone:before{content:"\f6b6"}i.icon.blind:before{content:"\f29d"}i.icon.blog:before{content:"\f781"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.bomb:before{content:"\f1e2"}i.icon.bone:before{content:"\f5d7"}i.icon.bong:before{content:"\f55c"}i.icon.book:before{content:"\f02d"}i.icon.book.dead:before{content:"\f6b7"}i.icon.book.medical:before{content:"\f7e6"}i.icon.book.open:before{content:"\f518"}i.icon.book.reader:before{content:"\f5da"}i.icon.bookmark:before{content:"\f02e"}i.icon.border.all:before{content:"\f84c"}i.icon.border.none:before{content:"\f850"}i.icon.border.style:before{content:"\f853"}i.icon.bowling.ball:before{content:"\f436"}i.icon.box:before{content:"\f466"}i.icon.box.open:before{content:"\f49e"}i.icon.box.tissue:before{content:"\f95b"}i.icon.boxes:before{content:"\f468"}i.icon.braille:before{content:"\f2a1"}i.icon.brain:before{content:"\f5dc"}i.icon.bread.slice:before{content:"\f7ec"}i.icon.briefcase:before{content:"\f0b1"}i.icon.briefcase.medical:before{content:"\f469"}i.icon.broadcast.tower:before{content:"\f519"}i.icon.broom:before{content:"\f51a"}i.icon.brush:before{content:"\f55d"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f1ad"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.burn:before{content:"\f46a"}i.icon.bus:before{content:"\f207"}i.icon.bus.alternate:before{content:"\f55e"}i.icon.business.time:before{content:"\f64a"}i.icon.calculator:before{content:"\f1ec"}i.icon.calendar:before{content:"\f133"}i.icon.calendar.alternate:before{content:"\f073"}i.icon.calendar.check:before{content:"\f274"}i.icon.calendar.day:before{content:"\f783"}i.icon.calendar.minus:before{content:"\f272"}i.icon.calendar.plus:before{content:"\f271"}i.icon.calendar.times:before{content:"\f273"}i.icon.calendar.week:before{content:"\f784"}i.icon.camera:before{content:"\f030"}i.icon.camera.retro:before{content:"\f083"}i.icon.campground:before{content:"\f6bb"}i.icon.candy.cane:before{content:"\f786"}i.icon.cannabis:before{content:"\f55f"}i.icon.capsules:before{content:"\f46b"}i.icon.car:before{content:"\f1b9"}i.icon.car.alternate:before{content:"\f5de"}i.icon.car.battery:before{content:"\f5df"}i.icon.car.crash:before{content:"\f5e1"}i.icon.car.side:before{content:"\f5e4"}i.icon.caravan:before{content:"\f8ff"}i.icon.caret.down:before{content:"\f0d7"}i.icon.caret.left:before{content:"\f0d9"}i.icon.caret.right:before{content:"\f0da"}i.icon.caret.square.down:before{content:"\f150"}i.icon.caret.square.left:before{content:"\f191"}i.icon.caret.square.right:before{content:"\f152"}i.icon.caret.square.up:before{content:"\f151"}i.icon.caret.up:before{content:"\f0d8"}i.icon.carrot:before{content:"\f787"}i.icon.cart.arrow.down:before{content:"\f218"}i.icon.cart.plus:before{content:"\f217"}i.icon.cash.register:before{content:"\f788"}i.icon.cat:before{content:"\f6be"}i.icon.certificate:before{content:"\f0a3"}i.icon.chair:before{content:"\f6c0"}i.icon.chalkboard:before{content:"\f51b"}i.icon.chalkboard.teacher:before{content:"\f51c"}i.icon.charging.station:before{content:"\f5e7"}i.icon.chart.area:before{content:"\f1fe"}i.icon.chart.bar:before{content:"\f080"}i.icon.chart.line:before,i.icon.chartline:before{content:"\f201"}i.icon.chart.pie:before{content:"\f200"}i.icon.check:before{content:"\f00c"}i.icon.check.circle:before{content:"\f058"}i.icon.check.double:before{content:"\f560"}i.icon.check.square:before{content:"\f14a"}i.icon.cheese:before{content:"\f7ef"}i.icon.chess:before{content:"\f439"}i.icon.chess.bishop:before{content:"\f43a"}i.icon.chess.board:before{content:"\f43c"}i.icon.chess.king:before{content:"\f43f"}i.icon.chess.knight:before{content:"\f441"}i.icon.chess.pawn:before{content:"\f443"}i.icon.chess.queen:before{content:"\f445"}i.icon.chess.rook:before{content:"\f447"}i.icon.chevron.circle.down:before{content:"\f13a"}i.icon.chevron.circle.left:before{content:"\f137"}i.icon.chevron.circle.right:before{content:"\f138"}i.icon.chevron.circle.up:before{content:"\f139"}i.icon.chevron.down:before{content:"\f078"}i.icon.chevron.left:before{content:"\f053"}i.icon.chevron.right:before{content:"\f054"}i.icon.chevron.up:before{content:"\f077"}i.icon.child:before{content:"\f1ae"}i.icon.church:before{content:"\f51d"}i.icon.circle:before{content:"\f111"}i.icon.circle.notch:before{content:"\f1ce"}i.icon.city:before{content:"\f64f"}i.icon.clinic.medical:before{content:"\f7f2"}i.icon.clipboard:before{content:"\f328"}i.icon.clipboard.check:before{content:"\f46c"}i.icon.clipboard.list:before{content:"\f46d"}i.icon.clock:before{content:"\f017"}i.icon.clone:before{content:"\f24d"}i.icon.closed.captioning:before{content:"\f20a"}i.icon.cloud:before{content:"\f0c2"}i.icon.cloud.download.alternate:before{content:"\f381"}i.icon.cloud.meatball:before{content:"\f73b"}i.icon.cloud.moon:before{content:"\f6c3"}i.icon.cloud.moon.rain:before{content:"\f73c"}i.icon.cloud.rain:before{content:"\f73d"}i.icon.cloud.showers.heavy:before{content:"\f740"}i.icon.cloud.sun:before{content:"\f6c4"}i.icon.cloud.sun.rain:before{content:"\f743"}i.icon.cloud.upload.alternate:before{content:"\f382"}i.icon.cocktail:before{content:"\f561"}i.icon.code:before{content:"\f121"}i.icon.code.branch:before{content:"\f126"}i.icon.coffee:before{content:"\f0f4"}i.icon.cog:before{content:"\f013"}i.icon.cogs:before{content:"\f085"}i.icon.coins:before{content:"\f51e"}i.icon.columns:before{content:"\f0db"}i.icon.comment:before{content:"\f075"}i.icon.comment.alternate:before{content:"\f27a"}i.icon.comment.dollar:before{content:"\f651"}i.icon.comment.dots:before{content:"\f4ad"}i.icon.comment.medical:before{content:"\f7f5"}i.icon.comment.slash:before{content:"\f4b3"}i.icon.comments:before{content:"\f086"}i.icon.comments.dollar:before{content:"\f653"}i.icon.compact.disc:before{content:"\f51f"}i.icon.compass:before{content:"\f14e"}i.icon.compress:before{content:"\f066"}i.icon.compress.alternate:before{content:"\f422"}i.icon.compress.arrows.alternate:before{content:"\f78c"}i.icon.concierge.bell:before{content:"\f562"}i.icon.cookie:before{content:"\f563"}i.icon.cookie.bite:before{content:"\f564"}i.icon.copy:before{content:"\f0c5"}i.icon.copyright:before{content:"\f1f9"}i.icon.couch:before{content:"\f4b8"}i.icon.credit.card:before{content:"\f09d"}i.icon.crop:before{content:"\f125"}i.icon.crop.alternate:before{content:"\f565"}i.icon.cross:before{content:"\f654"}i.icon.crosshairs:before{content:"\f05b"}i.icon.crow:before{content:"\f520"}i.icon.crown:before{content:"\f521"}i.icon.crutch:before{content:"\f7f7"}i.icon.cube:before{content:"\f1b2"}i.icon.cubes:before{content:"\f1b3"}i.icon.cut:before{content:"\f0c4"}i.icon.database:before{content:"\f1c0"}i.icon.deaf:before{content:"\f2a4"}i.icon.democrat:before{content:"\f747"}i.icon.desktop:before{content:"\f108"}i.icon.dharmachakra:before{content:"\f655"}i.icon.diagnoses:before{content:"\f470"}i.icon.dice:before{content:"\f522"}i.icon.dice.d20:before{content:"\f6cf"}i.icon.dice.d6:before{content:"\f6d1"}i.icon.dice.five:before{content:"\f523"}i.icon.dice.four:before{content:"\f524"}i.icon.dice.one:before{content:"\f525"}i.icon.dice.six:before{content:"\f526"}i.icon.dice.three:before{content:"\f527"}i.icon.dice.two:before{content:"\f528"}i.icon.digital.tachograph:before{content:"\f566"}i.icon.directions:before{content:"\f5eb"}i.icon.disease:before{content:"\f7fa"}i.icon.divide:before{content:"\f529"}i.icon.dizzy:before{content:"\f567"}i.icon.dna:before{content:"\f471"}i.icon.dog:before{content:"\f6d3"}i.icon.dollar.sign:before{content:"\f155"}i.icon.dolly:before{content:"\f472"}i.icon.dolly.flatbed:before{content:"\f474"}i.icon.donate:before{content:"\f4b9"}i.icon.door.closed:before{content:"\f52a"}i.icon.door.open:before{content:"\f52b"}i.icon.dot.circle:before{content:"\f192"}i.icon.dove:before{content:"\f4ba"}i.icon.download:before{content:"\f019"}i.icon.drafting.compass:before{content:"\f568"}i.icon.dragon:before{content:"\f6d5"}i.icon.draw.polygon:before{content:"\f5ee"}i.icon.drum:before{content:"\f569"}i.icon.drum.steelpan:before{content:"\f56a"}i.icon.drumstick.bite:before{content:"\f6d7"}i.icon.dumbbell:before{content:"\f44b"}i.icon.dumpster:before{content:"\f793"}i.icon.dumpster.fire:before{content:"\f794"}i.icon.dungeon:before{content:"\f6d9"}i.icon.edit:before{content:"\f044"}i.icon.egg:before{content:"\f7fb"}i.icon.eject:before{content:"\f052"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.envelope:before{content:"\f0e0"}i.icon.envelope.open:before{content:"\f2b6"}i.icon.envelope.open.text:before{content:"\f658"}i.icon.envelope.square:before{content:"\f199"}i.icon.equals:before{content:"\f52c"}i.icon.eraser:before{content:"\f12d"}i.icon.ethernet:before{content:"\f796"}i.icon.euro.sign:before{content:"\f153"}i.icon.exchange.alternate:before{content:"\f362"}i.icon.exclamation:before{content:"\f12a"}i.icon.exclamation.circle:before{content:"\f06a"}i.icon.exclamation.triangle:before{content:"\f071"}i.icon.expand:before{content:"\f065"}i.icon.expand.alternate:before{content:"\f424"}i.icon.expand.arrows.alternate:before{content:"\f31e"}i.icon.external.alternate:before{content:"\f35d"}i.icon.external.link.square.alternate:before{content:"\f360"}i.icon.eye:before{content:"\f06e"}i.icon.eye.dropper:before{content:"\f1fb"}i.icon.eye.slash:before{content:"\f070"}i.icon.fan:before{content:"\f863"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.faucet:before{content:"\f905"}i.icon.fax:before{content:"\f1ac"}i.icon.feather:before{content:"\f52d"}i.icon.feather.alternate:before{content:"\f56b"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file:before{content:"\f15b"}i.icon.file.alternate:before{content:"\f15c"}i.icon.file.archive:before{content:"\f1c6"}i.icon.file.audio:before{content:"\f1c7"}i.icon.file.code:before{content:"\f1c9"}i.icon.file.contract:before{content:"\f56c"}i.icon.file.csv:before{content:"\f6dd"}i.icon.file.download:before{content:"\f56d"}i.icon.file.excel:before{content:"\f1c3"}i.icon.file.export:before{content:"\f56e"}i.icon.file.image:before{content:"\f1c5"}i.icon.file.import:before{content:"\f56f"}i.icon.file.invoice:before{content:"\f570"}i.icon.file.invoice.dollar:before{content:"\f571"}i.icon.file.medical:before{content:"\f477"}i.icon.file.medical.alternate:before{content:"\f478"}i.icon.file.pdf:before{content:"\f1c1"}i.icon.file.powerpoint:before{content:"\f1c4"}i.icon.file.prescription:before{content:"\f572"}i.icon.file.signature:before{content:"\f573"}i.icon.file.upload:before{content:"\f574"}i.icon.file.video:before{content:"\f1c8"}i.icon.file.word:before{content:"\f1c2"}i.icon.fill:before{content:"\f575"}i.icon.fill.drip:before{content:"\f576"}i.icon.film:before{content:"\f008"}i.icon.filter:before{content:"\f0b0"}i.icon.fingerprint:before{content:"\f577"}i.icon.fire:before{content:"\f06d"}i.icon.fire.alternate:before{content:"\f7e4"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.first.aid:before{content:"\f479"}i.icon.fish:before{content:"\f578"}i.icon.fist.raised:before{content:"\f6de"}i.icon.flag:before{content:"\f024"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flag.usa:before{content:"\f74d"}i.icon.flask:before{content:"\f0c3"}i.icon.flushed:before{content:"\f579"}i.icon.folder:before{content:"\f07b"}i.icon.folder.minus:before{content:"\f65d"}i.icon.folder.open:before{content:"\f07c"}i.icon.folder.plus:before{content:"\f65e"}i.icon.font:before{content:"\f031"}i.icon.football.ball:before{content:"\f44e"}i.icon.forward:before{content:"\f04e"}i.icon.frog:before{content:"\f52e"}i.icon.frown:before{content:"\f119"}i.icon.frown.open:before{content:"\f57a"}i.icon.fruit-apple:before{content:"\f5d1"}i.icon.funnel.dollar:before{content:"\f662"}i.icon.futbol:before{content:"\f1e3"}i.icon.gamepad:before{content:"\f11b"}i.icon.gas.pump:before{content:"\f52f"}i.icon.gavel:before{content:"\f0e3"}i.icon.gem:before{content:"\f3a5"}i.icon.genderless:before{content:"\f22d"}i.icon.ghost:before{content:"\f6e2"}i.icon.gift:before{content:"\f06b"}i.icon.gifts:before{content:"\f79c"}i.icon.glass.cheers:before{content:"\f79f"}i.icon.glass.martini:before{content:"\f000"}i.icon.glass.martini.alternate:before{content:"\f57b"}i.icon.glass.whiskey:before{content:"\f7a0"}i.icon.glasses:before{content:"\f530"}i.icon.globe:before{content:"\f0ac"}i.icon.globe.africa:before{content:"\f57c"}i.icon.globe.americas:before{content:"\f57d"}i.icon.globe.asia:before{content:"\f57e"}i.icon.globe.europe:before{content:"\f7a2"}i.icon.golf.ball:before{content:"\f450"}i.icon.gopuram:before{content:"\f664"}i.icon.graduation.cap:before{content:"\f19d"}i.icon.greater.than:before{content:"\f531"}i.icon.greater.than.equal:before{content:"\f532"}i.icon.grimace:before{content:"\f57f"}i.icon.grin:before{content:"\f580"}i.icon.grin.alternate:before{content:"\f581"}i.icon.grin.beam:before{content:"\f582"}i.icon.grin.beam.sweat:before{content:"\f583"}i.icon.grin.hearts:before{content:"\f584"}i.icon.grin.squint:before{content:"\f585"}i.icon.grin.squint.tears:before{content:"\f586"}i.icon.grin.stars:before{content:"\f587"}i.icon.grin.tears:before{content:"\f588"}i.icon.grin.tongue:before{content:"\f589"}i.icon.grin.tongue.squint:before{content:"\f58a"}i.icon.grin.tongue.wink:before{content:"\f58b"}i.icon.grin.wink:before{content:"\f58c"}i.icon.grip.horizontal:before{content:"\f58d"}i.icon.grip.lines:before{content:"\f7a4"}i.icon.grip.lines.vertical:before{content:"\f7a5"}i.icon.grip.vertical:before{content:"\f58e"}i.icon.guitar:before{content:"\f7a6"}i.icon.h.square:before{content:"\f0fd"}i.icon.hamburger:before{content:"\f805"}i.icon.hammer:before{content:"\f6e3"}i.icon.hamsa:before{content:"\f665"}i.icon.hand.holding:before{content:"\f4bd"}i.icon.hand.holding.heart:before{content:"\f4be"}i.icon.hand.holding.medical:before{content:"\f95c"}i.icon.hand.holding.usd:before{content:"\f4c0"}i.icon.hand.holding.water:before{content:"\f4c1"}i.icon.hand.lizard:before{content:"\f258"}i.icon.hand.middle.finger:before{content:"\f806"}i.icon.hand.paper:before{content:"\f256"}i.icon.hand.peace:before{content:"\f25b"}i.icon.hand.point.down:before{content:"\f0a7"}i.icon.hand.point.left:before{content:"\f0a5"}i.icon.hand.point.right:before{content:"\f0a4"}i.icon.hand.point.up:before{content:"\f0a6"}i.icon.hand.pointer:before{content:"\f25a"}i.icon.hand.rock:before{content:"\f255"}i.icon.hand.scissors:before{content:"\f257"}i.icon.hand.sparkles:before{content:"\f95d"}i.icon.hand.spock:before{content:"\f259"}i.icon.hands:before{content:"\f4c2"}i.icon.hands.helping:before{content:"\f4c4"}i.icon.hands.wash:before{content:"\f95e"}i.icon.handshake:before{content:"\f2b5"}i.icon.handshake.alternate.slash:before{content:"\f95f"}i.icon.handshake.slash:before{content:"\f960"}i.icon.hanukiah:before{content:"\f6e6"}i.icon.hard.hat:before{content:"\f807"}i.icon.hashtag:before{content:"\f292"}i.icon.hat.cowboy:before{content:"\f8c0"}i.icon.hat.cowboy.side:before{content:"\f8c1"}i.icon.hat.wizard:before{content:"\f6e8"}i.icon.hdd:before{content:"\f0a0"}i.icon.head.side.cough:before{content:"\f961"}i.icon.head.side.cough.slash:before{content:"\f962"}i.icon.head.side.mask:before{content:"\f963"}i.icon.head.side.virus:before{content:"\f964"}i.icon.heading:before{content:"\f1dc"}i.icon.headphones:before{content:"\f025"}i.icon.headphones.alternate:before{content:"\f58f"}i.icon.headset:before{content:"\f590"}i.icon.heart:before{content:"\f004"}i.icon.heart.broken:before{content:"\f7a9"}i.icon.heartbeat:before{content:"\f21e"}i.icon.helicopter:before{content:"\f533"}i.icon.highlighter:before{content:"\f591"}i.icon.hiking:before{content:"\f6ec"}i.icon.hippo:before{content:"\f6ed"}i.icon.history:before{content:"\f1da"}i.icon.hockey.puck:before{content:"\f453"}i.icon.holly.berry:before{content:"\f7aa"}i.icon.home:before{content:"\f015"}i.icon.horse:before{content:"\f6f0"}i.icon.horse.head:before{content:"\f7ab"}i.icon.hospital:before{content:"\f0f8"}i.icon.hospital.alternate:before{content:"\f47d"}i.icon.hospital.symbol:before{content:"\f47e"}i.icon.hospital.user:before{content:"\f80d"}i.icon.hot.tub:before{content:"\f593"}i.icon.hotdog:before{content:"\f80f"}i.icon.hotel:before{content:"\f594"}i.icon.hourglass:before{content:"\f254"}i.icon.hourglass.end:before{content:"\f253"}i.icon.hourglass.half:before{content:"\f252"}i.icon.hourglass.start:before{content:"\f251"}i.icon.house.damage:before{content:"\f6f1"}i.icon.house.user:before{content:"\f965"}i.icon.hryvnia:before{content:"\f6f2"}i.icon.i.cursor:before{content:"\f246"}i.icon.ice.cream:before{content:"\f810"}i.icon.icicles:before{content:"\f7ad"}i.icon.icons:before{content:"\f86d"}i.icon.id.badge:before{content:"\f2c1"}i.icon.id.card:before{content:"\f2c2"}i.icon.id.card.alternate:before{content:"\f47f"}i.icon.igloo:before{content:"\f7ae"}i.icon.image:before{content:"\f03e"}i.icon.images:before{content:"\f302"}i.icon.inbox:before{content:"\f01c"}i.icon.indent:before{content:"\f03c"}i.icon.industry:before{content:"\f275"}i.icon.infinity:before{content:"\f534"}i.icon.info:before{content:"\f129"}i.icon.info.circle:before{content:"\f05a"}i.icon.italic:before{content:"\f033"}i.icon.jedi:before{content:"\f669"}i.icon.joint:before{content:"\f595"}i.icon.journal.whills:before{content:"\f66a"}i.icon.kaaba:before{content:"\f66b"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.khanda:before{content:"\f66d"}i.icon.kiss:before{content:"\f596"}i.icon.kiss.beam:before{content:"\f597"}i.icon.kiss.wink.heart:before{content:"\f598"}i.icon.kiwi.bird:before{content:"\f535"}i.icon.landmark:before{content:"\f66f"}i.icon.language:before{content:"\f1ab"}i.icon.laptop:before{content:"\f109"}i.icon.laptop.code:before{content:"\f5fc"}i.icon.laptop.house:before{content:"\f966"}i.icon.laptop.medical:before{content:"\f812"}i.icon.laugh:before{content:"\f599"}i.icon.laugh.beam:before{content:"\f59a"}i.icon.laugh.squint:before{content:"\f59b"}i.icon.laugh.wink:before{content:"\f59c"}i.icon.layer.group:before{content:"\f5fd"}i.icon.leaf:before{content:"\f06c"}i.icon.lemon:before{content:"\f094"}i.icon.less.than:before{content:"\f536"}i.icon.less.than.equal:before{content:"\f537"}i.icon.level.down.alternate:before{content:"\f3be"}i.icon.level.up.alternate:before{content:"\f3bf"}i.icon.life.ring:before{content:"\f1cd"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.lira.sign:before{content:"\f195"}i.icon.list:before{content:"\f03a"}i.icon.list.alternate:before{content:"\f022"}i.icon.list.ol:before{content:"\f0cb"}i.icon.list.ul:before{content:"\f0ca"}i.icon.location.arrow:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.lock.open:before{content:"\f3c1"}i.icon.long.arrow.alternate.down:before{content:"\f309"}i.icon.long.arrow.alternate.left:before{content:"\f30a"}i.icon.long.arrow.alternate.right:before{content:"\f30b"}i.icon.long.arrow.alternate.up:before{content:"\f30c"}i.icon.low.vision:before{content:"\f2a8"}i.icon.luggage.cart:before{content:"\f59d"}i.icon.lungs:before{content:"\f604"}i.icon.lungs.virus:before{content:"\f967"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.mail.bulk:before{content:"\f674"}i.icon.male:before{content:"\f183"}i.icon.map:before{content:"\f279"}i.icon.map.marked:before{content:"\f59f"}i.icon.map.marked.alternate:before{content:"\f5a0"}i.icon.map.marker:before{content:"\f041"}i.icon.map.marker.alternate:before{content:"\f3c5"}i.icon.map.pin:before{content:"\f276"}i.icon.map.signs:before{content:"\f277"}i.icon.marker:before{content:"\f5a1"}i.icon.mars:before{content:"\f222"}i.icon.mars.double:before{content:"\f227"}i.icon.mars.stroke:before{content:"\f229"}i.icon.mars.stroke.horizontal:before{content:"\f22b"}i.icon.mars.stroke.vertical:before{content:"\f22a"}i.icon.mask:before{content:"\f6fa"}i.icon.medal:before{content:"\f5a2"}i.icon.medkit:before{content:"\f0fa"}i.icon.meh:before{content:"\f11a"}i.icon.meh.blank:before{content:"\f5a4"}i.icon.meh.rolling.eyes:before{content:"\f5a5"}i.icon.memory:before{content:"\f538"}i.icon.menorah:before{content:"\f676"}i.icon.mercury:before{content:"\f223"}i.icon.meteor:before{content:"\f753"}i.icon.microchip:before{content:"\f2db"}i.icon.microphone:before{content:"\f130"}i.icon.microphone.alternate:before{content:"\f3c9"}i.icon.microphone.alternate.slash:before{content:"\f539"}i.icon.microphone.slash:before{content:"\f131"}i.icon.microscope:before{content:"\f610"}i.icon.minus:before{content:"\f068"}i.icon.minus.circle:before{content:"\f056"}i.icon.minus.square:before{content:"\f146"}i.icon.mitten:before{content:"\f7b5"}i.icon.mobile:before{content:"\f10b"}i.icon.mobile.alternate:before{content:"\f3cd"}i.icon.money.bill:before{content:"\f0d6"}i.icon.money.bill.alternate:before{content:"\f3d1"}i.icon.money.bill.wave:before{content:"\f53a"}i.icon.money.bill.wave.alternate:before{content:"\f53b"}i.icon.money.check:before{content:"\f53c"}i.icon.money.check.alternate:before{content:"\f53d"}i.icon.monument:before{content:"\f5a6"}i.icon.moon:before{content:"\f186"}i.icon.mortar.pestle:before{content:"\f5a7"}i.icon.mosque:before{content:"\f678"}i.icon.motorcycle:before{content:"\f21c"}i.icon.mountain:before{content:"\f6fc"}i.icon.mouse:before{content:"\f8cc"}i.icon.mouse.pointer:before{content:"\f245"}i.icon.mug.hot:before{content:"\f7b6"}i.icon.music:before{content:"\f001"}i.icon.network.wired:before{content:"\f6ff"}i.icon.neuter:before{content:"\f22c"}i.icon.newspaper:before{content:"\f1ea"}i.icon.not.equal:before{content:"\f53e"}i.icon.notes.medical:before{content:"\f481"}i.icon.object.group:before{content:"\f247"}i.icon.object.ungroup:before{content:"\f248"}i.icon.oil.can:before{content:"\f613"}i.icon.om:before{content:"\f679"}i.icon.otter:before{content:"\f700"}i.icon.outdent:before{content:"\f03b"}i.icon.pager:before{content:"\f815"}i.icon.paint.brush:before{content:"\f1fc"}i.icon.paint.roller:before{content:"\f5aa"}i.icon.palette:before{content:"\f53f"}i.icon.pallet:before{content:"\f482"}i.icon.paper.plane:before{content:"\f1d8"}i.icon.paperclip:before{content:"\f0c6"}i.icon.parachute.box:before{content:"\f4cd"}i.icon.paragraph:before{content:"\f1dd"}i.icon.parking:before{content:"\f540"}i.icon.passport:before{content:"\f5ab"}i.icon.pastafarianism:before{content:"\f67b"}i.icon.paste:before{content:"\f0ea"}i.icon.pause:before{content:"\f04c"}i.icon.pause.circle:before{content:"\f28b"}i.icon.paw:before{content:"\f1b0"}i.icon.peace:before{content:"\f67c"}i.icon.pen:before{content:"\f304"}i.icon.pen.alternate:before{content:"\f305"}i.icon.pen.fancy:before{content:"\f5ac"}i.icon.pen.nib:before{content:"\f5ad"}i.icon.pen.square:before{content:"\f14b"}i.icon.pencil.alternate:before{content:"\f303"}i.icon.pencil.ruler:before{content:"\f5ae"}i.icon.people.arrows:before{content:"\f968"}i.icon.people.carry:before{content:"\f4ce"}i.icon.pepper.hot:before{content:"\f816"}i.icon.percent:before{content:"\f295"}i.icon.percentage:before{content:"\f541"}i.icon.person.booth:before{content:"\f756"}i.icon.phone:before{content:"\f095"}i.icon.phone.alternate:before{content:"\f879"}i.icon.phone.slash:before{content:"\f3dd"}i.icon.phone.square:before{content:"\f098"}i.icon.phone.square.alternate:before{content:"\f87b"}i.icon.phone.volume:before{content:"\f2a0"}i.icon.photo.video:before{content:"\f87c"}i.icon.piggy.bank:before{content:"\f4d3"}i.icon.pills:before{content:"\f484"}i.icon.pizza.slice:before{content:"\f818"}i.icon.place.of.worship:before{content:"\f67f"}i.icon.plane:before{content:"\f072"}i.icon.plane.arrival:before{content:"\f5af"}i.icon.plane.departure:before{content:"\f5b0"}i.icon.plane.slash:before{content:"\f969"}i.icon.play:before{content:"\f04b"}i.icon.play.circle:before{content:"\f144"}i.icon.plug:before{content:"\f1e6"}i.icon.plus:before{content:"\f067"}i.icon.plus.circle:before{content:"\f055"}i.icon.plus.square:before{content:"\f0fe"}i.icon.podcast:before{content:"\f2ce"}i.icon.poll:before{content:"\f681"}i.icon.poll.horizontal:before{content:"\f682"}i.icon.poo:before{content:"\f2fe"}i.icon.poo.storm:before{content:"\f75a"}i.icon.poop:before{content:"\f619"}i.icon.portrait:before{content:"\f3e0"}i.icon.pound.sign:before{content:"\f154"}i.icon.power.off:before{content:"\f011"}i.icon.pray:before{content:"\f683"}i.icon.praying.hands:before{content:"\f684"}i.icon.prescription:before{content:"\f5b1"}i.icon.prescription.bottle:before{content:"\f485"}i.icon.prescription.bottle.alternate:before{content:"\f486"}i.icon.print:before{content:"\f02f"}i.icon.procedures:before{content:"\f487"}i.icon.project.diagram:before{content:"\f542"}i.icon.pump.medical:before{content:"\f96a"}i.icon.pump.soap:before{content:"\f96b"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.qrcode:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.question.circle:before{content:"\f059"}i.icon.quidditch:before{content:"\f458"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.quran:before{content:"\f687"}i.icon.radiation:before{content:"\f7b9"}i.icon.radiation.alternate:before{content:"\f7ba"}i.icon.rainbow:before{content:"\f75b"}i.icon.random:before{content:"\f074"}i.icon.receipt:before{content:"\f543"}i.icon.record.vinyl:before{content:"\f8d9"}i.icon.recycle:before{content:"\f1b8"}i.icon.redo:before{content:"\f01e"}i.icon.redo.alternate:before{content:"\f2f9"}i.icon.registered:before{content:"\f25d"}i.icon.remove.format:before{content:"\f87d"}i.icon.reply:before{content:"\f3e5"}i.icon.reply.all:before{content:"\f122"}i.icon.republican:before{content:"\f75e"}i.icon.restroom:before{content:"\f7bd"}i.icon.retweet:before{content:"\f079"}i.icon.ribbon:before{content:"\f4d6"}i.icon.ring:before{content:"\f70b"}i.icon.road:before{content:"\f018"}i.icon.robot:before{content:"\f544"}i.icon.rocket:before{content:"\f135"}i.icon.route:before{content:"\f4d7"}i.icon.rss:before{content:"\f09e"}i.icon.rss.square:before{content:"\f143"}i.icon.ruble.sign:before{content:"\f158"}i.icon.ruler:before{content:"\f545"}i.icon.ruler.combined:before{content:"\f546"}i.icon.ruler.horizontal:before{content:"\f547"}i.icon.ruler.vertical:before{content:"\f548"}i.icon.running:before{content:"\f70c"}i.icon.rupee.sign:before{content:"\f156"}i.icon.sad.cry:before{content:"\f5b3"}i.icon.sad.tear:before{content:"\f5b4"}i.icon.satellite:before{content:"\f7bf"}i.icon.satellite.dish:before{content:"\f7c0"}i.icon.save:before{content:"\f0c7"}i.icon.school:before{content:"\f549"}i.icon.screwdriver:before{content:"\f54a"}i.icon.scroll:before{content:"\f70e"}i.icon.sd.card:before{content:"\f7c2"}i.icon.search:before{content:"\f002"}i.icon.search.dollar:before{content:"\f688"}i.icon.search.location:before{content:"\f689"}i.icon.search.minus:before{content:"\f010"}i.icon.search.plus:before{content:"\f00e"}i.icon.seedling:before{content:"\f4d8"}i.icon.server:before{content:"\f233"}i.icon.shapes:before{content:"\f61f"}i.icon.share:before{content:"\f064"}i.icon.share.alternate:before{content:"\f1e0"}i.icon.share.alternate.square:before{content:"\f1e1"}i.icon.share.square:before{content:"\f14d"}i.icon.shekel.sign:before{content:"\f20b"}i.icon.shield.alternate:before{content:"\f3ed"}i.icon.shield.virus:before{content:"\f96c"}i.icon.ship:before{content:"\f21a"}i.icon.shipping.fast:before{content:"\f48b"}i.icon.shoe.prints:before{content:"\f54b"}i.icon.shopping.bag:before{content:"\f290"}i.icon.shopping.basket:before{content:"\f291"}i.icon.shopping.cart:before{content:"\f07a"}i.icon.shower:before{content:"\f2cc"}i.icon.shuttle.van:before{content:"\f5b6"}i.icon.sign:before{content:"\f4d9"}i.icon.sign.in.alternate:before{content:"\f2f6"}i.icon.sign.language:before{content:"\f2a7"}i.icon.sign.out.alternate:before{content:"\f2f5"}i.icon.signal:before{content:"\f012"}i.icon.signature:before{content:"\f5b7"}i.icon.sim.card:before{content:"\f7c4"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skating:before{content:"\f7c5"}i.icon.skiing:before{content:"\f7c9"}i.icon.skiing.nordic:before{content:"\f7ca"}i.icon.skull:before{content:"\f54c"}i.icon.skull.crossbones:before{content:"\f714"}i.icon.slash:before{content:"\f715"}i.icon.sleigh:before{content:"\f7cc"}i.icon.sliders.horizontal:before{content:"\f1de"}i.icon.smile:before{content:"\f118"}i.icon.smile.beam:before{content:"\f5b8"}i.icon.smile.wink:before{content:"\f4da"}i.icon.smog:before{content:"\f75f"}i.icon.smoking:before{content:"\f48d"}i.icon.smoking.ban:before{content:"\f54d"}i.icon.sms:before{content:"\f7cd"}i.icon.snowboarding:before{content:"\f7ce"}i.icon.snowflake:before{content:"\f2dc"}i.icon.snowman:before{content:"\f7d0"}i.icon.snowplow:before{content:"\f7d2"}i.icon.soap:before{content:"\f96e"}i.icon.socks:before{content:"\f696"}i.icon.solar.panel:before{content:"\f5ba"}i.icon.sort:before{content:"\f0dc"}i.icon.sort.alphabet.down:before{content:"\f15d"}i.icon.sort.alphabet.down.alternate:before{content:"\f881"}i.icon.sort.alphabet.up:before{content:"\f15e"}i.icon.sort.alphabet.up.alternate:before{content:"\f882"}i.icon.sort.amount.down:before{content:"\f160"}i.icon.sort.amount.down.alternate:before{content:"\f884"}i.icon.sort.amount.up:before{content:"\f161"}i.icon.sort.amount.up.alternate:before{content:"\f885"}i.icon.sort.down:before{content:"\f0dd"}i.icon.sort.numeric.down:before{content:"\f162"}i.icon.sort.numeric.down.alternate:before{content:"\f886"}i.icon.sort.numeric.up:before{content:"\f163"}i.icon.sort.numeric.up.alternate:before{content:"\f887"}i.icon.sort.up:before{content:"\f0de"}i.icon.spa:before{content:"\f5bb"}i.icon.space.shuttle:before{content:"\f197"}i.icon.spell.check:before{content:"\f891"}i.icon.spider:before{content:"\f717"}i.icon.spinner:before{content:"\f110"}i.icon.splotch:before{content:"\f5bc"}i.icon.spray.can:before{content:"\f5bd"}i.icon.square:before{content:"\f0c8"}i.icon.square.full:before{content:"\f45c"}i.icon.square.root.alternate:before{content:"\f698"}i.icon.stamp:before{content:"\f5bf"}i.icon.star:before{content:"\f005"}i.icon.star.and.crescent:before{content:"\f699"}i.icon.star.half:before{content:"\f089"}i.icon.star.half.alternate:before{content:"\f5c0"}i.icon.star.of.david:before{content:"\f69a"}i.icon.star.of.life:before{content:"\f621"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.sticky.note:before{content:"\f249"}i.icon.stop:before{content:"\f04d"}i.icon.stop.circle:before{content:"\f28d"}i.icon.stopwatch:before{content:"\f2f2"}i.icon.stopwatch.twenty:before{content:"\f96f"}i.icon.store:before{content:"\f54e"}i.icon.store.alternate:before{content:"\f54f"}i.icon.store.alternate.slash:before{content:"\f970"}i.icon.store.slash:before{content:"\f971"}i.icon.stream:before{content:"\f550"}i.icon.street.view:before{content:"\f21d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.stroopwafel:before{content:"\f551"}i.icon.subscript:before{content:"\f12c"}i.icon.subway:before{content:"\f239"}i.icon.suitcase:before{content:"\f0f2"}i.icon.suitcase.rolling:before{content:"\f5c1"}i.icon.sun:before{content:"\f185"}i.icon.superscript:before{content:"\f12b"}i.icon.surprise:before{content:"\f5c2"}i.icon.swatchbook:before{content:"\f5c3"}i.icon.swimmer:before{content:"\f5c4"}i.icon.swimming.pool:before{content:"\f5c5"}i.icon.synagogue:before{content:"\f69b"}i.icon.sync:before{content:"\f021"}i.icon.sync.alternate:before{content:"\f2f1"}i.icon.syringe:before{content:"\f48e"}i.icon.table:before{content:"\f0ce"}i.icon.table.tennis:before{content:"\f45d"}i.icon.tablet:before{content:"\f10a"}i.icon.tablet.alternate:before{content:"\f3fa"}i.icon.tablets:before{content:"\f490"}i.icon.tachometer.alternate:before{content:"\f3fd"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tape:before{content:"\f4db"}i.icon.tasks:before{content:"\f0ae"}i.icon.taxi:before{content:"\f1ba"}i.icon.teeth:before{content:"\f62e"}i.icon.teeth.open:before{content:"\f62f"}i.icon.temperature.high:before{content:"\f769"}i.icon.temperature.low:before{content:"\f76b"}i.icon.tenge:before{content:"\f7d7"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.th:before{content:"\f00a"}i.icon.th.large:before{content:"\f009"}i.icon.th.list:before{content:"\f00b"}i.icon.theater.masks:before{content:"\f630"}i.icon.thermometer:before{content:"\f491"}i.icon.thermometer.empty:before{content:"\f2cb"}i.icon.thermometer.full:before{content:"\f2c7"}i.icon.thermometer.half:before{content:"\f2c9"}i.icon.thermometer.quarter:before{content:"\f2ca"}i.icon.thermometer.three.quarters:before{content:"\f2c8"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up:before{content:"\f164"}i.icon.thumbtack:before{content:"\f08d"}i.icon.ticket.alternate:before{content:"\f3ff"}i.icon.times:before{content:"\f00d"}i.icon.times.circle:before{content:"\f057"}i.icon.tint:before{content:"\f043"}i.icon.tint.slash:before{content:"\f5c7"}i.icon.tired:before{content:"\f5c8"}i.icon.toggle.off:before{content:"\f204"}i.icon.toggle.on:before{content:"\f205"}i.icon.toilet:before{content:"\f7d8"}i.icon.toilet.paper:before{content:"\f71e"}i.icon.toilet.paper.slash:before{content:"\f972"}i.icon.toolbox:before{content:"\f552"}i.icon.tools:before{content:"\f7d9"}i.icon.tooth:before{content:"\f5c9"}i.icon.torah:before{content:"\f6a0"}i.icon.torii.gate:before{content:"\f6a1"}i.icon.tractor:before{content:"\f722"}i.icon.trademark:before{content:"\f25c"}i.icon.traffic.light:before{content:"\f637"}i.icon.trailer:before{content:"\f941"}i.icon.train:before{content:"\f238"}i.icon.tram:before{content:"\f7da"}i.icon.transgender:before{content:"\f224"}i.icon.transgender.alternate:before{content:"\f225"}i.icon.trash:before{content:"\f1f8"}i.icon.trash.alternate:before{content:"\f2ed"}i.icon.trash.restore:before{content:"\f829"}i.icon.trash.restore.alternate:before{content:"\f82a"}i.icon.tree:before{content:"\f1bb"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.truck.monster:before{content:"\f63b"}i.icon.truck.moving:before{content:"\f4df"}i.icon.truck.packing:before{content:"\f4de"}i.icon.truck.pickup:before{content:"\f63c"}i.icon.tshirt:before{content:"\f553"}i.icon.tty:before{content:"\f1e4"}i.icon.tv:before{content:"\f26c"}i.icon.umbrella:before{content:"\f0e9"}i.icon.umbrella.beach:before{content:"\f5ca"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.undo.alternate:before{content:"\f2ea"}i.icon.universal.access:before{content:"\f29a"}i.icon.university:before{content:"\f19c"}i.icon.unlink:before{content:"\f127"}i.icon.unlock:before{content:"\f09c"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.upload:before{content:"\f093"}i.icon.user:before{content:"\f007"}i.icon.user.alternate:before{content:"\f406"}i.icon.user.alternate.slash:before{content:"\f4fa"}i.icon.user.astronaut:before{content:"\f4fb"}i.icon.user.check:before{content:"\f4fc"}i.icon.user.circle:before{content:"\f2bd"}i.icon.user.clock:before{content:"\f4fd"}i.icon.user.cog:before{content:"\f4fe"}i.icon.user.edit:before{content:"\f4ff"}i.icon.user.friends:before{content:"\f500"}i.icon.user.graduate:before{content:"\f501"}i.icon.user.injured:before{content:"\f728"}i.icon.user.lock:before{content:"\f502"}i.icon.user.md:before{content:"\f0f0"}i.icon.user.minus:before{content:"\f503"}i.icon.user.ninja:before{content:"\f504"}i.icon.user.nurse:before{content:"\f82f"}i.icon.user.plus:before{content:"\f234"}i.icon.user.secret:before{content:"\f21b"}i.icon.user.shield:before{content:"\f505"}i.icon.user.slash:before{content:"\f506"}i.icon.user.tag:before{content:"\f507"}i.icon.user.tie:before{content:"\f508"}i.icon.user.times:before{content:"\f235"}i.icon.users:before{content:"\f0c0"}i.icon.users.cog:before{content:"\f509"}i.icon.utensil.spoon:before{content:"\f2e5"}i.icon.utensils:before{content:"\f2e7"}i.icon.vector.square:before{content:"\f5cb"}i.icon.venus:before{content:"\f221"}i.icon.venus.double:before{content:"\f226"}i.icon.venus.mars:before{content:"\f228"}i.icon.vial:before{content:"\f492"}i.icon.vials:before{content:"\f493"}i.icon.video:before{content:"\f03d"}i.icon.video.slash:before{content:"\f4e2"}i.icon.vihara:before{content:"\f6a7"}i.icon.virus:before{content:"\f974"}i.icon.virus.slash:before{content:"\f975"}i.icon.viruses:before{content:"\f976"}i.icon.voicemail:before{content:"\f897"}i.icon.volleyball.ball:before{content:"\f45f"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.mute:before{content:"\f6a9"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.vote.yea:before{content:"\f772"}i.icon.vr.cardboard:before{content:"\f729"}i.icon.walking:before{content:"\f554"}i.icon.wallet:before{content:"\f555"}i.icon.warehouse:before{content:"\f494"}i.icon.water:before{content:"\f773"}i.icon.wave.square:before{content:"\f83e"}i.icon.weight:before{content:"\f496"}i.icon.weight.hanging:before{content:"\f5cd"}i.icon.wheelchair:before{content:"\f193"}i.icon.wifi:before{content:"\f1eb"}i.icon.wind:before{content:"\f72e"}i.icon.window.close:before{content:"\f410"}i.icon.window.maximize:before{content:"\f2d0"}i.icon.window.minimize:before{content:"\f2d1"}i.icon.window.restore:before{content:"\f2d2"}i.icon.wine.bottle:before{content:"\f72f"}i.icon.wine.glass:before{content:"\f4e3"}i.icon.wine.glass.alternate:before{content:"\f5ce"}i.icon.won.sign:before{content:"\f159"}i.icon.wrench:before{content:"\f0ad"}i.icon.x.ray:before{content:"\f497"}i.icon.yen.sign:before{content:"\f157"}i.icon.yin.yang:before{content:"\f6ad"}i.icon.add:before{content:"\f067"}i.icon.add.circle:before{content:"\f055"}i.icon.add.square:before{content:"\f0fe"}i.icon.add.to.calendar:before{content:"\f271"}i.icon.add.to.cart:before{content:"\f217"}i.icon.add.user:before{content:"\f234"}i.icon.alarm:before{content:"\f0f3"}i.icon.alarm.mute:before{content:"\f1f6"}i.icon.ald:before,i.icon.als:before{content:"\f2a2"}i.icon.announcement:before{content:"\f0a1"}i.icon.area.chart:before,i.icon.area.graph:before{content:"\f1fe"}i.icon.arrow.down.cart:before{content:"\f218"}i.icon.asexual:before{content:"\f22d"}i.icon.asl.interpreting:before,i.icon.asl:before{content:"\f2a3"}i.icon.assistive.listening.devices:before{content:"\f2a2"}i.icon.attach:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.balance:before{content:"\f24e"}i.icon.bar:before{content:"\f0fc"}i.icon.bathtub:before{content:"\f2cd"}i.icon.battery.four:before{content:"\f240"}i.icon.battery.high:before{content:"\f241"}i.icon.battery.low:before{content:"\f243"}i.icon.battery.medium:before{content:"\f242"}i.icon.battery.one:before{content:"\f243"}i.icon.battery.three:before{content:"\f241"}i.icon.battery.two:before{content:"\f242"}i.icon.battery.zero:before{content:"\f244"}i.icon.birthday:before{content:"\f1fd"}i.icon.block.layout:before{content:"\f009"}i.icon.broken.chain:before{content:"\f127"}i.icon.browser:before{content:"\f022"}i.icon.call:before{content:"\f095"}i.icon.call.square:before{content:"\f098"}i.icon.cancel:before{content:"\f00d"}i.icon.cart:before{content:"\f07a"}i.icon.cc:before{content:"\f20a"}i.icon.chain:before{content:"\f0c1"}i.icon.chat:before{content:"\f075"}i.icon.checked.calendar:before{content:"\f274"}i.icon.checkmark:before{content:"\f00c"}i.icon.checkmark.box:before{content:"\f14a"}i.icon.chess.rock:before{content:"\f447"}i.icon.circle.notched:before{content:"\f1ce"}i.icon.circle.thin:before{content:"\f111"}i.icon.close:before{content:"\f00d"}i.icon.cloud.download:before{content:"\f381"}i.icon.cloud.upload:before{content:"\f382"}i.icon.cny:before{content:"\f157"}i.icon.cocktail:before{content:"\f000"}i.icon.commenting:before{content:"\f27a"}i.icon.compose:before{content:"\f303"}i.icon.computer:before{content:"\f108"}i.icon.configure:before{content:"\f0ad"}i.icon.content:before{content:"\f0c9"}i.icon.conversation:before{content:"\f086"}i.icon.credit.card.alternative:before{content:"\f09d"}i.icon.currency:before{content:"\f3d1"}i.icon.dashboard:before{content:"\f3fd"}i.icon.deafness:before{content:"\f2a4"}i.icon.delete:before{content:"\f00d"}i.icon.delete.calendar:before{content:"\f273"}i.icon.detective:before{content:"\f21b"}i.icon.diamond:before{content:"\f3a5"}i.icon.discussions:before{content:"\f086"}i.icon.disk:before{content:"\f0a0"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.dont:before{content:"\f05e"}i.icon.drivers.license:before{content:"\f2c2"}i.icon.dropdown:before{content:"\f0d7"}i.icon.emergency:before{content:"\f0f9"}i.icon.erase:before{content:"\f12d"}i.icon.eur:before,i.icon.euro:before{content:"\f153"}i.icon.exchange:before{content:"\f362"}i.icon.external:before{content:"\f35d"}i.icon.external.share:before{content:"\f14d"}i.icon.external.square:before{content:"\f360"}i.icon.eyedropper:before{content:"\f1fb"}i.icon.factory:before{content:"\f275"}i.icon.favorite:before{content:"\f005"}i.icon.feed:before{content:"\f09e"}i.icon.female.homosexual:before{content:"\f226"}i.icon.file.text:before{content:"\f15c"}i.icon.find:before{content:"\f1e5"}i.icon.first.aid:before{content:"\f0fa"}i.icon.food:before{content:"\f2e7"}i.icon.fork:before{content:"\f126"}i.icon.game:before{content:"\f11b"}i.icon.gay:before{content:"\f227"}i.icon.gbp:before{content:"\f154"}i.icon.grab:before{content:"\f255"}i.icon.graduation:before{content:"\f19d"}i.icon.grid.layout:before{content:"\f00a"}i.icon.group:before{content:"\f0c0"}i.icon.h:before{content:"\f0fd"}i.icon.hamburger:before{content:"\f0c9"}i.icon.hand.victory:before{content:"\f25b"}i.icon.handicap:before{content:"\f193"}i.icon.hard.of.hearing:before{content:"\f2a4"}i.icon.header:before{content:"\f1dc"}i.icon.heart.empty:before{content:"\f004"}i.icon.help:before{content:"\f128"}i.icon.help.circle:before{content:"\f059"}i.icon.heterosexual:before{content:"\f228"}i.icon.hide:before{content:"\f070"}i.icon.hotel:before{content:"\f236"}i.icon.hourglass.four:before,i.icon.hourglass.full:before{content:"\f254"}i.icon.hourglass.one:before{content:"\f251"}i.icon.hourglass.three:before{content:"\f253"}i.icon.hourglass.two:before{content:"\f252"}i.icon.hourglass.zero:before{content:"\f253"}i.icon.idea:before{content:"\f0eb"}i.icon.ils:before{content:"\f20b"}i.icon.in.cart:before{content:"\f218"}i.icon.inr:before{content:"\f156"}i.icon.intergender:before,i.icon.intersex:before{content:"\f224"}i.icon.jpy:before{content:"\f157"}i.icon.krw:before{content:"\f159"}i.icon.lab:before{content:"\f0c3"}i.icon.law:before{content:"\f24e"}i.icon.legal:before{content:"\f0e3"}i.icon.lesbian:before{content:"\f226"}i.icon.level.down:before{content:"\f3be"}i.icon.level.up:before{content:"\f3bf"}i.icon.lightning:before{content:"\f0e7"}i.icon.like:before{content:"\f004"}i.icon.line.graph:before,i.icon.linegraph:before{content:"\f201"}i.icon.linkify:before{content:"\f0c1"}i.icon.lira:before{content:"\f195"}i.icon.list.layout:before{content:"\f00b"}i.icon.log.out:before{content:"\f2f5"}i.icon.magnify:before{content:"\f00e"}i.icon.mail:before{content:"\f0e0"}i.icon.mail.forward:before{content:"\f064"}i.icon.mail.square:before{content:"\f199"}i.icon.male.homosexual:before{content:"\f227"}i.icon.man:before{content:"\f222"}i.icon.marker:before{content:"\f041"}i.icon.mars.alternate:before{content:"\f229"}i.icon.mars.horizontal:before{content:"\f22b"}i.icon.mars.vertical:before{content:"\f22a"}i.icon.meanpath:before{content:"\f0c8"}i.icon.military:before{content:"\f0fb"}i.icon.money:before{content:"\f3d1"}i.icon.move:before{content:"\f0b2"}i.icon.mute:before{content:"\f131"}i.icon.non.binary.transgender:before{content:"\f223"}i.icon.numbered.list:before{content:"\f0cb"}i.icon.options:before{content:"\f1de"}i.icon.ordered.list:before{content:"\f0cb"}i.icon.other.gender:before{content:"\f229"}i.icon.other.gender.horizontal:before{content:"\f22b"}i.icon.other.gender.vertical:before{content:"\f22a"}i.icon.payment:before{content:"\f09d"}i.icon.pencil:before{content:"\f303"}i.icon.pencil.square:before{content:"\f14b"}i.icon.photo:before{content:"\f030"}i.icon.picture:before{content:"\f03e"}i.icon.pie.chart:before,i.icon.pie.graph:before{content:"\f200"}i.icon.pin:before{content:"\f08d"}i.icon.plus.cart:before{content:"\f217"}i.icon.point:before{content:"\f041"}i.icon.pointing.down:before{content:"\f0a7"}i.icon.pointing.left:before{content:"\f0a5"}i.icon.pointing.right:before{content:"\f0a4"}i.icon.pointing.up:before{content:"\f0a6"}i.icon.pound:before{content:"\f154"}i.icon.power:before{content:"\f011"}i.icon.power.cord:before{content:"\f1e6"}i.icon.privacy:before{content:"\f084"}i.icon.protect:before{content:"\f023"}i.icon.puzzle:before{content:"\f12e"}i.icon.r.circle:before{content:"\f25d"}i.icon.radio:before{content:"\f192"}i.icon.rain:before{content:"\f0e9"}i.icon.record:before{content:"\f03d"}i.icon.refresh:before{content:"\f021"}i.icon.remove:before{content:"\f00d"}i.icon.remove.bookmark:before{content:"\f02e"}i.icon.remove.circle:before{content:"\f057"}i.icon.remove.from.calendar:before{content:"\f272"}i.icon.remove.user:before{content:"\f235"}i.icon.repeat:before{content:"\f01e"}i.icon.resize.horizontal:before{content:"\f337"}i.icon.resize.vertical:before{content:"\f338"}i.icon.rmb:before{content:"\f157"}i.icon.rouble:before,i.icon.rub:before,i.icon.ruble:before{content:"\f158"}i.icon.rupee:before{content:"\f156"}i.icon.s15:before{content:"\f2cd"}i.icon.selected.radio:before{content:"\f192"}i.icon.send:before{content:"\f1d8"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.shekel:before,i.icon.sheqel:before{content:"\f20b"}i.icon.shield:before{content:"\f3ed"}i.icon.shipping:before{content:"\f0d1"}i.icon.shop:before{content:"\f07a"}i.icon.shuffle:before{content:"\f074"}i.icon.shutdown:before{content:"\f011"}i.icon.sidebar:before{content:"\f0c9"}i.icon.sign.in:before{content:"\f2f6"}i.icon.sign.out:before{content:"\f2f5"}i.icon.signing:before{content:"\f2a7"}i.icon.signup:before{content:"\f044"}i.icon.sliders:before{content:"\f1de"}i.icon.soccer:before{content:"\f1e3"}i.icon.sort.alphabet.ascending:before{content:"\f15d"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.content.ascending:before{content:"\f160"}i.icon.sort.content.descending:before{content:"\f161"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.numeric.ascending:before{content:"\f162"}i.icon.sort.numeric.descending:before{content:"\f163"}i.icon.sound:before{content:"\f025"}i.icon.spoon:before{content:"\f2e5"}i.icon.spy:before{content:"\f21b"}i.icon.star.empty:before{content:"\f005"}i.icon.star.half.empty:before,i.icon.star.half.full:before{content:"\f089"}i.icon.student:before{content:"\f19d"}i.icon.talk:before{content:"\f27a"}i.icon.target:before{content:"\f140"}i.icon.teletype:before{content:"\f1e4"}i.icon.television:before{content:"\f26c"}i.icon.text.cursor:before{content:"\f246"}i.icon.text.telephone:before{content:"\f1e4"}i.icon.theme:before{content:"\f043"}i.icon.thermometer:before{content:"\f2c7"}i.icon.thumb.tack:before{content:"\f08d"}i.icon.ticket:before{content:"\f3ff"}i.icon.time:before{content:"\f017"}i.icon.times.rectangle:before{content:"\f410"}i.icon.tm:before{content:"\f25c"}i.icon.toggle.down:before{content:"\f150"}i.icon.toggle.left:before{content:"\f191"}i.icon.toggle.right:before{content:"\f152"}i.icon.toggle.up:before{content:"\f151"}i.icon.translate:before{content:"\f1ab"}i.icon.travel:before{content:"\f0b1"}i.icon.treatment:before{content:"\f0f1"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.try:before{content:"\f195"}i.icon.unhide:before{content:"\f06e"}i.icon.unlinkify:before{content:"\f127"}i.icon.unmute:before{content:"\f130"}i.icon.unordered.list:before{content:"\f0ca"}i.icon.usd:before{content:"\f155"}i.icon.user.cancel:before,i.icon.user.close:before,i.icon.user.delete:before{content:"\f235"}i.icon.user.doctor:before{content:"\f0f0"}i.icon.user.x:before{content:"\f235"}i.icon.vcard:before{content:"\f2bb"}i.icon.video.camera:before{content:"\f03d"}i.icon.video.play:before{content:"\f144"}i.icon.volume.control.phone:before{content:"\f2a0"}i.icon.wait:before{content:"\f017"}i.icon.warning:before{content:"\f12a"}i.icon.warning.circle:before{content:"\f06a"}i.icon.warning.sign:before{content:"\f071"}i.icon.wi.fi:before{content:"\f1eb"}i.icon.winner:before{content:"\f091"}i.icon.wizard:before{content:"\f0d0"}i.icon.woman:before{content:"\f221"}i.icon.won:before{content:"\f159"}i.icon.world:before{content:"\f0ac"}i.icon.write:before{content:"\f303"}i.icon.write.square:before{content:"\f14b"}i.icon.x:before{content:"\f00d"}i.icon.yen:before{content:"\f157"}i.icon.zip:before{content:"\f187"}i.icon.zoom.in:before,i.icon.zoom:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}@font-face{font-family:outline-icons;src:url(../fonts/outline-icons.eot);src:url(../fonts/outline-icons.eot?#iefix) format("embedded-opentype"),url(../fonts/outline-icons.woff2) format("woff2"),url(../fonts/outline-icons.woff) format("woff"),url(../fonts/outline-icons.ttf) format("truetype"),url(../images/outline-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.outline{font-family:outline-icons}i.icon.address.book.outline:before{content:"\f2b9"}i.icon.address.card.outline:before{content:"\f2bb"}i.icon.angry.outline:before{content:"\f556"}i.icon.arrow.alternate.circle.down.outline:before{content:"\f358"}i.icon.arrow.alternate.circle.left.outline:before{content:"\f359"}i.icon.arrow.alternate.circle.right.outline:before{content:"\f35a"}i.icon.arrow.alternate.circle.up.outline:before{content:"\f35b"}i.icon.bell.outline:before{content:"\f0f3"}i.icon.bell.slash.outline:before{content:"\f1f6"}i.icon.bookmark.outline:before{content:"\f02e"}i.icon.building.outline:before{content:"\f1ad"}i.icon.calendar.alternate.outline:before{content:"\f073"}i.icon.calendar.check.outline:before{content:"\f274"}i.icon.calendar.minus.outline:before{content:"\f272"}i.icon.calendar.outline:before{content:"\f133"}i.icon.calendar.plus.outline:before{content:"\f271"}i.icon.calendar.times.outline:before{content:"\f273"}i.icon.caret.square.down.outline:before{content:"\f150"}i.icon.caret.square.left.outline:before{content:"\f191"}i.icon.caret.square.right.outline:before{content:"\f152"}i.icon.caret.square.up.outline:before{content:"\f151"}i.icon.chart.bar.outline:before{content:"\f080"}i.icon.check.circle.outline:before{content:"\f058"}i.icon.check.square.outline:before{content:"\f14a"}i.icon.circle.outline:before{content:"\f111"}i.icon.clipboard.outline:before{content:"\f328"}i.icon.clock.outline:before{content:"\f017"}i.icon.clone.outline:before{content:"\f24d"}i.icon.closed.captioning.outline:before{content:"\f20a"}i.icon.comment.alternate.outline:before{content:"\f27a"}i.icon.comment.dots.outline:before{content:"\f4ad"}i.icon.comment.outline:before{content:"\f075"}i.icon.comments.outline:before{content:"\f086"}i.icon.compass.outline:before{content:"\f14e"}i.icon.copy.outline:before{content:"\f0c5"}i.icon.copyright.outline:before{content:"\f1f9"}i.icon.credit.card.outline:before{content:"\f09d"}i.icon.dizzy.outline:before{content:"\f567"}i.icon.dot.circle.outline:before{content:"\f192"}i.icon.edit.outline:before{content:"\f044"}i.icon.envelope.open.outline:before{content:"\f2b6"}i.icon.envelope.outline:before{content:"\f0e0"}i.icon.eye.outline:before{content:"\f06e"}i.icon.eye.slash.outline:before{content:"\f070"}i.icon.file.alternate.outline:before{content:"\f15c"}i.icon.file.archive.outline:before{content:"\f1c6"}i.icon.file.audio.outline:before{content:"\f1c7"}i.icon.file.code.outline:before{content:"\f1c9"}i.icon.file.excel.outline:before{content:"\f1c3"}i.icon.file.image.outline:before{content:"\f1c5"}i.icon.file.outline:before{content:"\f15b"}i.icon.file.pdf.outline:before{content:"\f1c1"}i.icon.file.powerpoint.outline:before{content:"\f1c4"}i.icon.file.video.outline:before{content:"\f1c8"}i.icon.file.word.outline:before{content:"\f1c2"}i.icon.flag.outline:before{content:"\f024"}i.icon.flushed.outline:before{content:"\f579"}i.icon.folder.open.outline:before{content:"\f07c"}i.icon.folder.outline:before{content:"\f07b"}i.icon.frown.open.outline:before{content:"\f57a"}i.icon.frown.outline:before{content:"\f119"}i.icon.futbol.outline:before{content:"\f1e3"}i.icon.gem.outline:before{content:"\f3a5"}i.icon.grimace.outline:before{content:"\f57f"}i.icon.grin.alternate.outline:before{content:"\f581"}i.icon.grin.beam.outline:before{content:"\f582"}i.icon.grin.beam.sweat.outline:before{content:"\f583"}i.icon.grin.hearts.outline:before{content:"\f584"}i.icon.grin.outline:before{content:"\f580"}i.icon.grin.squint.outline:before{content:"\f585"}i.icon.grin.squint.tears.outline:before{content:"\f586"}i.icon.grin.stars.outline:before{content:"\f587"}i.icon.grin.tears.outline:before{content:"\f588"}i.icon.grin.tongue.outline:before{content:"\f589"}i.icon.grin.tongue.squint.outline:before{content:"\f58a"}i.icon.grin.tongue.wink.outline:before{content:"\f58b"}i.icon.grin.wink.outline:before{content:"\f58c"}i.icon.hand.lizard.outline:before{content:"\f258"}i.icon.hand.paper.outline:before{content:"\f256"}i.icon.hand.peace.outline:before{content:"\f25b"}i.icon.hand.point.down.outline:before{content:"\f0a7"}i.icon.hand.point.left.outline:before{content:"\f0a5"}i.icon.hand.point.right.outline:before{content:"\f0a4"}i.icon.hand.point.up.outline:before{content:"\f0a6"}i.icon.hand.pointer.outline:before{content:"\f25a"}i.icon.hand.rock.outline:before{content:"\f255"}i.icon.hand.scissors.outline:before{content:"\f257"}i.icon.hand.spock.outline:before{content:"\f259"}i.icon.handshake.outline:before{content:"\f2b5"}i.icon.hdd.outline:before{content:"\f0a0"}i.icon.heart.outline:before{content:"\f004"}i.icon.hospital.outline:before{content:"\f0f8"}i.icon.hourglass.outline:before{content:"\f254"}i.icon.id.badge.outline:before{content:"\f2c1"}i.icon.id.card.outline:before{content:"\f2c2"}i.icon.image.outline:before{content:"\f03e"}i.icon.images.outline:before{content:"\f302"}i.icon.keyboard.outline:before{content:"\f11c"}i.icon.kiss.beam.outline:before{content:"\f597"}i.icon.kiss.outline:before{content:"\f596"}i.icon.kiss.wink.heart.outline:before{content:"\f598"}i.icon.laugh.beam.outline:before{content:"\f59a"}i.icon.laugh.outline:before{content:"\f599"}i.icon.laugh.squint.outline:before{content:"\f59b"}i.icon.laugh.wink.outline:before{content:"\f59c"}i.icon.lemon.outline:before{content:"\f094"}i.icon.life.ring.outline:before{content:"\f1cd"}i.icon.lightbulb.outline:before{content:"\f0eb"}i.icon.list.alternate.outline:before{content:"\f022"}i.icon.map.outline:before{content:"\f279"}i.icon.meh.blank.outline:before{content:"\f5a4"}i.icon.meh.outline:before{content:"\f11a"}i.icon.meh.rolling.eyes.outline:before{content:"\f5a5"}i.icon.minus.square.outline:before{content:"\f146"}i.icon.money.bill.alternate.outline:before{content:"\f3d1"}i.icon.moon.outline:before{content:"\f186"}i.icon.newspaper.outline:before{content:"\f1ea"}i.icon.object.group.outline:before{content:"\f247"}i.icon.object.ungroup.outline:before{content:"\f248"}i.icon.paper.plane.outline:before{content:"\f1d8"}i.icon.pause.circle.outline:before{content:"\f28b"}i.icon.play.circle.outline:before{content:"\f144"}i.icon.plus.square.outline:before{content:"\f0fe"}i.icon.question.circle.outline:before{content:"\f059"}i.icon.registered.outline:before{content:"\f25d"}i.icon.sad.cry.outline:before{content:"\f5b3"}i.icon.sad.tear.outline:before{content:"\f5b4"}i.icon.save.outline:before{content:"\f0c7"}i.icon.share.square.outline:before{content:"\f14d"}i.icon.smile.beam.outline:before{content:"\f5b8"}i.icon.smile.outline:before{content:"\f118"}i.icon.smile.wink.outline:before{content:"\f4da"}i.icon.snowflake.outline:before{content:"\f2dc"}i.icon.square.outline:before{content:"\f0c8"}i.icon.star.half.outline:before{content:"\f089"}i.icon.star.outline:before{content:"\f005"}i.icon.sticky.note.outline:before{content:"\f249"}i.icon.stop.circle.outline:before{content:"\f28d"}i.icon.sun.outline:before{content:"\f185"}i.icon.surprise.outline:before{content:"\f5c2"}i.icon.thumbs.down.outline:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f164"}i.icon.times.circle.outline:before{content:"\f057"}i.icon.tired.outline:before{content:"\f5c8"}i.icon.trash.alternate.outline:before{content:"\f2ed"}i.icon.user.circle.outline:before{content:"\f2bd"}i.icon.user.outline:before{content:"\f007"}i.icon.window.close.outline:before{content:"\f410"}i.icon.window.maximize.outline:before{content:"\f2d0"}i.icon.window.minimize.outline:before{content:"\f2d1"}i.icon.window.restore.outline:before{content:"\f2d2"}@font-face{font-family:brand-icons;src:url(../fonts/brand-icons.eot);src:url(../fonts/brand-icons.eot?#iefix) format("embedded-opentype"),url(../fonts/brand-icons.woff2) format("woff2"),url(../fonts/brand-icons.woff) format("woff"),url(../fonts/brand-icons.ttf) format("truetype"),url(../images/brand-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.\35 00px:before{content:"\f26e";font-family:brand-icons}i.icon.accessible:before{content:"\f368";font-family:brand-icons}i.icon.accusoft:before{content:"\f369";font-family:brand-icons}i.icon.acquisitions.incorporated:before{content:"\f6af";font-family:brand-icons}i.icon.adn:before{content:"\f170";font-family:brand-icons}i.icon.adobe:before{content:"\f778";font-family:brand-icons}i.icon.adversal:before{content:"\f36a";font-family:brand-icons}i.icon.affiliatetheme:before{content:"\f36b";font-family:brand-icons}i.icon.airbnb:before{content:"\f834";font-family:brand-icons}i.icon.algolia:before{content:"\f36c";font-family:brand-icons}i.icon.alipay:before{content:"\f642";font-family:brand-icons}i.icon.amazon:before{content:"\f270";font-family:brand-icons}i.icon.amazon.pay:before{content:"\f42c";font-family:brand-icons}i.icon.amilia:before{content:"\f36d";font-family:brand-icons}i.icon.android:before{content:"\f17b";font-family:brand-icons}i.icon.angellist:before{content:"\f209";font-family:brand-icons}i.icon.angrycreative:before{content:"\f36e";font-family:brand-icons}i.icon.angular:before{content:"\f420";font-family:brand-icons}i.icon.app.store:before{content:"\f36f";font-family:brand-icons}i.icon.app.store.ios:before{content:"\f370";font-family:brand-icons}i.icon.apper:before{content:"\f371";font-family:brand-icons}i.icon.apple:before{content:"\f179";font-family:brand-icons}i.icon.apple.pay:before{content:"\f415";font-family:brand-icons}i.icon.artstation:before{content:"\f77a";font-family:brand-icons}i.icon.asymmetrik:before{content:"\f372";font-family:brand-icons}i.icon.atlassian:before{content:"\f77b";font-family:brand-icons}i.icon.audible:before{content:"\f373";font-family:brand-icons}i.icon.autoprefixer:before{content:"\f41c";font-family:brand-icons}i.icon.avianex:before{content:"\f374";font-family:brand-icons}i.icon.aviato:before{content:"\f421";font-family:brand-icons}i.icon.aws:before{content:"\f375";font-family:brand-icons}i.icon.bandcamp:before{content:"\f2d5";font-family:brand-icons}i.icon.battle.net:before{content:"\f835";font-family:brand-icons}i.icon.behance:before{content:"\f1b4";font-family:brand-icons}i.icon.behance.square:before{content:"\f1b5";font-family:brand-icons}i.icon.bimobject:before{content:"\f378";font-family:brand-icons}i.icon.bitbucket:before{content:"\f171";font-family:brand-icons}i.icon.bitcoin:before{content:"\f379";font-family:brand-icons}i.icon.bity:before{content:"\f37a";font-family:brand-icons}i.icon.black.tie:before{content:"\f27e";font-family:brand-icons}i.icon.blackberry:before{content:"\f37b";font-family:brand-icons}i.icon.blogger:before{content:"\f37c";font-family:brand-icons}i.icon.blogger.b:before{content:"\f37d";font-family:brand-icons}i.icon.bluetooth:before{content:"\f293";font-family:brand-icons}i.icon.bluetooth.b:before{content:"\f294";font-family:brand-icons}i.icon.bootstrap:before{content:"\f836";font-family:brand-icons}i.icon.btc:before{content:"\f15a";font-family:brand-icons}i.icon.buffer:before{content:"\f837";font-family:brand-icons}i.icon.buromobelexperte:before{content:"\f37f";font-family:brand-icons}i.icon.buy.n.large:before{content:"\f8a6";font-family:brand-icons}i.icon.buysellads:before{content:"\f20d";font-family:brand-icons}i.icon.canadian.maple.leaf:before{content:"\f785";font-family:brand-icons}i.icon.cc.amazon.pay:before{content:"\f42d";font-family:brand-icons}i.icon.cc.amex:before{content:"\f1f3";font-family:brand-icons}i.icon.cc.apple.pay:before{content:"\f416";font-family:brand-icons}i.icon.cc.diners.club:before{content:"\f24c";font-family:brand-icons}i.icon.cc.discover:before{content:"\f1f2";font-family:brand-icons}i.icon.cc.jcb:before{content:"\f24b";font-family:brand-icons}i.icon.cc.mastercard:before{content:"\f1f1";font-family:brand-icons}i.icon.cc.paypal:before{content:"\f1f4";font-family:brand-icons}i.icon.cc.stripe:before{content:"\f1f5";font-family:brand-icons}i.icon.cc.visa:before{content:"\f1f0";font-family:brand-icons}i.icon.centercode:before{content:"\f380";font-family:brand-icons}i.icon.centos:before{content:"\f789";font-family:brand-icons}i.icon.chrome:before{content:"\f268";font-family:brand-icons}i.icon.chromecast:before{content:"\f838";font-family:brand-icons}i.icon.cloudscale:before{content:"\f383";font-family:brand-icons}i.icon.cloudsmith:before{content:"\f384";font-family:brand-icons}i.icon.cloudversify:before{content:"\f385";font-family:brand-icons}i.icon.codepen:before{content:"\f1cb";font-family:brand-icons}i.icon.codiepie:before{content:"\f284";font-family:brand-icons}i.icon.confluence:before{content:"\f78d";font-family:brand-icons}i.icon.connectdevelop:before{content:"\f20e";font-family:brand-icons}i.icon.contao:before{content:"\f26d";font-family:brand-icons}i.icon.cotton.bureau:before{content:"\f89e";font-family:brand-icons}i.icon.cpanel:before{content:"\f388";font-family:brand-icons}i.icon.creative.commons:before{content:"\f25e";font-family:brand-icons}i.icon.creative.commons.by:before{content:"\f4e7";font-family:brand-icons}i.icon.creative.commons.nc:before{content:"\f4e8";font-family:brand-icons}i.icon.creative.commons.nc.eu:before{content:"\f4e9";font-family:brand-icons}i.icon.creative.commons.nc.jp:before{content:"\f4ea";font-family:brand-icons}i.icon.creative.commons.nd:before{content:"\f4eb";font-family:brand-icons}i.icon.creative.commons.pd:before{content:"\f4ec";font-family:brand-icons}i.icon.creative.commons.pd.alternate:before{content:"\f4ed";font-family:brand-icons}i.icon.creative.commons.remix:before{content:"\f4ee";font-family:brand-icons}i.icon.creative.commons.sa:before{content:"\f4ef";font-family:brand-icons}i.icon.creative.commons.sampling:before{content:"\f4f0";font-family:brand-icons}i.icon.creative.commons.sampling.plus:before{content:"\f4f1";font-family:brand-icons}i.icon.creative.commons.share:before{content:"\f4f2";font-family:brand-icons}i.icon.creative.commons.zero:before{content:"\f4f3";font-family:brand-icons}i.icon.critical.role:before{content:"\f6c9";font-family:brand-icons}i.icon.css3:before{content:"\f13c";font-family:brand-icons}i.icon.css3.alternate:before{content:"\f38b";font-family:brand-icons}i.icon.cuttlefish:before{content:"\f38c";font-family:brand-icons}i.icon.d.and.d:before{content:"\f38d";font-family:brand-icons}i.icon.d.and.d.beyond:before{content:"\f6ca";font-family:brand-icons}i.icon.dailymotion:before{content:"\f952";font-family:brand-icons}i.icon.dashcube:before{content:"\f210";font-family:brand-icons}i.icon.delicious:before{content:"\f1a5";font-family:brand-icons}i.icon.deploydog:before{content:"\f38e";font-family:brand-icons}i.icon.deskpro:before{content:"\f38f";font-family:brand-icons}i.icon.dev:before{content:"\f6cc";font-family:brand-icons}i.icon.deviantart:before{content:"\f1bd";font-family:brand-icons}i.icon.dhl:before{content:"\f790";font-family:brand-icons}i.icon.diaspora:before{content:"\f791";font-family:brand-icons}i.icon.digg:before{content:"\f1a6";font-family:brand-icons}i.icon.digital.ocean:before{content:"\f391";font-family:brand-icons}i.icon.discord:before{content:"\f392";font-family:brand-icons}i.icon.discourse:before{content:"\f393";font-family:brand-icons}i.icon.dochub:before{content:"\f394";font-family:brand-icons}i.icon.docker:before{content:"\f395";font-family:brand-icons}i.icon.draft2digital:before{content:"\f396";font-family:brand-icons}i.icon.dribbble:before{content:"\f17d";font-family:brand-icons}i.icon.dribbble.square:before{content:"\f397";font-family:brand-icons}i.icon.dropbox:before{content:"\f16b";font-family:brand-icons}i.icon.drupal:before{content:"\f1a9";font-family:brand-icons}i.icon.dyalog:before{content:"\f399";font-family:brand-icons}i.icon.earlybirds:before{content:"\f39a";font-family:brand-icons}i.icon.ebay:before{content:"\f4f4";font-family:brand-icons}i.icon.edge:before{content:"\f282";font-family:brand-icons}i.icon.elementor:before{content:"\f430";font-family:brand-icons}i.icon.ello:before{content:"\f5f1";font-family:brand-icons}i.icon.ember:before{content:"\f423";font-family:brand-icons}i.icon.empire:before{content:"\f1d1";font-family:brand-icons}i.icon.envira:before{content:"\f299";font-family:brand-icons}i.icon.erlang:before{content:"\f39d";font-family:brand-icons}i.icon.ethereum:before{content:"\f42e";font-family:brand-icons}i.icon.etsy:before{content:"\f2d7";font-family:brand-icons}i.icon.evernote:before{content:"\f839";font-family:brand-icons}i.icon.expeditedssl:before{content:"\f23e";font-family:brand-icons}i.icon.facebook:before{content:"\f09a";font-family:brand-icons}i.icon.facebook.f:before{content:"\f39e";font-family:brand-icons}i.icon.facebook.messenger:before{content:"\f39f";font-family:brand-icons}i.icon.facebook.square:before{content:"\f082";font-family:brand-icons}i.icon.fantasy.flight.games:before{content:"\f6dc";font-family:brand-icons}i.icon.fedex:before{content:"\f797";font-family:brand-icons}i.icon.fedora:before{content:"\f798";font-family:brand-icons}i.icon.figma:before{content:"\f799";font-family:brand-icons}i.icon.firefox:before{content:"\f269";font-family:brand-icons}i.icon.firefox.browser:before{content:"\f907";font-family:brand-icons}i.icon.first.order:before{content:"\f2b0";font-family:brand-icons}i.icon.first.order.alternate:before{content:"\f50a";font-family:brand-icons}i.icon.firstdraft:before{content:"\f3a1";font-family:brand-icons}i.icon.flickr:before{content:"\f16e";font-family:brand-icons}i.icon.flipboard:before{content:"\f44d";font-family:brand-icons}i.icon.fly:before{content:"\f417";font-family:brand-icons}i.icon.font.awesome:before{content:"\f2b4";font-family:brand-icons}i.icon.font.awesome.alternate:before{content:"\f35c";font-family:brand-icons}i.icon.font.awesome.flag:before{content:"\f425";font-family:brand-icons}i.icon.fonticons:before{content:"\f280";font-family:brand-icons}i.icon.fonticons.fi:before{content:"\f3a2";font-family:brand-icons}i.icon.fort.awesome:before{content:"\f286";font-family:brand-icons}i.icon.fort.awesome.alternate:before{content:"\f3a3";font-family:brand-icons}i.icon.forumbee:before{content:"\f211";font-family:brand-icons}i.icon.foursquare:before{content:"\f180";font-family:brand-icons}i.icon.free.code.camp:before{content:"\f2c5";font-family:brand-icons}i.icon.freebsd:before{content:"\f3a4";font-family:brand-icons}i.icon.fulcrum:before{content:"\f50b";font-family:brand-icons}i.icon.galactic.republic:before{content:"\f50c";font-family:brand-icons}i.icon.galactic.senate:before{content:"\f50d";font-family:brand-icons}i.icon.get.pocket:before{content:"\f265";font-family:brand-icons}i.icon.gg:before{content:"\f260";font-family:brand-icons}i.icon.gg.circle:before{content:"\f261";font-family:brand-icons}i.icon.git:before{content:"\f1d3";font-family:brand-icons}i.icon.git.alternate:before{content:"\f841";font-family:brand-icons}i.icon.git.square:before{content:"\f1d2";font-family:brand-icons}i.icon.github:before{content:"\f09b";font-family:brand-icons}i.icon.github.alternate:before{content:"\f113";font-family:brand-icons}i.icon.github.square:before{content:"\f092";font-family:brand-icons}i.icon.gitkraken:before{content:"\f3a6";font-family:brand-icons}i.icon.gitlab:before{content:"\f296";font-family:brand-icons}i.icon.gitter:before{content:"\f426";font-family:brand-icons}i.icon.glide:before{content:"\f2a5";font-family:brand-icons}i.icon.glide.g:before{content:"\f2a6";font-family:brand-icons}i.icon.gofore:before{content:"\f3a7";font-family:brand-icons}i.icon.goodreads:before{content:"\f3a8";font-family:brand-icons}i.icon.goodreads.g:before{content:"\f3a9";font-family:brand-icons}i.icon.google:before{content:"\f1a0";font-family:brand-icons}i.icon.google.drive:before{content:"\f3aa";font-family:brand-icons}i.icon.google.play:before{content:"\f3ab";font-family:brand-icons}i.icon.google.plus:before{content:"\f2b3";font-family:brand-icons}i.icon.google.plus.g:before{content:"\f0d5";font-family:brand-icons}i.icon.google.plus.square:before{content:"\f0d4";font-family:brand-icons}i.icon.google.wallet:before{content:"\f1ee";font-family:brand-icons}i.icon.gratipay:before{content:"\f184";font-family:brand-icons}i.icon.grav:before{content:"\f2d6";font-family:brand-icons}i.icon.gripfire:before{content:"\f3ac";font-family:brand-icons}i.icon.grunt:before{content:"\f3ad";font-family:brand-icons}i.icon.gulp:before{content:"\f3ae";font-family:brand-icons}i.icon.hacker.news:before{content:"\f1d4";font-family:brand-icons}i.icon.hacker.news.square:before{content:"\f3af";font-family:brand-icons}i.icon.hackerrank:before{content:"\f5f7";font-family:brand-icons}i.icon.hips:before{content:"\f452";font-family:brand-icons}i.icon.hire.a.helper:before{content:"\f3b0";font-family:brand-icons}i.icon.hooli:before{content:"\f427";font-family:brand-icons}i.icon.hornbill:before{content:"\f592";font-family:brand-icons}i.icon.hotjar:before{content:"\f3b1";font-family:brand-icons}i.icon.houzz:before{content:"\f27c";font-family:brand-icons}i.icon.html5:before{content:"\f13b";font-family:brand-icons}i.icon.hubspot:before{content:"\f3b2";font-family:brand-icons}i.icon.ideal:before{content:"\f913";font-family:brand-icons}i.icon.imdb:before{content:"\f2d8";font-family:brand-icons}i.icon.instagram:before{content:"\f16d";font-family:brand-icons}i.icon.instagram.square:before{content:"\f955";font-family:brand-icons}i.icon.intercom:before{content:"\f7af";font-family:brand-icons}i.icon.internet.explorer:before{content:"\f26b";font-family:brand-icons}i.icon.invision:before{content:"\f7b0";font-family:brand-icons}i.icon.ioxhost:before{content:"\f208";font-family:brand-icons}i.icon.itch.io:before{content:"\f83a";font-family:brand-icons}i.icon.itunes:before{content:"\f3b4";font-family:brand-icons}i.icon.itunes.note:before{content:"\f3b5";font-family:brand-icons}i.icon.java:before{content:"\f4e4";font-family:brand-icons}i.icon.jedi.order:before{content:"\f50e";font-family:brand-icons}i.icon.jenkins:before{content:"\f3b6";font-family:brand-icons}i.icon.jira:before{content:"\f7b1";font-family:brand-icons}i.icon.joget:before{content:"\f3b7";font-family:brand-icons}i.icon.joomla:before{content:"\f1aa";font-family:brand-icons}i.icon.js:before{content:"\f3b8";font-family:brand-icons}i.icon.js.square:before{content:"\f3b9";font-family:brand-icons}i.icon.jsfiddle:before{content:"\f1cc";font-family:brand-icons}i.icon.kaggle:before{content:"\f5fa";font-family:brand-icons}i.icon.keybase:before{content:"\f4f5";font-family:brand-icons}i.icon.keycdn:before{content:"\f3ba";font-family:brand-icons}i.icon.kickstarter:before{content:"\f3bb";font-family:brand-icons}i.icon.kickstarter.k:before{content:"\f3bc";font-family:brand-icons}i.icon.korvue:before{content:"\f42f";font-family:brand-icons}i.icon.laravel:before{content:"\f3bd";font-family:brand-icons}i.icon.lastfm:before{content:"\f202";font-family:brand-icons}i.icon.lastfm.square:before{content:"\f203";font-family:brand-icons}i.icon.leanpub:before{content:"\f212";font-family:brand-icons}i.icon.lesscss:before{content:"\f41d";font-family:brand-icons}i.icon.linechat:before{content:"\f3c0";font-family:brand-icons}i.icon.linkedin:before{content:"\f08c";font-family:brand-icons}i.icon.linkedin.in:before{content:"\f0e1";font-family:brand-icons}i.icon.linode:before{content:"\f2b8";font-family:brand-icons}i.icon.linux:before{content:"\f17c";font-family:brand-icons}i.icon.lyft:before{content:"\f3c3";font-family:brand-icons}i.icon.magento:before{content:"\f3c4";font-family:brand-icons}i.icon.mailchimp:before{content:"\f59e";font-family:brand-icons}i.icon.mandalorian:before{content:"\f50f";font-family:brand-icons}i.icon.markdown:before{content:"\f60f";font-family:brand-icons}i.icon.mastodon:before{content:"\f4f6";font-family:brand-icons}i.icon.maxcdn:before{content:"\f136";font-family:brand-icons}i.icon.mdb:before{content:"\f8ca";font-family:brand-icons}i.icon.medapps:before{content:"\f3c6";font-family:brand-icons}i.icon.medium:before{content:"\f23a";font-family:brand-icons}i.icon.medium.m:before{content:"\f3c7";font-family:brand-icons}i.icon.medrt:before{content:"\f3c8";font-family:brand-icons}i.icon.meetup:before{content:"\f2e0";font-family:brand-icons}i.icon.megaport:before{content:"\f5a3";font-family:brand-icons}i.icon.mendeley:before{content:"\f7b3";font-family:brand-icons}i.icon.microblog:before{content:"\f91a";font-family:brand-icons}i.icon.microsoft:before{content:"\f3ca";font-family:brand-icons}i.icon.mix:before{content:"\f3cb";font-family:brand-icons}i.icon.mixcloud:before{content:"\f289";font-family:brand-icons}i.icon.mixer:before{content:"\f956";font-family:brand-icons}i.icon.mizuni:before{content:"\f3cc";font-family:brand-icons}i.icon.modx:before{content:"\f285";font-family:brand-icons}i.icon.monero:before{content:"\f3d0";font-family:brand-icons}i.icon.napster:before{content:"\f3d2";font-family:brand-icons}i.icon.neos:before{content:"\f612";font-family:brand-icons}i.icon.nimblr:before{content:"\f5a8";font-family:brand-icons}i.icon.node:before{content:"\f419";font-family:brand-icons}i.icon.node.js:before{content:"\f3d3";font-family:brand-icons}i.icon.npm:before{content:"\f3d4";font-family:brand-icons}i.icon.ns8:before{content:"\f3d5";font-family:brand-icons}i.icon.nutritionix:before{content:"\f3d6";font-family:brand-icons}i.icon.odnoklassniki:before{content:"\f263";font-family:brand-icons}i.icon.odnoklassniki.square:before{content:"\f264";font-family:brand-icons}i.icon.old.republic:before{content:"\f510";font-family:brand-icons}i.icon.opencart:before{content:"\f23d";font-family:brand-icons}i.icon.openid:before{content:"\f19b";font-family:brand-icons}i.icon.opera:before{content:"\f26a";font-family:brand-icons}i.icon.optin.monster:before{content:"\f23c";font-family:brand-icons}i.icon.orcid:before{content:"\f8d2";font-family:brand-icons}i.icon.osi:before{content:"\f41a";font-family:brand-icons}i.icon.page4:before{content:"\f3d7";font-family:brand-icons}i.icon.pagelines:before{content:"\f18c";font-family:brand-icons}i.icon.palfed:before{content:"\f3d8";font-family:brand-icons}i.icon.patreon:before{content:"\f3d9";font-family:brand-icons}i.icon.paypal:before{content:"\f1ed";font-family:brand-icons}i.icon.penny.arcade:before{content:"\f704";font-family:brand-icons}i.icon.periscope:before{content:"\f3da";font-family:brand-icons}i.icon.phabricator:before{content:"\f3db";font-family:brand-icons}i.icon.phoenix.framework:before{content:"\f3dc";font-family:brand-icons}i.icon.phoenix.squadron:before{content:"\f511";font-family:brand-icons}i.icon.php:before{content:"\f457";font-family:brand-icons}i.icon.pied.piper:before{content:"\f2ae";font-family:brand-icons}i.icon.pied.piper.alternate:before{content:"\f1a8";font-family:brand-icons}i.icon.pied.piper.hat:before{content:"\f4e5"}i.icon.pied.piper.pp:before{content:"\f1a7";font-family:brand-icons}i.icon.pied.piper.square:before{content:"\f91e";font-family:brand-icons}i.icon.pinterest:before{content:"\f0d2";font-family:brand-icons}i.icon.pinterest.p:before{content:"\f231";font-family:brand-icons}i.icon.pinterest.square:before{content:"\f0d3";font-family:brand-icons}i.icon.playstation:before{content:"\f3df";font-family:brand-icons}i.icon.product.hunt:before{content:"\f288";font-family:brand-icons}i.icon.pushed:before{content:"\f3e1";font-family:brand-icons}i.icon.python:before{content:"\f3e2";font-family:brand-icons}i.icon.qq:before{content:"\f1d6";font-family:brand-icons}i.icon.quinscape:before{content:"\f459";font-family:brand-icons}i.icon.quora:before{content:"\f2c4";font-family:brand-icons}i.icon.r.project:before{content:"\f4f7";font-family:brand-icons}i.icon.raspberry.pi:before{content:"\f7bb";font-family:brand-icons}i.icon.ravelry:before{content:"\f2d9";font-family:brand-icons}i.icon.react:before{content:"\f41b";font-family:brand-icons}i.icon.reacteurope:before{content:"\f75d";font-family:brand-icons}i.icon.readme:before{content:"\f4d5";font-family:brand-icons}i.icon.rebel:before{content:"\f1d0";font-family:brand-icons}i.icon.reddit:before{content:"\f1a1";font-family:brand-icons}i.icon.reddit.alien:before{content:"\f281";font-family:brand-icons}i.icon.reddit.square:before{content:"\f1a2";font-family:brand-icons}i.icon.redhat:before{content:"\f7bc";font-family:brand-icons}i.icon.redriver:before{content:"\f3e3";font-family:brand-icons}i.icon.redyeti:before{content:"\f69d";font-family:brand-icons}i.icon.renren:before{content:"\f18b";font-family:brand-icons}i.icon.replyd:before{content:"\f3e6";font-family:brand-icons}i.icon.researchgate:before{content:"\f4f8";font-family:brand-icons}i.icon.resolving:before{content:"\f3e7";font-family:brand-icons}i.icon.rev:before{content:"\f5b2";font-family:brand-icons}i.icon.rocketchat:before{content:"\f3e8";font-family:brand-icons}i.icon.rockrms:before{content:"\f3e9";font-family:brand-icons}i.icon.safari:before{content:"\f267";font-family:brand-icons}i.icon.salesforce:before{content:"\f83b";font-family:brand-icons}i.icon.sass:before{content:"\f41e";font-family:brand-icons}i.icon.schlix:before{content:"\f3ea";font-family:brand-icons}i.icon.scribd:before{content:"\f28a";font-family:brand-icons}i.icon.searchengin:before{content:"\f3eb";font-family:brand-icons}i.icon.sellcast:before{content:"\f2da";font-family:brand-icons}i.icon.sellsy:before{content:"\f213";font-family:brand-icons}i.icon.servicestack:before{content:"\f3ec";font-family:brand-icons}i.icon.shirtsinbulk:before{content:"\f214";font-family:brand-icons}i.icon.shopify:before{content:"\f957";font-family:brand-icons}i.icon.shopware:before{content:"\f5b5";font-family:brand-icons}i.icon.simplybuilt:before{content:"\f215";font-family:brand-icons}i.icon.sistrix:before{content:"\f3ee";font-family:brand-icons}i.icon.sith:before{content:"\f512";font-family:brand-icons}i.icon.sketch:before{content:"\f7c6";font-family:brand-icons}i.icon.skyatlas:before{content:"\f216";font-family:brand-icons}i.icon.skype:before{content:"\f17e";font-family:brand-icons}i.icon.slack:before{content:"\f198";font-family:brand-icons}i.icon.slack.hash:before{content:"\f3ef";font-family:brand-icons}i.icon.slideshare:before{content:"\f1e7";font-family:brand-icons}i.icon.snapchat:before{content:"\f2ab";font-family:brand-icons}i.icon.snapchat.ghost:before{content:"\f2ac";font-family:brand-icons}i.icon.snapchat.square:before{content:"\f2ad";font-family:brand-icons}i.icon.soundcloud:before{content:"\f1be";font-family:brand-icons}i.icon.sourcetree:before{content:"\f7d3";font-family:brand-icons}i.icon.speakap:before{content:"\f3f3";font-family:brand-icons}i.icon.speaker.deck:before{content:"\f83c";font-family:brand-icons}i.icon.spotify:before{content:"\f1bc";font-family:brand-icons}i.icon.squarespace:before{content:"\f5be";font-family:brand-icons}i.icon.stack.exchange:before{content:"\f18d";font-family:brand-icons}i.icon.stack.overflow:before{content:"\f16c";font-family:brand-icons}i.icon.stackpath:before{content:"\f842";font-family:brand-icons}i.icon.staylinked:before{content:"\f3f5";font-family:brand-icons}i.icon.steam:before{content:"\f1b6";font-family:brand-icons}i.icon.steam.square:before{content:"\f1b7";font-family:brand-icons}i.icon.steam.symbol:before{content:"\f3f6";font-family:brand-icons}i.icon.sticker.mule:before{content:"\f3f7";font-family:brand-icons}i.icon.strava:before{content:"\f428";font-family:brand-icons}i.icon.stripe:before{content:"\f429";font-family:brand-icons}i.icon.stripe.s:before{content:"\f42a";font-family:brand-icons}i.icon.studiovinari:before{content:"\f3f8";font-family:brand-icons}i.icon.stumbleupon:before{content:"\f1a4";font-family:brand-icons}i.icon.stumbleupon.circle:before{content:"\f1a3";font-family:brand-icons}i.icon.superpowers:before{content:"\f2dd";font-family:brand-icons}i.icon.supple:before{content:"\f3f9";font-family:brand-icons}i.icon.suse:before{content:"\f7d6";font-family:brand-icons}i.icon.swift:before{content:"\f8e1";font-family:brand-icons}i.icon.symfony:before{content:"\f83d";font-family:brand-icons}i.icon.teamspeak:before{content:"\f4f9";font-family:brand-icons}i.icon.telegram:before{content:"\f2c6";font-family:brand-icons}i.icon.telegram.plane:before{content:"\f3fe";font-family:brand-icons}i.icon.tencent.weibo:before{content:"\f1d5";font-family:brand-icons}i.icon.themeco:before{content:"\f5c6";font-family:brand-icons}i.icon.themeisle:before{content:"\f2b2";font-family:brand-icons}i.icon.think.peaks:before{content:"\f731";font-family:brand-icons}i.icon.trade.federation:before{content:"\f513";font-family:brand-icons}i.icon.trello:before{content:"\f181";font-family:brand-icons}i.icon.tripadvisor:before{content:"\f262";font-family:brand-icons}i.icon.tumblr:before{content:"\f173";font-family:brand-icons}i.icon.tumblr.square:before{content:"\f174";font-family:brand-icons}i.icon.twitch:before{content:"\f1e8";font-family:brand-icons}i.icon.twitter:before{content:"\f099";font-family:brand-icons}i.icon.twitter.square:before{content:"\f081";font-family:brand-icons}i.icon.typo3:before{content:"\f42b";font-family:brand-icons}i.icon.uber:before{content:"\f402";font-family:brand-icons}i.icon.ubuntu:before{content:"\f7df";font-family:brand-icons}i.icon.uikit:before{content:"\f403";font-family:brand-icons}i.icon.umbraco:before{content:"\f8e8";font-family:brand-icons}i.icon.uniregistry:before{content:"\f404";font-family:brand-icons}i.icon.unity:before{content:"\f949";font-family:brand-icons}i.icon.untappd:before{content:"\f405";font-family:brand-icons}i.icon.ups:before{content:"\f7e0";font-family:brand-icons}i.icon.usb:before{content:"\f287";font-family:brand-icons}i.icon.usps:before{content:"\f7e1";font-family:brand-icons}i.icon.ussunnah:before{content:"\f407";font-family:brand-icons}i.icon.vaadin:before{content:"\f408";font-family:brand-icons}i.icon.viacoin:before{content:"\f237";font-family:brand-icons}i.icon.viadeo:before{content:"\f2a9";font-family:brand-icons}i.icon.viadeo.square:before{content:"\f2aa";font-family:brand-icons}i.icon.viber:before{content:"\f409";font-family:brand-icons}i.icon.vimeo:before{content:"\f40a";font-family:brand-icons}i.icon.vimeo.square:before{content:"\f194";font-family:brand-icons}i.icon.vimeo.v:before{content:"\f27d";font-family:brand-icons}i.icon.vine:before{content:"\f1ca";font-family:brand-icons}i.icon.vk:before{content:"\f189";font-family:brand-icons}i.icon.vnv:before{content:"\f40b";font-family:brand-icons}i.icon.vuejs:before{content:"\f41f";font-family:brand-icons}i.icon.waze:before{content:"\f83f";font-family:brand-icons}i.icon.weebly:before{content:"\f5cc";font-family:brand-icons}i.icon.weibo:before{content:"\f18a";font-family:brand-icons}i.icon.weixin:before{content:"\f1d7";font-family:brand-icons}i.icon.whatsapp:before{content:"\f232";font-family:brand-icons}i.icon.whatsapp.square:before{content:"\f40c";font-family:brand-icons}i.icon.whmcs:before{content:"\f40d";font-family:brand-icons}i.icon.wikipedia.w:before{content:"\f266";font-family:brand-icons}i.icon.windows:before{content:"\f17a";font-family:brand-icons}i.icon.wix:before{content:"\f5cf";font-family:brand-icons}i.icon.wizards.of.the.coast:before{content:"\f730";font-family:brand-icons}i.icon.wolf.pack.battalion:before{content:"\f514";font-family:brand-icons}i.icon.wordpress:before{content:"\f19a";font-family:brand-icons}i.icon.wordpress.simple:before{content:"\f411";font-family:brand-icons}i.icon.wpbeginner:before{content:"\f297";font-family:brand-icons}i.icon.wpexplorer:before{content:"\f2de";font-family:brand-icons}i.icon.wpforms:before{content:"\f298";font-family:brand-icons}i.icon.wpressr:before{content:"\f3e4";font-family:brand-icons}i.icon.xbox:before{content:"\f412";font-family:brand-icons}i.icon.xing:before{content:"\f168";font-family:brand-icons}i.icon.xing.square:before{content:"\f169";font-family:brand-icons}i.icon.y.combinator:before{content:"\f23b";font-family:brand-icons}i.icon.yahoo:before{content:"\f19e";font-family:brand-icons}i.icon.yammer:before{content:"\f840";font-family:brand-icons}i.icon.yandex:before{content:"\f413";font-family:brand-icons}i.icon.yandex.international:before{content:"\f414";font-family:brand-icons}i.icon.yarn:before{content:"\f7e3";font-family:brand-icons}i.icon.yelp:before{content:"\f1e9";font-family:brand-icons}i.icon.yoast:before{content:"\f2b1";font-family:brand-icons}i.icon.youtube:before{content:"\f167";font-family:brand-icons}i.icon.youtube.square:before{content:"\f431";font-family:brand-icons}i.icon.zhihu:before{content:"\f63f";font-family:brand-icons}i.icon.american.express.card:before,i.icon.american.express:before,i.icon.amex:before{content:"\f1f3";font-family:brand-icons}i.icon.bitbucket.square:before{content:"\f171";font-family:brand-icons}i.icon.bluetooth.alternative:before{content:"\f294";font-family:brand-icons}i.icon.credit.card.amazon.pay:before{content:"\f42d";font-family:brand-icons}i.icon.credit.card.american.express:before{content:"\f1f3";font-family:brand-icons}i.icon.credit.card.diners.club:before{content:"\f24c";font-family:brand-icons}i.icon.credit.card.discover:before{content:"\f1f2";font-family:brand-icons}i.icon.credit.card.jcb:before{content:"\f24b";font-family:brand-icons}i.icon.credit.card.mastercard:before{content:"\f1f1";font-family:brand-icons}i.icon.credit.card.paypal:before{content:"\f1f4";font-family:brand-icons}i.icon.credit.card.stripe:before{content:"\f1f5";font-family:brand-icons}i.icon.credit.card.visa:before{content:"\f1f0";font-family:brand-icons}i.icon.diners.club.card:before,i.icon.diners.club:before{content:"\f24c";font-family:brand-icons}i.icon.discover.card:before,i.icon.discover:before{content:"\f1f2";font-family:brand-icons}i.icon.disk.outline:before{content:"\f369";font-family:brand-icons}i.icon.dribble:before{content:"\f17d";font-family:brand-icons}i.icon.eercast:before{content:"\f2da";font-family:brand-icons}i.icon.envira.gallery:before{content:"\f299";font-family:brand-icons}i.icon.fa:before{content:"\f2b4";font-family:brand-icons}i.icon.facebook.official:before{content:"\f082";font-family:brand-icons}i.icon.five.hundred.pixels:before{content:"\f26e";font-family:brand-icons}i.icon.gittip:before{content:"\f184";font-family:brand-icons}i.icon.google.plus.circle:before,i.icon.google.plus.official:before{content:"\f2b3";font-family:brand-icons}i.icon.japan.credit.bureau.card:before,i.icon.japan.credit.bureau:before,i.icon.jcb:before{content:"\f24b";font-family:brand-icons}i.icon.linkedin.square:before{content:"\f08c";font-family:brand-icons}i.icon.mastercard.card:before,i.icon.mastercard:before{content:"\f1f1";font-family:brand-icons}i.icon.microsoft.edge:before,i.icon.ms.edge:before{content:"\f282";font-family:brand-icons}i.icon.new.pied.piper:before{content:"\f2ae";font-family:brand-icons}i.icon.optinmonster:before{content:"\f23c";font-family:brand-icons}i.icon.paypal.card:before{content:"\f1f4";font-family:brand-icons}i.icon.pied.piper.hat:before{content:"\f2ae";font-family:brand-icons}i.icon.pocket:before{content:"\f265";font-family:brand-icons}i.icon.stripe.card:before{content:"\f1f5";font-family:brand-icons}i.icon.theme.isle:before{content:"\f2b2";font-family:brand-icons}i.icon.visa.card:before,i.icon.visa:before{content:"\f1f0";font-family:brand-icons}i.icon.wechat:before{content:"\f1d7";font-family:brand-icons}i.icon.wikipedia:before{content:"\f266";font-family:brand-icons}i.icon.wordpress.beginner:before{content:"\f297";font-family:brand-icons}i.icon.wordpress.forms:before{content:"\f298";font-family:brand-icons}i.icon.yc:before,i.icon.ycombinator:before{content:"\f23b";font-family:brand-icons}i.icon.youtube.play:before{content:"\f167";font-family:brand-icons}
+
+
+/*!
+ * # Fomantic-UI - Modal
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.modal{position:absolute;display:none;z-index:1001;text-align:left;background:#fff;border:none;box-shadow:1px 3px 3px 0 rgba(0,0,0,.2),1px 3px 15px 2px rgba(0,0,0,.2);transform-origin:50% 25%;flex:0 0 auto;border-radius:.28571429rem;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;will-change:top,left,margin,transform,opacity}.ui.modal>.dimmer:first-child+:not(.icon),.ui.modal>.dimmer:first-child+i.icon+*,.ui.modal>:first-child:not(.icon):not(.dimmer),.ui.modal>i.icon:first-child+*{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.modal>:last-child{border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.modal>.ui.dimmer{border-radius:inherit}.ui.modal>.close{cursor:pointer;position:absolute;top:-2.5rem;right:-2.5rem;z-index:1;opacity:.8;font-size:1.25em;color:#fff;width:2.25rem;height:2.25rem;padding:.625rem 0 0}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;margin:0;padding:1.25rem 1.5rem;box-shadow:none;color:rgba(0,0,0,.85);border-bottom:1px solid rgba(34,36,38,.15)}.ui.modal>.header:not(.ui){font-size:1.42857143rem;line-height:1.28571429em;font-weight:700}.ui.modal>.content{display:block;width:100%;font-size:1em;line-height:1.4;padding:1.5rem;background:#fff}.ui.modal>.image.content{display:flex;flex-direction:row}.ui.modal>.content>.image{display:block;flex:0 1 auto;width:"";align-self:start;max-width:100%}.ui.modal>[class*="top aligned"]{align-self:start}.ui.modal>[class*="middle aligned"]{align-self:center}.ui.modal>[class*=stretched]{align-self:stretch}.ui.modal>.content>.description{display:block;flex:1 0 auto;min-width:0;align-self:start}.ui.modal>.content>.image+.description,.ui.modal>.content>i.icon+.description{flex:0 1 auto;min-width:"";width:auto;padding-left:2em}.ui.modal>.content>.image>i.icon{margin:0;opacity:1;width:auto;line-height:1;font-size:8rem}.ui.modal>.actions{background:#f9fafb;padding:1rem;border-top:1px solid rgba(34,36,38,.15);text-align:right}.ui.modal .actions>.button:not(.fluid){margin-left:.75em}.ui.basic.modal>.actions{border-top:none}@media only screen and (max-width:767.98px){.ui.modal:not(.fullscreen){width:95%;margin:0}}@media only screen and (min-width:768px){.ui.modal:not(.fullscreen){width:88%;margin:0}}@media only screen and (min-width:992px){.ui.modal:not(.fullscreen){width:850px;margin:0}}@media only screen and (min-width:1200px){.ui.modal:not(.fullscreen){width:900px;margin:0}}@media only screen and (min-width:1920px){.ui.modal:not(.fullscreen){width:950px;margin:0}}@media only screen and (max-width:991.98px){.ui.modal>.header{padding-right:2.25rem}.ui.modal>.close{top:1.0535rem;right:1rem;color:rgba(0,0,0,.87)}}@media only screen and (max-width:767.98px){.ui.modal>.header{padding:.75rem 2.25rem .75rem 1rem!important}.ui.overlay.fullscreen.modal>.content.content.content{min-height:calc(100vh - 8.1rem)}.ui.overlay.fullscreen.modal>.scrolling.content.content.content{max-height:calc(100vh - 8.1rem)}.ui.modal>.content{display:block;padding:1rem!important}.ui.modal>.close{top:.5rem!important;right:.5rem!important}.ui.modal .image.content{flex-direction:column}.ui.modal>.content>.image{display:block;max-width:100%;margin:0 auto!important;text-align:center;padding:0 0 1rem!important}.ui.modal>.content>.image>i.icon{font-size:5rem;text-align:center}.ui.modal>.content>.description{display:block;width:100%!important;margin:0!important;padding:1rem 0!important;box-shadow:none}.ui.modal>.actions{padding:1rem 1rem 0!important}.ui.modal .actions>.button,.ui.modal .actions>.buttons{margin-bottom:1rem}}.ui.inverted.dimmer>.ui.modal{box-shadow:1px 3px 10px 2px rgba(0,0,0,.2)}.ui.basic.modal{border:none;border-radius:0;box-shadow:none!important;color:#fff}.ui.basic.modal,.ui.basic.modal>.actions,.ui.basic.modal>.content,.ui.basic.modal>.header{background-color:transparent}.ui.basic.modal>.header{color:#fff;border-bottom:none}.ui.basic.modal>.close{top:1rem;right:1.5rem;color:#fff}.ui.inverted.dimmer>.basic.modal{color:rgba(0,0,0,.87)}.ui.inverted.dimmer>.ui.basic.modal>.header{color:rgba(0,0,0,.85)}.ui.legacy.legacy.modal,.ui.legacy.legacy.page.dimmer>.ui.modal{left:50%!important}.ui.legacy.legacy.modal:not(.aligned),.ui.legacy.legacy.page.dimmer>.ui.modal:not(.aligned){top:50%}.ui.legacy.legacy.page.dimmer>.ui.scrolling.modal:not(.aligned),.ui.page.dimmer>.ui.scrolling.legacy.legacy.modal:not(.aligned),.ui.top.aligned.dimmer>.ui.legacy.legacy.modal:not(.aligned),.ui.top.aligned.legacy.legacy.page.dimmer>.ui.modal:not(.aligned){top:auto}.ui.legacy.overlay.fullscreen.modal{margin-top:-2rem!important}.ui.loading.modal{display:block;visibility:hidden;z-index:-1}.ui.active.modal{display:block}.modals.dimmer .ui.top.aligned.modal{top:5vh}.modals.dimmer .ui.bottom.aligned.modal{bottom:5vh}@media only screen and (max-width:767.98px){.modals.dimmer .ui.top.aligned.modal{top:1rem}.modals.dimmer .ui.bottom.aligned.modal{bottom:1rem}}.scrolling.dimmable.dimmed{overflow:hidden}.scrolling.dimmable>.dimmer{justify-content:flex-start;position:fixed}.scrolling.dimmable.dimmed>.dimmer{overflow:auto;-webkit-overflow-scrolling:touch}.modals.dimmer .ui.scrolling.modal:not(.fullscreen){margin:2rem auto}.modals.dimmer .ui.scrolling.modal:not([class*="overlay fullscreen"]):after{content:"\00A0";position:absolute;height:2rem}.scrolling.undetached.dimmable.dimmed{overflow:auto;-webkit-overflow-scrolling:touch}.scrolling.undetached.dimmable.dimmed>.dimmer{overflow:hidden}.scrolling.undetached.dimmable .ui.scrolling.modal:not(.fullscreen){position:absolute;left:50%}.ui.modal>.scrolling.content{max-height:calc(80vh - 10rem);overflow:auto}.ui.overlay.fullscreen.modal>.content{min-height:calc(100vh - 9.1rem)}.ui.overlay.fullscreen.modal>.scrolling.content{max-height:calc(100vh - 9.1rem)}.ui.fullscreen.modal{width:95%;left:2.5%;margin:1em auto}.ui.overlay.fullscreen.modal{width:100%;left:0;margin:0 auto;top:0;border-radius:0}.ui.fullscreen.modal>.header,.ui.modal>.close.inside+.header{padding-right:2.25rem}.ui.fullscreen.modal>.close,.ui.modal>.close.inside{top:1.0535rem;right:1rem;color:rgba(0,0,0,.87)}.ui.basic.fullscreen.modal>.close{color:#fff}.ui.modal{font-size:1rem}.ui.mini.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767.98px){.ui.mini.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.mini.modal{width:35.2%;margin:0}}@media only screen and (min-width:992px){.ui.mini.modal{width:340px;margin:0}}@media only screen and (min-width:1200px){.ui.mini.modal{width:360px;margin:0}}@media only screen and (min-width:1920px){.ui.mini.modal{width:380px;margin:0}}.ui.tiny.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767.98px){.ui.tiny.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.tiny.modal{width:52.8%;margin:0}}@media only screen and (min-width:992px){.ui.tiny.modal{width:510px;margin:0}}@media only screen and (min-width:1200px){.ui.tiny.modal{width:540px;margin:0}}@media only screen and (min-width:1920px){.ui.tiny.modal{width:570px;margin:0}}.ui.small.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767.98px){.ui.small.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.small.modal{width:70.4%;margin:0}}@media only screen and (min-width:992px){.ui.small.modal{width:680px;margin:0}}@media only screen and (min-width:1200px){.ui.small.modal{width:720px;margin:0}}@media only screen and (min-width:1920px){.ui.small.modal{width:760px;margin:0}}.ui.large.modal>.header:not(.ui){font-size:1.6em}@media only screen and (max-width:767.98px){.ui.large.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.large.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.large.modal{width:1020px;margin:0}}@media only screen and (min-width:1200px){.ui.large.modal{width:1080px;margin:0}}@media only screen and (min-width:1920px){.ui.large.modal{width:1140px;margin:0}}.ui.big.modal>.header:not(.ui){font-size:1.6em}@media only screen and (max-width:767.98px){.ui.big.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.big.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.big.modal{width:1190px;margin:0}}@media only screen and (min-width:1200px){.ui.big.modal{width:1260px;margin:0}}@media only screen and (min-width:1920px){.ui.big.modal{width:1330px;margin:0}}.ui.huge.modal>.header:not(.ui){font-size:1.6em}@media only screen and (max-width:767.98px){.ui.huge.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.huge.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.huge.modal{width:1360px;margin:0}}@media only screen and (min-width:1200px){.ui.huge.modal{width:1440px;margin:0}}@media only screen and (min-width:1920px){.ui.huge.modal{width:1520px;margin:0}}.ui.massive.modal>.header:not(.ui){font-size:1.8em}@media only screen and (max-width:767.98px){.ui.massive.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.massive.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.massive.modal{width:1530px;margin:0}}@media only screen and (min-width:1200px){.ui.massive.modal{width:1620px;margin:0}}@media only screen and (min-width:1920px){.ui.massive.modal{width:1710px;margin:0}}.ui.inverted.modal{background:rgba(0,0,0,.9)}.ui.inverted.modal>.content,.ui.inverted.modal>.header{background:rgba(0,0,0,.9);color:#fff}.ui.inverted.modal>.actions{background:#191a1b;border-top:1px solid rgba(34,36,38,.85);color:#fff}.ui.inverted.dimmer>.modal>.close{color:rgba(0,0,0,.85)}@media only screen and (max-width:991.98px){.ui.dimmer .inverted.modal>.close{color:#fff}}.ui.inverted.fullscreen.modal>.close,.ui.inverted.modal>.close.inside{color:#fff}
+
+
+/*!
+ * # Fomantic-UI - Toast
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.toast-container{position:fixed;z-index:9999}.ui.toast-container.top.right{top:.85714286em;right:.85714286em;margin-left:.85714286em}.ui.toast-container.top.left{top:.85714286em;left:.85714286em;margin-right:.85714286em}.ui.toast-container.top.center{left:50%;transform:translate(-50%);top:.85714286em}.ui.toast-container.bottom.right{bottom:.85714286em;right:.85714286em;margin-left:.85714286em}.ui.toast-container.bottom.left{bottom:.85714286em;left:.85714286em;margin-right:.85714286em}.ui.toast-container.bottom.center{left:50%;transform:translate(-50%);bottom:.85714286em}.ui.toast-container .animating.toast-box,.ui.toast-container .toast-box,.ui.toast-container .visible.toast-box{display:table!important}.ui.toast-container .toast-box{margin-bottom:.5em;border-radius:.28571429rem;cursor:default}.ui.toast-container .toast-box:hover{opacity:1}.ui.toast-container .toast-box:not(.unclickable):hover{cursor:pointer}.ui.toast-container .toast-box.floating,.ui.toast-container .toast-box.hoverfloating:hover{box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);border:1px solid rgba(34,36,38,.12)}.ui.toast-container .toast-box.compact,.ui.toast-container .toast-box>.compact{width:350px}.ui.toast-container .toast-box>.ui.message,.ui.toast-container .toast-box>.ui.toast{margin:0 -1px -.01em;position:relative}.ui.toast-container .toast-box>.attached.progress{z-index:1}.ui.toast-container .toast-box>.attached.progress.bottom{margin:-.2em -1px -.01em}.ui.toast-container .toast-box>.attached.progress.top{margin:-.01em -1px -.2em}.ui.toast-container .toast-box>.attached.progress .bar{min-width:0}.ui.toast-container .toast-box>.attached.progress.info .bar.bar.bar{background:#12a1bf}.ui.toast-container .toast-box>.attached.progress.warning .bar.bar.bar{background:#cf9b0d}.ui.toast-container .toast-box>.attached.progress.success .bar.bar.bar{background:#15792d}.ui.toast-container .toast-box>.attached.progress.error .bar.bar.bar{background:#9c1a1a}.ui.toast-container .toast-box>.attached.progress.neutral .bar.bar.bar{background:#d9d9d9}.ui.toast-container .toast-box>.ui.message>.close.icon{top:.3em;right:.3em}.ui.toast-container .toast-box>.ui.message>.actions:last-child{margin-bottom:-1em}.ui.toast-container .toast-box>.ui.message.icon{align-items:inherit}.ui.toast-container .toast-box>.ui.message.icon>:not(.icon):not(.actions){padding-left:5rem}.ui.toast-container .toast-box>.ui.message.icon>i.icon:not(.close){display:inline-block;position:absolute;width:4rem;top:50%;transform:translateY(-50%)}.ui.toast-container .toast-box>.ui.message.icon:not(.vertical).actions>i.icon:not(.close){top:calc(50% - 1.2em);transform:none}.ui.toast-container .toast-box>.ui.message.icon:not(.vertical).icon.icon.icon{display:block}.ui.toast-container .toast-box .ui.toast>.close.icon{cursor:pointer;margin:0;opacity:.7;transition:opacity .1s ease}.ui.toast-container .toast-box .ui.toast>.close.icon:hover{opacity:1}.ui.toast-container .toast-box .ui.toast.vertical>.close.icon{margin-top:-.3em;margin-right:-.3em}.ui.toast-container .toast-box .ui.toast:not(.vertical)>.close.icon{position:absolute;top:.3em}.ui.toast-container .toast-box .ui.toast:not(.vertical)>.close.icon:not(.left){right:.3em}.ui.toast-container .toast-box .ui.toast:not(.vertical)>.close.icon.left{margin-left:-.3em}.ui.toast-container .toast-box .ui.card{margin:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).bottom{border-top-left-radius:0;border-top-right-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).bottom.horizontal>.image>img{border-top-left-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).bottom.horizontal>.image:last-child>img{border-top-right-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).top{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).top.horizontal>.image>img{border-bottom-left-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).top.horizontal>.image:last-child>img{border-bottom-right-radius:0}.ui.toast-container .toast-box .ui.card.horizontal.actions>.image>img{border-bottom-left-radius:0}.ui.toast-container .toast-box .ui.card.horizontal.actions>.image:last-child>img{border-bottom-right-radius:0}.ui.toast-container .toast-box .progressing{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:linear;animation-timing-function:linear}.ui.toast-container .toast-box .progressing.up{-webkit-animation-name:progressUp;animation-name:progressUp}.ui.toast-container .toast-box .progressing.down{-webkit-animation-name:progressDown;animation-name:progressDown}.ui.toast-container .toast-box .progressing.wait{-webkit-animation-name:progressWait;animation-name:progressWait}.ui.toast-container .toast-box:hover .pausable.progressing{-webkit-animation-play-state:paused;animation-play-state:paused}.ui.toast-container .toast-box .ui.toast:not(.vertical){display:block}.ui.toast-container .toast-box :not(.comment):not(.card) .actions{margin:.5em -1em -1em}.ui.toast-container .toast-box :not(.comment) .actions{padding:.5em .5em .75em;text-align:right}.ui.toast-container .toast-box :not(.comment) .actions.attached:not(.vertical){margin-right:1px}.ui.toast-container .toast-box :not(.comment) .actions:not(.basic):not(.attached){background:hsla(0,0%,100%,.25);border-top:1px solid rgba(0,0,0,.2)}.ui.toast-container .toast-box :not(.comment) .actions.left{text-align:left}.ui.toast-container .toast-box .vertical.actions>.button,.ui.toast-container .toast-box>.vertical.vertical.vertical,.ui.toast-container .toast-box>.vertical>.vertical.vertical{display:flex}.ui.toast-container .toast-box :not(.comment) .vertical.actions{flex-direction:column}.ui.toast-container .toast-box :not(.comment) .vertical.actions>.button{justify-content:center}.ui.toast-container .toast-box :not(.comment) .vertical.actions.attached>.button{align-items:center}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached){border-top:0;margin-top:-.75em;margin-bottom:-.75em;margin-left:1em;justify-content:space-around}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached):not(.basic){border-left:1px solid rgba(0,0,0,.2)}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached)>.button:not(:last-child){margin-bottom:.3em}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached).top{justify-content:flex-start}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached).bottom{justify-content:flex-end}.ui.vertical.attached:not(.left).card>.image>img{border-top-right-radius:0}.ui.vertical.attached:not(.left).card,.ui.vertical.attached:not(.left).card.horizontal>.image:last-child>img,.ui.vertical.attached:not(.left).toast{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.attached:not(.left).actions{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.attached:not(.left).actions .button:first-child,.ui.vertical.attached:not(.left).actions .button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ui.vertical.attached:not(.left).message{border-top-right-radius:0;border-bottom-left-radius:.28571429rem}.ui.vertical.attached.left.card>.image>img{border-top-left-radius:0}.ui.vertical.attached.left.card,.ui.vertical.attached.left.card.horizontal>.image>img,.ui.vertical.attached.left.toast{border-top-left-radius:0;border-bottom-left-radius:0}.ui.vertical.attached.left.actions{border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.vertical.attached.left.actions .button:first-child,.ui.vertical.attached.left.actions .button:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.attached.left.actions .button:not(:first-child):not(:last-child){margin-left:-1px}.ui.vertical.attached.left.message.message.message{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.attached:not(.vertical):not(.top).actions{border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.attached:not(.vertical):not(.top).actions .button:first-child{border-bottom-left-radius:.28571429rem}.ui.attached:not(.vertical):not(.top).actions .button:last-child{border-bottom-right-radius:.28571429rem}.ui.attached:not(.vertical).top.actions{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.attached:not(.vertical).top.actions .button:first-child{border-top-left-radius:.28571429rem}.ui.attached:not(.vertical).top.actions .button:last-child{border-top-right-radius:.28571429rem}.ui.toast{display:none;border-radius:.28571429rem;padding:.78571429em 1em;margin:0 -1px -.01em;color:rgba(0,0,0,.87);background-color:#fff}.ui.toast>.content>.header{font-weight:700;color:inherit;margin:0}.ui.toast.info{background-color:#31ccec;color:hsla(0,0%,100%,.9)}.ui.toast.warning{background-color:#f2c037;color:hsla(0,0%,100%,.9)}.ui.toast.success{background-color:#21ba45;color:hsla(0,0%,100%,.9)}.ui.toast.error{background-color:#db2828;color:hsla(0,0%,100%,.9)}.ui.toast.neutral{background-color:#fff;color:rgba(0,0,0,.87)}.ui.toast>i.icon:not(.close){font-size:1.5em}.ui.toast:not(.vertical)>i.icon:not(.close){position:absolute}.ui.toast:not(.vertical)>i.icon:not(.close)+.content{padding-left:3em}.ui.toast:not(.vertical)>.close.icon+.content{padding-left:1.5em}.ui.toast:not(.vertical)>.ui.image{position:absolute}.ui.toast:not(.vertical)>.ui.image.avatar+.content{padding-left:3em;min-height:2em}.ui.toast:not(.vertical)>.ui.image.mini+.content{padding-left:3.4em;min-height:35px}.ui.toast:not(.vertical)>.ui.image.tiny+.content{padding-left:7em;min-height:80px}.ui.toast:not(.vertical)>.ui.image.small+.content{padding-left:12em;min-height:150px}.ui.toast:not(.vertical)>.centered.icon,.ui.toast:not(.vertical)>.centered.image{transform:translateY(-50%);top:50%}.ui.toast:not(.vertical).actions>.centered.image{top:calc(50% - 2em)}.ui.toast:not(.vertical).actions>.centered.icon{top:calc(50% - 1.2em)}.ui.toast.vertical>.close.icon+.content,.ui.toast.vertical>.ui.image+.content,.ui.toast.vertical>i.icon:not(.close)+.content{padding-left:1em}.ui.toast.vertical>.ui.image{align-self:flex-start;flex-shrink:0}.ui.toast.vertical>.centered.icon,.ui.toast.vertical>.centered.image{align-self:center}.ui.toast.attached.bottom{border-top-left-radius:0;border-top-right-radius:0}.ui.toast.attached.top{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.hoverfloating.message:hover{box-shadow:inset 0 0 0 1px,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.center.toast-container .toast-box,.ui.right.toast-container .toast-box{margin-left:auto}.ui.center.toast-container .toast-box{margin-right:auto}.ui.primary.toast{background-color:#2185d0;color:hsla(0,0%,100%,.9)}.ui.inverted.primary.toast,.ui.toast-container .toast-box>.inverted.primary.attached.progress .bar{background-color:#54c8ff;color:rgba(0,0,0,.87)}.ui.secondary.toast{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.secondary.toast,.ui.toast-container .toast-box>.inverted.secondary.attached.progress .bar{background-color:#545454;color:rgba(0,0,0,.87)}.ui.red.toast{background-color:#db2828;color:hsla(0,0%,100%,.9)}.ui.inverted.red.toast,.ui.toast-container .toast-box>.inverted.red.attached.progress .bar{background-color:#ff695e;color:rgba(0,0,0,.87)}.ui.orange.toast{background-color:#f2711c;color:hsla(0,0%,100%,.9)}.ui.inverted.orange.toast,.ui.toast-container .toast-box>.inverted.orange.attached.progress .bar{background-color:#ff851b;color:rgba(0,0,0,.87)}.ui.yellow.toast{background-color:#fbbd08;color:hsla(0,0%,100%,.9)}.ui.inverted.yellow.toast,.ui.toast-container .toast-box>.inverted.yellow.attached.progress .bar{background-color:#ffe21f;color:rgba(0,0,0,.87)}.ui.olive.toast{background-color:#b5cc18;color:hsla(0,0%,100%,.9)}.ui.inverted.olive.toast,.ui.toast-container .toast-box>.inverted.olive.attached.progress .bar{background-color:#d9e778;color:rgba(0,0,0,.87)}.ui.green.toast{background-color:#21ba45;color:hsla(0,0%,100%,.9)}.ui.inverted.green.toast,.ui.toast-container .toast-box>.inverted.green.attached.progress .bar{background-color:#2ecc40;color:rgba(0,0,0,.87)}.ui.teal.toast{background-color:#00b5ad;color:hsla(0,0%,100%,.9)}.ui.inverted.teal.toast,.ui.toast-container .toast-box>.inverted.teal.attached.progress .bar{background-color:#6dffff;color:rgba(0,0,0,.87)}.ui.blue.toast{background-color:#2185d0;color:hsla(0,0%,100%,.9)}.ui.inverted.blue.toast,.ui.toast-container .toast-box>.inverted.blue.attached.progress .bar{background-color:#54c8ff;color:rgba(0,0,0,.87)}.ui.violet.toast{background-color:#6435c9;color:hsla(0,0%,100%,.9)}.ui.inverted.violet.toast,.ui.toast-container .toast-box>.inverted.violet.attached.progress .bar{background-color:#a291fb;color:rgba(0,0,0,.87)}.ui.purple.toast{background-color:#a333c8;color:hsla(0,0%,100%,.9)}.ui.inverted.purple.toast,.ui.toast-container .toast-box>.inverted.purple.attached.progress .bar{background-color:#dc73ff;color:rgba(0,0,0,.87)}.ui.pink.toast{background-color:#e03997;color:hsla(0,0%,100%,.9)}.ui.inverted.pink.toast,.ui.toast-container .toast-box>.inverted.pink.attached.progress .bar{background-color:#ff8edf;color:rgba(0,0,0,.87)}.ui.brown.toast{background-color:#a5673f;color:hsla(0,0%,100%,.9)}.ui.inverted.brown.toast,.ui.toast-container .toast-box>.inverted.brown.attached.progress .bar{background-color:#d67c1c;color:rgba(0,0,0,.87)}.ui.grey.toast{background-color:#767676;color:hsla(0,0%,100%,.9)}.ui.inverted.grey.toast,.ui.toast-container .toast-box>.inverted.grey.attached.progress .bar{background-color:#dcddde;color:rgba(0,0,0,.87)}.ui.black.toast{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.black.toast,.ui.toast-container .toast-box>.inverted.black.attached.progress .bar{background-color:#545454;color:rgba(0,0,0,.87)}.ui.inverted.toast{color:hsla(0,0%,100%,.9);background-color:#1b1c1d}@media only screen and (max-width:420px){.ui.toast-container .toast-box.toast-box,.ui.toast-container .toast-box>*,.ui.toast-container .toast-box>.compact,.ui.toast-container .toast-box>.vertical>*{width:auto;max-width:100%}.ui.toast-container .toast-box>:not(.vertical){min-width:280px}.ui.toast-container .toast-box>.ui.card.horizontal,.ui.toast-container .toast-box>.vertical>.ui.horizontal.card{min-width:0}}@-webkit-keyframes progressDown{0%{width:100%}to{width:0}}@keyframes progressDown{0%{width:100%}to{width:0}}@-webkit-keyframes progressUp{0%{width:0}to{width:100%}}@keyframes progressUp{0%{width:0}to{width:100%}}@-webkit-keyframes progressWait{0%{opacity:1}to{opacity:0}}@keyframes progressWait{0%{opacity:1}to{opacity:0}}
+
+/*!
+ * # Fomantic-UI - Transition
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}.drop.transition{transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0deg);opacity:1}}@keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0deg);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0deg);opacity:1}}@keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0deg);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0deg);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0deg);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0deg);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0deg);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@-webkit-keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:right center}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:left center}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:right center}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:left center}@-webkit-keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:right center}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:left center}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:right center}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:left center}@-webkit-keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0deg)}}@keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0deg)}}@-webkit-keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0deg)}}@keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0deg)}}@-webkit-keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0deg)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0deg)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0deg)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0deg)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@-webkit-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.7}to{transform:scale(1);opacity:1}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.7}to{transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@media only screen and (max-width:767px){body#imagine-app [class*="computer only"]:not(.mobile),body#imagine-app [class*="large monitor only"]:not(.mobile),body#imagine-app [class*="mobile hidden"],body#imagine-app [class*="or lower hidden"],body#imagine-app [class*="tablet only"]:not(.mobile),body#imagine-app [class*="widescreen monitor only"]:not(.mobile){display:none!important}body#imagine-app table td>a:first-child{display:block;margin:-.75em 0;padding:.75em 0}body#imagine-app .ui.icon.input{width:100%;margin-top:.5em}}@media only screen and (min-width:768px)and (max-width:991px){body#imagine-app [class*="computer only"]:not(.tablet),body#imagine-app [class*="large monitor only"]:not(.tablet),body#imagine-app [class*="mobile only"]:not(.tablet),body#imagine-app [class*="or lower hidden"]:not(.mobile),body#imagine-app [class*="tablet hidden"],body#imagine-app [class*="widescreen monitor only"]:not(.tablet){display:none!important}}@media only screen and (min-width:992px)and (max-width:1199px){body#imagine-app [class*="computer hidden"],body#imagine-app [class*="large monitor only"]:not(.computer),body#imagine-app [class*="mobile only"]:not(.computer),body#imagine-app [class*="or lower hidden"]:not(.tablet):not(.mobile),body#imagine-app [class*="tablet only"]:not(.computer),body#imagine-app [class*="widescreen monitor only"]:not(.computer){display:none!important}}@media only screen and (min-width:1200px)and (max-width:1919px){body#imagine-app [class*="computer only"]:not([class*="large monitor"]),body#imagine-app [class*="large monitor hidden"],body#imagine-app [class*="mobile only"]:not([class*="large monitor"]),body#imagine-app [class*="or lower hidden"]:not(.computer):not(.tablet):not(.mobile),body#imagine-app [class*="tablet only"]:not([class*="large monitor"]),body#imagine-app [class*="widescreen monitor only"]:not([class*="large monitor"]){display:none!important}}@media only screen and (min-width:1920px){body#imagine-app [class*="computer only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="large monitor only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="mobile only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="tablet only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="widescreen monitor hidden"],body#imagine-app [class*="widescreen monitor or lower hidden"]{display:none!important}}body{margin:0;padding:0}.Imagine-Toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:10000;width:100%;padding:8px 10px;box-sizing:border-box;background-color:#eaeaea}.Imagine-Toolbar-Content{position:relative;margin:0 auto;display:flex}.Imagine-Toolbar-Content *{flex:0 1 auto;display:inline-block;margin:0 0 0 4px}.Imagine-Toolbar-Content :first-child{margin-left:none}.Imagine-Toolbar-Content a{box-sizing:border-box;height:27px;font-size:16px;line-height:20px;padding:5px 16px 4px;text-decoration:none;font-family:sans-serif;font-weight:400;color:#eee;background-color:#777;border-radius:4px}.Imagine-Toolbar-Content select{box-sizing:border-box;height:27px;width:200px;padding:0 24px 0 5px;background-color:#f0f0f0;border-radius:4px;font-size:14px;border:1px solid #aaa;box-shadow:0 1px 0 1px rgba(0,0,0,.04);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"),linear-gradient(180deg,#fff 0,#e5e5e5);background-repeat:no-repeat,repeat;background-position:right 8px top 50%,0 0;background-size:.65em auto,100%}.Imagine-Toolbar-Content select.old-version{border:1px solid red}#Imagine-Edit-Page-Content-Button,#Imagine-Save-Page-Content-Button{color:#ddd;background-color:#444;font-weight:700;padding-left:24px;padding-right:24px}#Imagine-Logout-Button{position:absolute;top:0;right:0;box-sizing:border-box;height:27px;padding-top:4px}.Imagine-Toolbar-Content a:hover{color:#fff;background-color:#888}.ui.dimmer{z-index:10000!important}.ui.toast-container.top.right{top:50px!important;right:10px!important}#Imagine-Properties-Modal{font-family:sans-serif;font-size:14px}#Imagine-Properties-Modal *{box-sizing:border-box}#Imagine-Properties-Modal .close{top:.25rem;right:.15rem}#Imagine-Properties-Modal .header{line-height:1.1;padding:.9rem 1.5rem}#Imagine-Properties-Modal .content{max-height:67vh;overflow:scroll}#Imagine-Properties-Modal .fields.flex .field{flex:1 1 auto}.Imagine-CmsPageObject-TextEditor .CodeMirror{font-size:14px}.Imagine-CmsPageObject-TextEditor .arx-top-container{position:fixed;top:45px;left:0;z-index:10000;border:1px solid #aaa;border-width:0 1px 1px 0}.Imagine-CmsPageObject-TextEditor .arx-top-container .arx-toolbar-container{display:none;position:relative}.arx-tooltip{position:absolute;z-index:10001}#Imagine-RTE-Toolbar{padding:10px 0 0 4px}.re-button-tooltip,.redactor-dropdown{z-index:10001}.Imagine-CmsPageObject-TextEditor .note-editor.note-frame{border:2px dashed grey}.note-modal{top:105px!important}.note-modal .note-modal-header{padding-top:14px}.note-modal .note-modal-header button.close{margin-top:1px}.note-modal .note-modal-body{max-height:calc(85vh - 225px);overflow:scroll}.note-modal .note-imageAttributes-height,.note-modal .note-imageAttributes-width{width:100px!important}@media only screen and (max-width:788px){#Imagine-Logout-Button{display:none}.Imagine-Toolbar-Content select{max-width:82px}}@media only screen and (max-width:461px){.Imagine-Toolbar{padding:10px 5px}.Imagine-Toolbar-Content a{padding:4px 6px 2px;font-size:13px}.Imagine-Toolbar-Content #Imagine-Edit-Page-Content-Button{padding:4px 12px 2px}#Imagine-Properties-Modal .fields.flex{flex-wrap:wrap}}
\ No newline at end of file
diff --git a/priv/static/css/manage.css b/priv/static/css/manage.css
new file mode 100644
index 0000000..49eeca1
--- /dev/null
+++ b/priv/static/css/manage.css
@@ -0,0 +1,386 @@
+@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin&display=swap);.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}/*!
+ * # Fomantic-UI - Reset
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */*,:after,:before{box-sizing:inherit}html{box-sizing:border-box}input[type=email],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;-moz-appearance:none}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}/*!
+ * # Fomantic-UI - Site
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */body,html{height:100%}html{font-size:14px}body{margin:0;overflow-x:hidden;min-width:320px;background:#fff;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87)}body,h1,h2,h3,h4,h5{padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}h1,h2,h3,h4,h5{line-height:1.28571429em;margin:calc(2rem - .14286em) 0 1rem;font-weight:700}h1{min-height:1rem;font-size:2rem}h2{font-size:1.71428571rem}h3{font-size:1.28571429rem}h4{font-size:1.07142857rem}h5{font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.4285em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#4183c4}a,a:hover{text-decoration:none}a:hover{color:#1e70bf}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}body ::-webkit-scrollbar{-webkit-appearance:none;width:10px;height:10px}body ::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}body ::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:rgba(0,0,0,.25);-webkit-transition:color .2s ease;transition:color .2s ease}body ::-webkit-scrollbar-thumb:window-inactive{background:rgba(0,0,0,.15)}body ::-webkit-scrollbar-thumb:hover{background:rgba(128,135,139,.8)}body .ui.inverted:not(.dimmer)::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}/*!
+ * # Fomantic-UI - Button
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.button{cursor:pointer;display:inline-block;min-height:1em;outline:0;border:none;vertical-align:baseline;background:#e0e1e2 none;color:rgba(0,0,0,.6);font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 .25em 0 0;padding:.78571429em 1.5em;text-transform:none;text-shadow:none;font-weight:700;line-height:1em;font-style:normal;text-align:center;text-decoration:none;border-radius:.28571429rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;will-change:auto;-webkit-tap-highlight-color:transparent}.ui.button,.ui.button:hover{box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.button:hover{background-color:#cacbcd;background-image:none;color:rgba(0,0,0,.8)}.ui.button:hover .icon{opacity:.85}.ui.button:focus{background-color:#cacbcd;color:rgba(0,0,0,.8);background-image:none;box-shadow:""}.ui.button:focus .icon{opacity:.85}.ui.active.button:active,.ui.button:active{background-color:#babbbc;background-image:"";color:rgba(0,0,0,.9);box-shadow:inset 0 0 0 1px transparent,none}.ui.active.button{box-shadow:inset 0 0 0 1px transparent}.ui.active.button,.ui.active.button:hover{color:rgba(0,0,0,.95)}.ui.active.button,.ui.active.button:active,.ui.active.button:hover{background-color:#c0c1c2;background-image:none}.ui.loading.loading.loading.loading.loading.loading.button{position:relative;cursor:default;text-shadow:none!important;color:transparent;opacity:1;pointer-events:auto;transition:all 0s linear,opacity .1s ease}.ui.loading.button:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}.ui.loading.button:after,.ui.loading.button:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.button:after{border-radius:500rem;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid;color:#fff;box-shadow:0 0 0 1px transparent}.ui.labeled.icon.loading.button .icon{background-color:transparent;box-shadow:none}.ui.basic.loading.button:not(.inverted):before{border-color:rgba(0,0,0,.1)}.ui.basic.loading.button:not(.inverted):after{border-color:#767676}.ui.button:disabled,.ui.buttons .disabled.button:not(.basic),.ui.disabled.active.button,.ui.disabled.button,.ui.disabled.button:hover{cursor:default;opacity:.45!important;background-image:none;box-shadow:none;pointer-events:none!important}.ui.basic.buttons .ui.disabled.button{border-color:rgba(34,36,38,.5)}.ui.animated.button{position:relative;overflow:hidden;padding-right:0!important;vertical-align:middle;z-index:1}.ui.animated.button .content{will-change:transform,opacity}.ui.animated.button .visible.content{position:relative;margin-right:1.5em}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .hidden.content,.ui.animated.button .visible.content{transition:right .3s ease 0s}.ui.animated.button .visible.content{left:auto;right:0}.ui.animated.button .hidden.content{top:50%;left:auto;right:-100%;margin-top:-.5em}.ui.animated.button:focus .visible.content,.ui.animated.button:hover .visible.content{left:auto;right:200%}.ui.animated.button:focus .hidden.content,.ui.animated.button:hover .hidden.content{left:auto;right:0}.ui.vertical.animated.button .hidden.content,.ui.vertical.animated.button .visible.content{transition:top .3s ease,transform .3s ease}.ui.vertical.animated.button .visible.content{transform:translateY(0);right:auto}.ui.vertical.animated.button .hidden.content{top:-50%;left:0;right:auto}.ui.vertical.animated.button:focus .visible.content,.ui.vertical.animated.button:hover .visible.content{transform:translateY(200%);right:auto}.ui.vertical.animated.button:focus .hidden.content,.ui.vertical.animated.button:hover .hidden.content{top:50%;right:auto}.ui.fade.animated.button .hidden.content,.ui.fade.animated.button .visible.content{transition:opacity .3s ease,transform .3s ease}.ui.fade.animated.button .visible.content{left:auto;right:auto;opacity:1;transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;left:0;right:auto;transform:scale(1.5)}.ui.fade.animated.button:focus .visible.content,.ui.fade.animated.button:hover .visible.content{left:auto;right:auto;opacity:0;transform:scale(.75)}.ui.fade.animated.button:focus .hidden.content,.ui.fade.animated.button:hover .hidden.content{left:0;right:auto;opacity:1;transform:scale(1)}.ui.inverted.button{box-shadow:inset 0 0 0 2px #fff;background:transparent none;color:#fff;text-shadow:none!important}.ui.inverted.buttons .button{margin:0 0 0 -2px}.ui.inverted.buttons .button:first-child{margin-left:0}.ui.inverted.vertical.buttons .button{margin:0 0 -2px}.ui.inverted.vertical.buttons .button:first-child{margin-top:0}.ui.inverted.button.active,.ui.inverted.button:focus,.ui.inverted.button:hover{background:#fff;box-shadow:inset 0 0 0 2px #fff;color:rgba(0,0,0,.8)}.ui.inverted.button.active:focus{background:#dcddde;box-shadow:inset 0 0 0 2px #dcddde;color:rgba(0,0,0,.8)}.ui.labeled.button:not(.icon){display:inline-flex;flex-direction:row;background:0 0;padding:0!important;border:none;box-shadow:none}.ui.labeled.button>.button{margin:0}.ui.labeled.button>.label{display:flex;align-items:center;margin:0 0 0 -1px!important;font-size:1em;padding:"";border-color:rgba(34,36,38,.15)}.ui.labeled.button>.tag.label:before{width:1.85em;height:1.85em}.ui.labeled.button:not([class*="left labeled"])>.button{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.button:not([class*="left labeled"])>.label,.ui[class*="left labeled"].button>.button{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="left labeled"].button>.label{border-top-right-radius:0;border-bottom-right-radius:0}.ui.facebook.button{background-color:#3b5998;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.facebook.button:hover{background-color:#304d8a;color:#fff;text-shadow:none}.ui.facebook.button:active{background-color:#2d4373;color:#fff;text-shadow:none}.ui.twitter.button{background-color:#1da1f2;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.twitter.button:hover{background-color:#0298f3;color:#fff;text-shadow:none}.ui.twitter.button:active{background-color:#0c85d0;color:#fff;text-shadow:none}.ui.google.plus.button{background-color:#dd4b39;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.google.plus.button:hover{background-color:#e0321c;color:#fff;text-shadow:none}.ui.google.plus.button:active{background-color:#c23321;color:#fff;text-shadow:none}.ui.linkedin.button{background-color:#0077b5;color:#fff;text-shadow:none}.ui.linkedin.button:hover{background-color:#00669c;color:#fff;text-shadow:none}.ui.linkedin.button:active{background-color:#005582;color:#fff;text-shadow:none}.ui.youtube.button{background-color:red;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.youtube.button:hover{background-color:#e60000;color:#fff;text-shadow:none}.ui.youtube.button:active{background-color:#c00;color:#fff;text-shadow:none}.ui.instagram.button{background-color:#49769c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.instagram.button:hover{background-color:#3d698e;color:#fff;text-shadow:none}.ui.instagram.button:active{background-color:#395c79;color:#fff;text-shadow:none}.ui.pinterest.button{background-color:#bd081c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pinterest.button:hover{background-color:#ac0013;color:#fff;text-shadow:none}.ui.pinterest.button:active{background-color:#8c0615;color:#fff;text-shadow:none}.ui.vk.button{background-color:#45668e;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.vk.button:hover{background-color:#395980;color:#fff}.ui.vk.button:active{background-color:#344d6c;color:#fff}.ui.whatsapp.button{background-color:#25d366;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.whatsapp.button:hover{background-color:#19c55a;color:#fff}.ui.whatsapp.button:active{background-color:#1da851;color:#fff}.ui.telegram.button{background-color:#08c;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.telegram.button:hover{background-color:#0077b3;color:#fff}.ui.telegram.button:active{background-color:#069;color:#fff}.ui.button>.icon:not(.button){height:auto;opacity:.8;transition:opacity .1s ease;color:""}.ui.button:not(.icon)>.icon:not(.button):not(.dropdown),.ui.button:not(.icon)>.icons:not(.button):not(.dropdown){margin:0 .42857143em 0 -.21428571em;vertical-align:baseline}.ui.button:not(.icon)>.icons:not(.button):not(.dropdown)>.icon{vertical-align:baseline}.ui.button:not(.icon)>.right.icon:not(.button):not(.dropdown){margin:0 -.21428571em 0 .42857143em}.ui[class*="left floated"].button,.ui[class*="left floated"].buttons{float:left;margin-left:0;margin-right:.25em}.ui[class*="right floated"].button,.ui[class*="right floated"].buttons{float:right;margin-right:0;margin-left:.25em}.ui.compact.button,.ui.compact.buttons .button{padding:.58928571em 1.125em}.ui.compact.icon.button,.ui.compact.icon.buttons .button{padding:.58928571em}.ui.compact.labeled.icon.button,.ui.compact.labeled.icon.buttons .button{padding:.58928571em 3.69642857em}.ui.compact.labeled.icon.button>.icon,.ui.compact.labeled.icon.buttons .button>.icon{padding:.58928571em 0}.ui.button,.ui.buttons .button,.ui.buttons .or{font-size:1rem}.ui.mini.buttons .button,.ui.mini.buttons .dropdown,.ui.mini.buttons .dropdown .menu>.item,.ui.mini.buttons .or,.ui.ui.ui.ui.mini.button{font-size:.78571429rem}.ui.tiny.buttons .button,.ui.tiny.buttons .dropdown,.ui.tiny.buttons .dropdown .menu>.item,.ui.tiny.buttons .or,.ui.ui.ui.ui.tiny.button{font-size:.85714286rem}.ui.small.buttons .button,.ui.small.buttons .dropdown,.ui.small.buttons .dropdown .menu>.item,.ui.small.buttons .or,.ui.ui.ui.ui.small.button{font-size:.92857143rem}.ui.large.buttons .button,.ui.large.buttons .dropdown,.ui.large.buttons .dropdown .menu>.item,.ui.large.buttons .or,.ui.ui.ui.ui.large.button{font-size:1.14285714rem}.ui.big.buttons .button,.ui.big.buttons .dropdown,.ui.big.buttons .dropdown .menu>.item,.ui.big.buttons .or,.ui.ui.ui.ui.big.button{font-size:1.28571429rem}.ui.huge.buttons .button,.ui.huge.buttons .dropdown,.ui.huge.buttons .dropdown .menu>.item,.ui.huge.buttons .or,.ui.ui.ui.ui.huge.button{font-size:1.42857143rem}.ui.massive.buttons .button,.ui.massive.buttons .dropdown,.ui.massive.buttons .dropdown .menu>.item,.ui.massive.buttons .or,.ui.ui.ui.ui.massive.button{font-size:1.71428571rem}.ui.icon.button:not(.animated):not(.compact),.ui.icon.buttons .button{padding:.78571429em}.ui.animated.icon.button>.content>.icon,.ui.icon.button>.icon,.ui.icon.buttons .button>.icon{opacity:.9;margin:0!important;vertical-align:top}.ui.animated.button>.content>.icon{vertical-align:top}.ui.basic.button,.ui.basic.buttons .button{background:transparent none;color:rgba(0,0,0,.6);font-weight:400;border-radius:.28571429rem;text-transform:none;text-shadow:none!important;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.basic.buttons{box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem}.ui.basic.buttons .button{border-radius:0}.ui.basic.button:focus,.ui.basic.button:hover,.ui.basic.buttons .button:focus,.ui.basic.buttons .button:hover{background:#fff;color:rgba(0,0,0,.8);box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.button:active,.ui.basic.buttons .button:active{background:#f8f8f8;color:rgba(0,0,0,.9);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.active.button,.ui.basic.buttons .active.button{background:rgba(0,0,0,.05);box-shadow:"";color:rgba(0,0,0,.95)}.ui.basic.active.button:hover,.ui.basic.buttons .active.button:hover{background-color:rgba(0,0,0,.05)}.ui.basic.buttons .button:hover{box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.buttons .button:active{box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.buttons .active.button{box-shadow:""}.ui.basic.inverted.button,.ui.basic.inverted.buttons .button{background-color:transparent;color:#f9fafb;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)}.ui.basic.inverted.button:focus,.ui.basic.inverted.button:hover,.ui.basic.inverted.buttons .button:focus,.ui.basic.inverted.buttons .button:hover{color:#fff;box-shadow:inset 0 0 0 2px #fff}.ui.basic.inverted.button:active,.ui.basic.inverted.buttons .button:active{background-color:hsla(0,0%,100%,.08);color:#fff;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.9)}.ui.basic.inverted.active.button,.ui.basic.inverted.buttons .active.button{background-color:hsla(0,0%,100%,.08);color:#fff;text-shadow:none;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.7)}.ui.basic.inverted.active.button:hover,.ui.basic.inverted.buttons .active.button:hover{background-color:hsla(0,0%,100%,.15);box-shadow:inset 0 0 0 2px #fff}.ui.basic.buttons .button{border-left:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.vertical.buttons .button{border-left:0;border-top:1px solid rgba(34,36,38,.15)}.ui.basic.vertical.buttons .button:first-child{border-top-width:0}.ui.tertiary.button{transition:color .1s ease!important;border-radius:0;margin:.28571429em .25em .28571429em 0!important;padding:.5em!important;box-shadow:none;color:rgba(0,0,0,.6);background:0 0}.ui.tertiary.button:focus,.ui.tertiary.button:hover{box-shadow:inset 0 -.2em 0 #666;color:#333;background:0 0}.ui.tertiary.button:active{box-shadow:inset 0 -.2em 0 #999;border-radius:.28571429rem .28571429rem 0 0;color:#666;background:0 0}.ui.labeled.icon.button,.ui.labeled.icon.buttons .button{position:relative;padding-left:4.07142857em!important;padding-right:1.5em!important}.ui.labeled.icon.button>.icon,.ui.labeled.icon.buttons>.button>.icon{position:absolute;top:0;left:0;height:100%;line-height:1;border-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit;text-align:center;-webkit-animation:none;animation:none;padding:.78571429em 0;margin:0;width:2.57142857em;background-color:rgba(0,0,0,.05);color:"";box-shadow:inset -1px 0 0 0 transparent}.ui[class*="right labeled"].icon.button{padding-right:4.07142857em!important;padding-left:1.5em!important}.ui[class*="right labeled"].icon.button>.icon{left:auto;right:0;border-radius:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit;box-shadow:inset 1px 0 0 0 transparent}.ui.labeled.icon.button>.icon:after,.ui.labeled.icon.button>.icon:before,.ui.labeled.icon.buttons>.button>.icon:after,.ui.labeled.icon.buttons>.button>.icon:before{display:block;position:relative;width:100%;top:0;text-align:center}.ui.labeled.icon.buttons .button>.icon{border-radius:0}.ui.labeled.icon.buttons .button:first-child>.icon{border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-left-radius:.28571429rem}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-left-radius:.28571429rem}.ui.labeled.icon.button>.loading.icon:before{-webkit-animation:loader 2s linear infinite;animation:loader 2s linear infinite}.ui.button.toggle.active,.ui.buttons .button.toggle.active,.ui.toggle.buttons .active.button{background-color:#21ba45;box-shadow:none;text-shadow:none;color:#fff}.ui.button.toggle.active:hover{background-color:#16ab39;text-shadow:none;color:#fff}.ui.circular.button{border-radius:10em}.ui.circular.button>.icon{width:1em;vertical-align:baseline}.ui.buttons .or{position:relative;width:.3em;height:2.57142857em;z-index:3}.ui.buttons .or:before{position:absolute;text-align:center;border-radius:500rem;content:"or";top:50%;left:50%;background-color:#fff;text-shadow:none;margin-top:-.89285714em;margin-left:-.89285714em;width:1.78571429em;height:1.78571429em;line-height:1.78571429em;color:rgba(0,0,0,.4);font-style:normal;font-weight:700;box-shadow:inset 0 0 0 1px transparent}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.ui.attached.button{position:relative;display:block;margin:0;border-radius:0;box-shadow:0 0 0 1px rgba(34,36,38,.15)}.ui.attached.top.button{border-radius:.28571429rem .28571429rem 0 0}.ui.attached.bottom.button{border-radius:0 0 .28571429rem .28571429rem}.ui.left.attached.button{display:inline-block;border-left:none;text-align:right;padding-right:.75em;border-radius:.28571429rem 0 0 .28571429rem}.ui.right.attached.button{display:inline-block;text-align:left;padding-left:.75em;border-radius:0 .28571429rem .28571429rem 0}.ui.attached.buttons{position:relative;display:flex;border-radius:0;width:auto!important;z-index:auto;margin-left:-1px;margin-right:-1px}.ui.attached.buttons .button{margin:0}.ui.attached.buttons .button:first-child,.ui.attached.buttons .button:last-child{border-radius:0}.ui[class*="top attached"].buttons{margin-bottom:-1px;border-radius:.28571429rem .28571429rem 0 0}.ui[class*="top attached"].buttons .button:first-child{border-radius:.28571429rem 0 0 0}.ui[class*="top attached"].buttons .button:last-child{border-radius:0 .28571429rem 0 0}.ui[class*="bottom attached"].buttons{margin-top:-1px;border-radius:0 0 .28571429rem .28571429rem}.ui[class*="bottom attached"].buttons .button:first-child{border-radius:0 0 0 .28571429rem}.ui[class*="bottom attached"].buttons .button:last-child{border-radius:0 0 .28571429rem 0}.ui[class*="left attached"].buttons{display:inline-flex;margin-right:0;margin-left:-1px;border-radius:0 .28571429rem .28571429rem 0}.ui[class*="left attached"].buttons .button:first-child{margin-left:-1px;border-radius:0 .28571429rem 0 0}.ui[class*="left attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 .28571429rem 0}.ui[class*="right attached"].buttons{display:inline-flex;margin-left:0;margin-right:-1px;border-radius:.28571429rem 0 0 .28571429rem}.ui[class*="right attached"].buttons .button:first-child{margin-left:-1px;border-radius:.28571429rem 0 0 0}.ui[class*="right attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 0 .28571429rem}.ui.fluid.button,.ui.fluid.buttons{width:100%}.ui.fluid.button{display:block}.ui.two.buttons{width:100%}.ui.two.buttons>.button{width:50%}.ui.three.buttons{width:100%}.ui.three.buttons>.button{width:33.333%}.ui.four.buttons{width:100%}.ui.four.buttons>.button{width:25%}.ui.five.buttons{width:100%}.ui.five.buttons>.button{width:20%}.ui.six.buttons{width:100%}.ui.six.buttons>.button{width:16.666%}.ui.seven.buttons{width:100%}.ui.seven.buttons>.button{width:14.285%}.ui.eight.buttons{width:100%}.ui.eight.buttons>.button{width:12.5%}.ui.nine.buttons{width:100%}.ui.nine.buttons>.button{width:11.11%}.ui.ten.buttons{width:100%}.ui.ten.buttons>.button{width:10%}.ui.eleven.buttons{width:100%}.ui.eleven.buttons>.button{width:9.09%}.ui.twelve.buttons{width:100%}.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:flex;width:auto;justify-content:center}.ui.two.vertical.buttons>.button{height:50%}.ui.three.vertical.buttons>.button{height:33.333%}.ui.four.vertical.buttons>.button{height:25%}.ui.five.vertical.buttons>.button{height:20%}.ui.six.vertical.buttons>.button{height:16.666%}.ui.seven.vertical.buttons>.button{height:14.285%}.ui.eight.vertical.buttons>.button{height:12.5%}.ui.nine.vertical.buttons>.button{height:11.11%}.ui.ten.vertical.buttons>.button{height:10%}.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.primary.button,.ui.primary.buttons .button{background-color:#2185d0;color:#fff;text-shadow:none;background-image:none}.ui.primary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.primary.button:hover,.ui.primary.buttons .button:hover{background-color:#1678c2;color:#fff;text-shadow:none}.ui.primary.button:focus,.ui.primary.buttons .button:focus{background-color:#0d71bb;color:#fff;text-shadow:none}.ui.primary.button:active,.ui.primary.buttons .button:active{background-color:#1a69a4;color:#fff;text-shadow:none}.ui.primary.active.button,.ui.primary.button .active.button:active,.ui.primary.buttons .active.button,.ui.primary.buttons .active.button:active{background-color:#1279c6;color:#fff;text-shadow:none}.ui.basic.primary.button,.ui.basic.primary.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #2185d0;color:#2185d0}.ui.basic.primary.button:hover,.ui.basic.primary.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #1678c2;color:#1678c2}.ui.basic.primary.button:focus,.ui.basic.primary.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #0d71bb;color:#1678c2}.ui.basic.primary.active.button,.ui.basic.primary.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #1279c6;color:#1a69a4}.ui.basic.primary.button:active,.ui.basic.primary.buttons .button:active{box-shadow:inset 0 0 0 1px #1a69a4;color:#1a69a4}.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child){margin-left:-1px}.ui.inverted.primary.button,.ui.inverted.primary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #54c8ff;color:#54c8ff}.ui.inverted.primary.button.active,.ui.inverted.primary.button:active,.ui.inverted.primary.button:focus,.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button.active,.ui.inverted.primary.buttons .button:active,.ui.inverted.primary.buttons .button:focus,.ui.inverted.primary.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button:hover{background-color:#21b8ff}.ui.inverted.primary.button:focus,.ui.inverted.primary.buttons .button:focus{background-color:#2bbbff}.ui.inverted.primary.active.button,.ui.inverted.primary.buttons .active.button{background-color:#3ac0ff}.ui.inverted.primary.button:active,.ui.inverted.primary.buttons .button:active{background-color:#21b8ff}.ui.inverted.primary.basic.button,.ui.inverted.primary.basic.buttons .button,.ui.inverted.primary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.primary.basic.button:hover,.ui.inverted.primary.basic.buttons .button:hover,.ui.inverted.primary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.inverted.primary.basic.button:focus,.ui.inverted.primary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #2bbbff;color:#54c8ff}.ui.inverted.primary.basic.active.button,.ui.inverted.primary.basic.buttons .active.button,.ui.inverted.primary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3ac0ff;color:#54c8ff}.ui.inverted.primary.basic.button:active,.ui.inverted.primary.basic.buttons .button:active,.ui.inverted.primary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.tertiary.primary.button,.ui.tertiary.primary.buttons .button,.ui.tertiary.primary.buttons .tertiary.button{background:0 0;box-shadow:none;color:#2185d0}.ui.tertiary.primary.button:hover,.ui.tertiary.primary.buttons .button:hover,.ui.tertiary.primary.buttons button:hover{box-shadow:inset 0 -.2em 0 #2b75ac;color:#2b75ac}.ui.tertiary.primary.button:focus,.ui.tertiary.primary.buttons .button:focus,.ui.tertiary.primary.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #216ea7;color:#216ea7}.ui.tertiary.primary.active.button,.ui.tertiary.primary.button:active,.ui.tertiary.primary.buttons .active.button,.ui.tertiary.primary.buttons .button:active,.ui.tertiary.primary.buttons .tertiary.active.button,.ui.tertiary.primary.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #007bd8;color:#1279c6}.ui.secondary.button,.ui.secondary.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.secondary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.secondary.button:hover,.ui.secondary.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.secondary.button:focus,.ui.secondary.buttons .button:focus{background-color:#2e3032;color:#fff;text-shadow:none}.ui.secondary.button:active,.ui.secondary.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.secondary.active.button,.ui.secondary.button .active.button:active,.ui.secondary.buttons .active.button,.ui.secondary.buttons .active.button:active{background-color:#27292a;color:#fff;text-shadow:none}.ui.basic.secondary.button,.ui.basic.secondary.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #1b1c1d;color:#1b1c1d}.ui.basic.secondary.button:hover,.ui.basic.secondary.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #27292a;color:#27292a}.ui.basic.secondary.button:focus,.ui.basic.secondary.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #2e3032;color:#27292a}.ui.basic.secondary.active.button,.ui.basic.secondary.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #27292a;color:#343637}.ui.basic.secondary.button:active,.ui.basic.secondary.buttons .button:active{box-shadow:inset 0 0 0 1px #343637;color:#343637}.ui.buttons:not(.vertical)>.basic.secondary.button:not(:first-child){margin-left:-1px}.ui.inverted.secondary.button,.ui.inverted.secondary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #545454;color:#545454}.ui.inverted.secondary.button.active,.ui.inverted.secondary.button:active,.ui.inverted.secondary.button:focus,.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button.active,.ui.inverted.secondary.buttons .button:active,.ui.inverted.secondary.buttons .button:focus,.ui.inverted.secondary.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button:hover{background-color:#6e6e6e}.ui.inverted.secondary.button:focus,.ui.inverted.secondary.buttons .button:focus{background-color:#686868}.ui.inverted.secondary.active.button,.ui.inverted.secondary.buttons .active.button{background-color:#616161}.ui.inverted.secondary.button:active,.ui.inverted.secondary.buttons .button:active{background-color:#6e6e6e}.ui.inverted.secondary.basic.button,.ui.inverted.secondary.basic.buttons .button,.ui.inverted.secondary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.secondary.basic.button:hover,.ui.inverted.secondary.basic.buttons .button:hover,.ui.inverted.secondary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #6e6e6e;color:#545454}.ui.inverted.secondary.basic.button:focus,.ui.inverted.secondary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #686868;color:#545454}.ui.inverted.secondary.basic.active.button,.ui.inverted.secondary.basic.buttons .active.button,.ui.inverted.secondary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #616161;color:#545454}.ui.inverted.secondary.basic.button:active,.ui.inverted.secondary.basic.buttons .button:active,.ui.inverted.secondary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #6e6e6e;color:#545454}.ui.tertiary.secondary.button,.ui.tertiary.secondary.buttons .button,.ui.tertiary.secondary.buttons .tertiary.button{background:0 0;box-shadow:none;color:#1b1c1d}.ui.tertiary.secondary.button:hover,.ui.tertiary.secondary.buttons .button:hover,.ui.tertiary.secondary.buttons button:hover{box-shadow:inset 0 -.2em 0 #292929;color:#292929}.ui.tertiary.secondary.button:focus,.ui.tertiary.secondary.buttons .button:focus,.ui.tertiary.secondary.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #303030;color:#303030}.ui.tertiary.secondary.active.button,.ui.tertiary.secondary.button:active,.ui.tertiary.secondary.buttons .active.button,.ui.tertiary.secondary.buttons .button:active,.ui.tertiary.secondary.buttons .tertiary.active.button,.ui.tertiary.secondary.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #1f2933;color:#27292a}.ui.red.button,.ui.red.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.red.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.red.button:hover,.ui.red.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.red.button:focus,.ui.red.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.red.button:active,.ui.red.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.red.active.button,.ui.red.button .active.button:active,.ui.red.buttons .active.button,.ui.red.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.red.button,.ui.basic.red.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #db2828;color:#db2828}.ui.basic.red.button:hover,.ui.basic.red.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #d01919;color:#d01919}.ui.basic.red.button:focus,.ui.basic.red.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #ca1010;color:#d01919}.ui.basic.red.active.button,.ui.basic.red.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #d41515;color:#b21e1e}.ui.basic.red.button:active,.ui.basic.red.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e;color:#b21e1e}.ui.buttons:not(.vertical)>.basic.red.button:not(:first-child){margin-left:-1px}.ui.inverted.red.button,.ui.inverted.red.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff695e;color:#ff695e}.ui.inverted.red.button.active,.ui.inverted.red.button:active,.ui.inverted.red.button:focus,.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button.active,.ui.inverted.red.buttons .button:active,.ui.inverted.red.buttons .button:focus,.ui.inverted.red.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button:hover{background-color:#ff392b}.ui.inverted.red.button:focus,.ui.inverted.red.buttons .button:focus{background-color:#ff4335}.ui.inverted.red.active.button,.ui.inverted.red.buttons .active.button{background-color:#ff5144}.ui.inverted.red.button:active,.ui.inverted.red.buttons .button:active{background-color:#ff392b}.ui.inverted.red.basic.button,.ui.inverted.red.basic.buttons .button,.ui.inverted.red.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.red.basic.button:hover,.ui.inverted.red.basic.buttons .button:hover,.ui.inverted.red.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff392b;color:#ff695e}.ui.inverted.red.basic.button:focus,.ui.inverted.red.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff4335;color:#ff695e}.ui.inverted.red.basic.active.button,.ui.inverted.red.basic.buttons .active.button,.ui.inverted.red.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff5144;color:#ff695e}.ui.inverted.red.basic.button:active,.ui.inverted.red.basic.buttons .button:active,.ui.inverted.red.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff392b;color:#ff695e}.ui.tertiary.red.button,.ui.tertiary.red.buttons .button,.ui.tertiary.red.buttons .tertiary.button{background:0 0;box-shadow:none;color:#db2828}.ui.tertiary.red.button:hover,.ui.tertiary.red.buttons .button:hover,.ui.tertiary.red.buttons button:hover{box-shadow:inset 0 -.2em 0 #b93131;color:#b93131}.ui.tertiary.red.button:focus,.ui.tertiary.red.buttons .button:focus,.ui.tertiary.red.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #b52626;color:#b52626}.ui.tertiary.red.active.button,.ui.tertiary.red.button:active,.ui.tertiary.red.buttons .active.button,.ui.tertiary.red.buttons .button:active,.ui.tertiary.red.buttons .tertiary.active.button,.ui.tertiary.red.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #ea0000;color:#d41515}.ui.orange.button,.ui.orange.buttons .button{background-color:#f2711c;color:#fff;text-shadow:none;background-image:none}.ui.orange.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.orange.button:hover,.ui.orange.buttons .button:hover{background-color:#f26202;color:#fff;text-shadow:none}.ui.orange.button:focus,.ui.orange.buttons .button:focus{background-color:#e55b00;color:#fff;text-shadow:none}.ui.orange.button:active,.ui.orange.buttons .button:active{background-color:#cf590c;color:#fff;text-shadow:none}.ui.orange.active.button,.ui.orange.button .active.button:active,.ui.orange.buttons .active.button,.ui.orange.buttons .active.button:active{background-color:#f56100;color:#fff;text-shadow:none}.ui.basic.orange.button,.ui.basic.orange.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #f2711c;color:#f2711c}.ui.basic.orange.button:hover,.ui.basic.orange.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #f26202;color:#f26202}.ui.basic.orange.button:focus,.ui.basic.orange.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #e55b00;color:#f26202}.ui.basic.orange.active.button,.ui.basic.orange.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #f56100;color:#cf590c}.ui.basic.orange.button:active,.ui.basic.orange.buttons .button:active{box-shadow:inset 0 0 0 1px #cf590c;color:#cf590c}.ui.buttons:not(.vertical)>.basic.orange.button:not(:first-child){margin-left:-1px}.ui.inverted.orange.button,.ui.inverted.orange.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff851b;color:#ff851b}.ui.inverted.orange.button.active,.ui.inverted.orange.button:active,.ui.inverted.orange.button:focus,.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button.active,.ui.inverted.orange.buttons .button:active,.ui.inverted.orange.buttons .button:focus,.ui.inverted.orange.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button:hover{background-color:#e76b00}.ui.inverted.orange.button:focus,.ui.inverted.orange.buttons .button:focus{background-color:#f17000}.ui.inverted.orange.active.button,.ui.inverted.orange.buttons .active.button{background-color:#ff7701}.ui.inverted.orange.button:active,.ui.inverted.orange.buttons .button:active{background-color:#e76b00}.ui.inverted.orange.basic.button,.ui.inverted.orange.basic.buttons .button,.ui.inverted.orange.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.orange.basic.button:hover,.ui.inverted.orange.basic.buttons .button:hover,.ui.inverted.orange.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #e76b00;color:#ff851b}.ui.inverted.orange.basic.button:focus,.ui.inverted.orange.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f17000;color:#ff851b}.ui.inverted.orange.basic.active.button,.ui.inverted.orange.basic.buttons .active.button,.ui.inverted.orange.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff7701;color:#ff851b}.ui.inverted.orange.basic.button:active,.ui.inverted.orange.basic.buttons .button:active,.ui.inverted.orange.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #e76b00;color:#ff851b}.ui.tertiary.orange.button,.ui.tertiary.orange.buttons .button,.ui.tertiary.orange.buttons .tertiary.button{background:0 0;box-shadow:none;color:#f2711c}.ui.tertiary.orange.button:hover,.ui.tertiary.orange.buttons .button:hover,.ui.tertiary.orange.buttons button:hover{box-shadow:inset 0 -.2em 0 #da671b;color:#da671b}.ui.tertiary.orange.button:focus,.ui.tertiary.orange.buttons .button:focus,.ui.tertiary.orange.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #ce6017;color:#ce6017}.ui.tertiary.orange.active.button,.ui.tertiary.orange.button:active,.ui.tertiary.orange.buttons .active.button,.ui.tertiary.orange.buttons .button:active,.ui.tertiary.orange.buttons .tertiary.active.button,.ui.tertiary.orange.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #f56100;color:#f56100}.ui.yellow.button,.ui.yellow.buttons .button{background-color:#fbbd08;color:#fff;text-shadow:none;background-image:none}.ui.yellow.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.yellow.button:hover,.ui.yellow.buttons .button:hover{background-color:#eaae00;color:#fff;text-shadow:none}.ui.yellow.button:focus,.ui.yellow.buttons .button:focus{background-color:#daa300;color:#fff;text-shadow:none}.ui.yellow.button:active,.ui.yellow.buttons .button:active{background-color:#cd9903;color:#fff;text-shadow:none}.ui.yellow.active.button,.ui.yellow.button .active.button:active,.ui.yellow.buttons .active.button,.ui.yellow.buttons .active.button:active{background-color:#eaae00;color:#fff;text-shadow:none}.ui.basic.yellow.button,.ui.basic.yellow.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #fbbd08;color:#fbbd08}.ui.basic.yellow.button:hover,.ui.basic.yellow.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #eaae00;color:#eaae00}.ui.basic.yellow.button:focus,.ui.basic.yellow.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #daa300;color:#eaae00}.ui.basic.yellow.active.button,.ui.basic.yellow.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #eaae00;color:#cd9903}.ui.basic.yellow.button:active,.ui.basic.yellow.buttons .button:active{box-shadow:inset 0 0 0 1px #cd9903;color:#cd9903}.ui.buttons:not(.vertical)>.basic.yellow.button:not(:first-child){margin-left:-1px}.ui.inverted.yellow.button,.ui.inverted.yellow.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ffe21f;color:#ffe21f}.ui.inverted.yellow.button.active,.ui.inverted.yellow.button:active,.ui.inverted.yellow.button:focus,.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button.active,.ui.inverted.yellow.buttons .button:active,.ui.inverted.yellow.buttons .button:focus,.ui.inverted.yellow.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button:hover{background-color:#ebcd00}.ui.inverted.yellow.button:focus,.ui.inverted.yellow.buttons .button:focus{background-color:#f5d500}.ui.inverted.yellow.active.button,.ui.inverted.yellow.buttons .active.button{background-color:#ffdf05}.ui.inverted.yellow.button:active,.ui.inverted.yellow.buttons .button:active{background-color:#ebcd00}.ui.inverted.yellow.basic.button,.ui.inverted.yellow.basic.buttons .button,.ui.inverted.yellow.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.yellow.basic.button:hover,.ui.inverted.yellow.basic.buttons .button:hover,.ui.inverted.yellow.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ebcd00;color:#ffe21f}.ui.inverted.yellow.basic.button:focus,.ui.inverted.yellow.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f5d500;color:#ffe21f}.ui.inverted.yellow.basic.active.button,.ui.inverted.yellow.basic.buttons .active.button,.ui.inverted.yellow.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ffdf05;color:#ffe21f}.ui.inverted.yellow.basic.button:active,.ui.inverted.yellow.basic.buttons .button:active,.ui.inverted.yellow.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ebcd00;color:#ffe21f}.ui.tertiary.yellow.button,.ui.tertiary.yellow.buttons .button,.ui.tertiary.yellow.buttons .tertiary.button{background:0 0;box-shadow:none;color:#fbbd08}.ui.tertiary.yellow.button:hover,.ui.tertiary.yellow.buttons .button:hover,.ui.tertiary.yellow.buttons button:hover{box-shadow:inset 0 -.2em 0 #d2a217;color:#d2a217}.ui.tertiary.yellow.button:focus,.ui.tertiary.yellow.buttons .button:focus,.ui.tertiary.yellow.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #c49816;color:#c49816}.ui.tertiary.yellow.active.button,.ui.tertiary.yellow.button:active,.ui.tertiary.yellow.buttons .active.button,.ui.tertiary.yellow.buttons .button:active,.ui.tertiary.yellow.buttons .tertiary.active.button,.ui.tertiary.yellow.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #eaae00;color:#eaae00}.ui.olive.button,.ui.olive.buttons .button{background-color:#b5cc18;color:#fff;text-shadow:none;background-image:none}.ui.olive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.olive.button:hover,.ui.olive.buttons .button:hover{background-color:#a7bd0d;color:#fff;text-shadow:none}.ui.olive.button:focus,.ui.olive.buttons .button:focus{background-color:#a0b605;color:#fff;text-shadow:none}.ui.olive.button:active,.ui.olive.buttons .button:active{background-color:#8d9e13;color:#fff;text-shadow:none}.ui.olive.active.button,.ui.olive.button .active.button:active,.ui.olive.buttons .active.button,.ui.olive.buttons .active.button:active{background-color:#aac109;color:#fff;text-shadow:none}.ui.basic.olive.button,.ui.basic.olive.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #b5cc18;color:#b5cc18}.ui.basic.olive.button:hover,.ui.basic.olive.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #a7bd0d;color:#a7bd0d}.ui.basic.olive.button:focus,.ui.basic.olive.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #a0b605;color:#a7bd0d}.ui.basic.olive.active.button,.ui.basic.olive.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #aac109;color:#8d9e13}.ui.basic.olive.button:active,.ui.basic.olive.buttons .button:active{box-shadow:inset 0 0 0 1px #8d9e13;color:#8d9e13}.ui.buttons:not(.vertical)>.basic.olive.button:not(:first-child){margin-left:-1px}.ui.inverted.olive.button,.ui.inverted.olive.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d9e778;color:#d9e778}.ui.inverted.olive.button.active,.ui.inverted.olive.button:active,.ui.inverted.olive.button:focus,.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button.active,.ui.inverted.olive.buttons .button:active,.ui.inverted.olive.buttons .button:focus,.ui.inverted.olive.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button:hover{background-color:#d2e745}.ui.inverted.olive.button:focus,.ui.inverted.olive.buttons .button:focus{background-color:#daef47}.ui.inverted.olive.active.button,.ui.inverted.olive.buttons .active.button{background-color:#daed59}.ui.inverted.olive.button:active,.ui.inverted.olive.buttons .button:active{background-color:#cddf4d}.ui.inverted.olive.basic.button,.ui.inverted.olive.basic.buttons .button,.ui.inverted.olive.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.olive.basic.button:hover,.ui.inverted.olive.basic.buttons .button:hover,.ui.inverted.olive.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #d2e745;color:#d9e778}.ui.inverted.olive.basic.button:focus,.ui.inverted.olive.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #daef47;color:#d9e778}.ui.inverted.olive.basic.active.button,.ui.inverted.olive.basic.buttons .active.button,.ui.inverted.olive.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #daed59;color:#d9e778}.ui.inverted.olive.basic.button:active,.ui.inverted.olive.basic.buttons .button:active,.ui.inverted.olive.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cddf4d;color:#d9e778}.ui.tertiary.olive.button,.ui.tertiary.olive.buttons .button,.ui.tertiary.olive.buttons .tertiary.button{background:0 0;box-shadow:none;color:#b5cc18}.ui.tertiary.olive.button:hover,.ui.tertiary.olive.buttons .button:hover,.ui.tertiary.olive.buttons button:hover{box-shadow:inset 0 -.2em 0 #98a922;color:#98a922}.ui.tertiary.olive.button:focus,.ui.tertiary.olive.buttons .button:focus,.ui.tertiary.olive.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #92a418;color:#92a418}.ui.tertiary.olive.active.button,.ui.tertiary.olive.button:active,.ui.tertiary.olive.buttons .active.button,.ui.tertiary.olive.buttons .button:active,.ui.tertiary.olive.buttons .tertiary.active.button,.ui.tertiary.olive.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #b1cb00;color:#aac109}.ui.green.button,.ui.green.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.green.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.green.button:hover,.ui.green.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.green.button:focus,.ui.green.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.green.button:active,.ui.green.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.green.active.button,.ui.green.button .active.button:active,.ui.green.buttons .active.button,.ui.green.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.green.button,.ui.basic.green.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #21ba45;color:#21ba45}.ui.basic.green.button:hover,.ui.basic.green.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #16ab39;color:#16ab39}.ui.basic.green.button:focus,.ui.basic.green.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #0ea432;color:#16ab39}.ui.basic.green.active.button,.ui.basic.green.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #13ae38;color:#198f35}.ui.basic.green.button:active,.ui.basic.green.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35;color:#198f35}.ui.buttons:not(.vertical)>.basic.green.button:not(:first-child){margin-left:-1px}.ui.inverted.green.button,.ui.inverted.green.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #2ecc40;color:#2ecc40}.ui.inverted.green.button.active,.ui.inverted.green.button:active,.ui.inverted.green.button:focus,.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button.active,.ui.inverted.green.buttons .button:active,.ui.inverted.green.buttons .button:focus,.ui.inverted.green.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button:hover{background-color:#1ea92e}.ui.inverted.green.button:focus,.ui.inverted.green.buttons .button:focus{background-color:#19b82b}.ui.inverted.green.active.button,.ui.inverted.green.buttons .active.button{background-color:#1fc231}.ui.inverted.green.button:active,.ui.inverted.green.buttons .button:active{background-color:#25a233}.ui.inverted.green.basic.button,.ui.inverted.green.basic.buttons .button,.ui.inverted.green.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.green.basic.button:hover,.ui.inverted.green.basic.buttons .button:hover,.ui.inverted.green.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #1ea92e;color:#2ecc40}.ui.inverted.green.basic.button:focus,.ui.inverted.green.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #19b82b;color:#2ecc40}.ui.inverted.green.basic.active.button,.ui.inverted.green.basic.buttons .active.button,.ui.inverted.green.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #1fc231;color:#2ecc40}.ui.inverted.green.basic.button:active,.ui.inverted.green.basic.buttons .button:active,.ui.inverted.green.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #25a233;color:#2ecc40}.ui.tertiary.green.button,.ui.tertiary.green.buttons .button,.ui.tertiary.green.buttons .tertiary.button{background:0 0;box-shadow:none;color:#21ba45}.ui.tertiary.green.button:hover,.ui.tertiary.green.buttons .button:hover,.ui.tertiary.green.buttons button:hover{box-shadow:inset 0 -.2em 0 #2a9844;color:#2a9844}.ui.tertiary.green.button:focus,.ui.tertiary.green.buttons .button:focus,.ui.tertiary.green.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #20923b;color:#20923b}.ui.tertiary.green.active.button,.ui.tertiary.green.button:active,.ui.tertiary.green.buttons .active.button,.ui.tertiary.green.buttons .button:active,.ui.tertiary.green.buttons .tertiary.active.button,.ui.tertiary.green.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #00c22e;color:#13ae38}.ui.teal.button,.ui.teal.buttons .button{background-color:#00b5ad;color:#fff;text-shadow:none;background-image:none}.ui.teal.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.teal.button:hover,.ui.teal.buttons .button:hover{background-color:#009c95;color:#fff;text-shadow:none}.ui.teal.button:focus,.ui.teal.buttons .button:focus{background-color:#008c86;color:#fff;text-shadow:none}.ui.teal.button:active,.ui.teal.buttons .button:active{background-color:#00827c;color:#fff;text-shadow:none}.ui.teal.active.button,.ui.teal.button .active.button:active,.ui.teal.buttons .active.button,.ui.teal.buttons .active.button:active{background-color:#009c95;color:#fff;text-shadow:none}.ui.basic.teal.button,.ui.basic.teal.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #00b5ad;color:#00b5ad}.ui.basic.teal.button:hover,.ui.basic.teal.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #009c95;color:#009c95}.ui.basic.teal.button:focus,.ui.basic.teal.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #008c86;color:#009c95}.ui.basic.teal.active.button,.ui.basic.teal.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #009c95;color:#00827c}.ui.basic.teal.button:active,.ui.basic.teal.buttons .button:active{box-shadow:inset 0 0 0 1px #00827c;color:#00827c}.ui.buttons:not(.vertical)>.basic.teal.button:not(:first-child){margin-left:-1px}.ui.inverted.teal.button,.ui.inverted.teal.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #6dffff;color:#6dffff}.ui.inverted.teal.button.active,.ui.inverted.teal.button:active,.ui.inverted.teal.button:focus,.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button.active,.ui.inverted.teal.buttons .button:active,.ui.inverted.teal.buttons .button:focus,.ui.inverted.teal.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button:hover{background-color:#3affff}.ui.inverted.teal.button:focus,.ui.inverted.teal.buttons .button:focus{background-color:#4ff}.ui.inverted.teal.active.button,.ui.inverted.teal.buttons .active.button{background-color:#54ffff}.ui.inverted.teal.button:active,.ui.inverted.teal.buttons .button:active{background-color:#3affff}.ui.inverted.teal.basic.button,.ui.inverted.teal.basic.buttons .button,.ui.inverted.teal.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.teal.basic.button:hover,.ui.inverted.teal.basic.buttons .button:hover,.ui.inverted.teal.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #3affff;color:#6dffff}.ui.inverted.teal.basic.button:focus,.ui.inverted.teal.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #4ff;color:#6dffff}.ui.inverted.teal.basic.active.button,.ui.inverted.teal.basic.buttons .active.button,.ui.inverted.teal.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #54ffff;color:#6dffff}.ui.inverted.teal.basic.button:active,.ui.inverted.teal.basic.buttons .button:active,.ui.inverted.teal.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3affff;color:#6dffff}.ui.tertiary.teal.button,.ui.tertiary.teal.buttons .button,.ui.tertiary.teal.buttons .tertiary.button{background:0 0;box-shadow:none;color:#00b5ad}.ui.tertiary.teal.button:hover,.ui.tertiary.teal.buttons .button:hover,.ui.tertiary.teal.buttons button:hover{box-shadow:inset 0 -.2em 0 #108c86;color:#108c86}.ui.tertiary.teal.button:focus,.ui.tertiary.teal.buttons .button:focus,.ui.tertiary.teal.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #0e7e79;color:#0e7e79}.ui.tertiary.teal.active.button,.ui.tertiary.teal.button:active,.ui.tertiary.teal.buttons .active.button,.ui.tertiary.teal.buttons .button:active,.ui.tertiary.teal.buttons .tertiary.active.button,.ui.tertiary.teal.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #009c95;color:#009c95}.ui.blue.button,.ui.blue.buttons .button{background-color:#2185d0;color:#fff;text-shadow:none;background-image:none}.ui.blue.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.blue.button:hover,.ui.blue.buttons .button:hover{background-color:#1678c2;color:#fff;text-shadow:none}.ui.blue.button:focus,.ui.blue.buttons .button:focus{background-color:#0d71bb;color:#fff;text-shadow:none}.ui.blue.button:active,.ui.blue.buttons .button:active{background-color:#1a69a4;color:#fff;text-shadow:none}.ui.blue.active.button,.ui.blue.button .active.button:active,.ui.blue.buttons .active.button,.ui.blue.buttons .active.button:active{background-color:#1279c6;color:#fff;text-shadow:none}.ui.basic.blue.button,.ui.basic.blue.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #2185d0;color:#2185d0}.ui.basic.blue.button:hover,.ui.basic.blue.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #1678c2;color:#1678c2}.ui.basic.blue.button:focus,.ui.basic.blue.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #0d71bb;color:#1678c2}.ui.basic.blue.active.button,.ui.basic.blue.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #1279c6;color:#1a69a4}.ui.basic.blue.button:active,.ui.basic.blue.buttons .button:active{box-shadow:inset 0 0 0 1px #1a69a4;color:#1a69a4}.ui.buttons:not(.vertical)>.basic.blue.button:not(:first-child){margin-left:-1px}.ui.inverted.blue.button,.ui.inverted.blue.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #54c8ff;color:#54c8ff}.ui.inverted.blue.button.active,.ui.inverted.blue.button:active,.ui.inverted.blue.button:focus,.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button.active,.ui.inverted.blue.buttons .button:active,.ui.inverted.blue.buttons .button:focus,.ui.inverted.blue.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button:hover{background-color:#21b8ff}.ui.inverted.blue.button:focus,.ui.inverted.blue.buttons .button:focus{background-color:#2bbbff}.ui.inverted.blue.active.button,.ui.inverted.blue.buttons .active.button{background-color:#3ac0ff}.ui.inverted.blue.button:active,.ui.inverted.blue.buttons .button:active{background-color:#21b8ff}.ui.inverted.blue.basic.button,.ui.inverted.blue.basic.buttons .button,.ui.inverted.blue.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.blue.basic.button:hover,.ui.inverted.blue.basic.buttons .button:hover,.ui.inverted.blue.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.inverted.blue.basic.button:focus,.ui.inverted.blue.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #2bbbff;color:#54c8ff}.ui.inverted.blue.basic.active.button,.ui.inverted.blue.basic.buttons .active.button,.ui.inverted.blue.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3ac0ff;color:#54c8ff}.ui.inverted.blue.basic.button:active,.ui.inverted.blue.basic.buttons .button:active,.ui.inverted.blue.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #21b8ff;color:#54c8ff}.ui.tertiary.blue.button,.ui.tertiary.blue.buttons .button,.ui.tertiary.blue.buttons .tertiary.button{background:0 0;box-shadow:none;color:#2185d0}.ui.tertiary.blue.button:hover,.ui.tertiary.blue.buttons .button:hover,.ui.tertiary.blue.buttons button:hover{box-shadow:inset 0 -.2em 0 #2b75ac;color:#2b75ac}.ui.tertiary.blue.button:focus,.ui.tertiary.blue.buttons .button:focus,.ui.tertiary.blue.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #216ea7;color:#216ea7}.ui.tertiary.blue.active.button,.ui.tertiary.blue.button:active,.ui.tertiary.blue.buttons .active.button,.ui.tertiary.blue.buttons .button:active,.ui.tertiary.blue.buttons .tertiary.active.button,.ui.tertiary.blue.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #007bd8;color:#1279c6}.ui.violet.button,.ui.violet.buttons .button{background-color:#6435c9;color:#fff;text-shadow:none;background-image:none}.ui.violet.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.violet.button:hover,.ui.violet.buttons .button:hover{background-color:#5829bb;color:#fff;text-shadow:none}.ui.violet.button:focus,.ui.violet.buttons .button:focus{background-color:#4f20b5;color:#fff;text-shadow:none}.ui.violet.button:active,.ui.violet.buttons .button:active{background-color:#502aa1;color:#fff;text-shadow:none}.ui.violet.active.button,.ui.violet.button .active.button:active,.ui.violet.buttons .active.button,.ui.violet.buttons .active.button:active{background-color:#5626bf;color:#fff;text-shadow:none}.ui.basic.violet.button,.ui.basic.violet.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #6435c9;color:#6435c9}.ui.basic.violet.button:hover,.ui.basic.violet.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #5829bb;color:#5829bb}.ui.basic.violet.button:focus,.ui.basic.violet.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #4f20b5;color:#5829bb}.ui.basic.violet.active.button,.ui.basic.violet.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #5626bf;color:#502aa1}.ui.basic.violet.button:active,.ui.basic.violet.buttons .button:active{box-shadow:inset 0 0 0 1px #502aa1;color:#502aa1}.ui.buttons:not(.vertical)>.basic.violet.button:not(:first-child){margin-left:-1px}.ui.inverted.violet.button,.ui.inverted.violet.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #a291fb;color:#a291fb}.ui.inverted.violet.button.active,.ui.inverted.violet.button:active,.ui.inverted.violet.button:focus,.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button.active,.ui.inverted.violet.buttons .button:active,.ui.inverted.violet.buttons .button:focus,.ui.inverted.violet.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button:hover{background-color:#745aff}.ui.inverted.violet.button:focus,.ui.inverted.violet.buttons .button:focus{background-color:#7d64ff}.ui.inverted.violet.active.button,.ui.inverted.violet.buttons .active.button{background-color:#8a73ff}.ui.inverted.violet.button:active,.ui.inverted.violet.buttons .button:active{background-color:#7860f9}.ui.inverted.violet.basic.button,.ui.inverted.violet.basic.buttons .button,.ui.inverted.violet.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.violet.basic.button:hover,.ui.inverted.violet.basic.buttons .button:hover,.ui.inverted.violet.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #745aff;color:#a291fb}.ui.inverted.violet.basic.button:focus,.ui.inverted.violet.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #7d64ff;color:#a291fb}.ui.inverted.violet.basic.active.button,.ui.inverted.violet.basic.buttons .active.button,.ui.inverted.violet.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #8a73ff;color:#a291fb}.ui.inverted.violet.basic.button:active,.ui.inverted.violet.basic.buttons .button:active,.ui.inverted.violet.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #7860f9;color:#a291fb}.ui.tertiary.violet.button,.ui.tertiary.violet.buttons .button,.ui.tertiary.violet.buttons .tertiary.button{background:0 0;box-shadow:none;color:#6435c9}.ui.tertiary.violet.button:hover,.ui.tertiary.violet.buttons .button:hover,.ui.tertiary.violet.buttons button:hover{box-shadow:inset 0 -.2em 0 #6040a5;color:#6040a5}.ui.tertiary.violet.button:focus,.ui.tertiary.violet.buttons .button:focus,.ui.tertiary.violet.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #5735a0;color:#5735a0}.ui.tertiary.violet.active.button,.ui.tertiary.violet.button:active,.ui.tertiary.violet.buttons .active.button,.ui.tertiary.violet.buttons .button:active,.ui.tertiary.violet.buttons .tertiary.active.button,.ui.tertiary.violet.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #4e0fd6;color:#5626bf}.ui.purple.button,.ui.purple.buttons .button{background-color:#a333c8;color:#fff;text-shadow:none;background-image:none}.ui.purple.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.purple.button:hover,.ui.purple.buttons .button:hover{background-color:#9627ba;color:#fff;text-shadow:none}.ui.purple.button:focus,.ui.purple.buttons .button:focus{background-color:#8f1eb4;color:#fff;text-shadow:none}.ui.purple.button:active,.ui.purple.buttons .button:active{background-color:#82299f;color:#fff;text-shadow:none}.ui.purple.active.button,.ui.purple.button .active.button:active,.ui.purple.buttons .active.button,.ui.purple.buttons .active.button:active{background-color:#9724be;color:#fff;text-shadow:none}.ui.basic.purple.button,.ui.basic.purple.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #a333c8;color:#a333c8}.ui.basic.purple.button:hover,.ui.basic.purple.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #9627ba;color:#9627ba}.ui.basic.purple.button:focus,.ui.basic.purple.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #8f1eb4;color:#9627ba}.ui.basic.purple.active.button,.ui.basic.purple.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #9724be;color:#82299f}.ui.basic.purple.button:active,.ui.basic.purple.buttons .button:active{box-shadow:inset 0 0 0 1px #82299f;color:#82299f}.ui.buttons:not(.vertical)>.basic.purple.button:not(:first-child){margin-left:-1px}.ui.inverted.purple.button,.ui.inverted.purple.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #dc73ff;color:#dc73ff}.ui.inverted.purple.button.active,.ui.inverted.purple.button:active,.ui.inverted.purple.button:focus,.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button.active,.ui.inverted.purple.buttons .button:active,.ui.inverted.purple.buttons .button:focus,.ui.inverted.purple.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button:hover{background-color:#cf40ff}.ui.inverted.purple.button:focus,.ui.inverted.purple.buttons .button:focus{background-color:#d24aff}.ui.inverted.purple.active.button,.ui.inverted.purple.buttons .active.button{background-color:#d65aff}.ui.inverted.purple.button:active,.ui.inverted.purple.buttons .button:active{background-color:#cf40ff}.ui.inverted.purple.basic.button,.ui.inverted.purple.basic.buttons .button,.ui.inverted.purple.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.purple.basic.button:hover,.ui.inverted.purple.basic.buttons .button:hover,.ui.inverted.purple.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #cf40ff;color:#dc73ff}.ui.inverted.purple.basic.button:focus,.ui.inverted.purple.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #d24aff;color:#dc73ff}.ui.inverted.purple.basic.active.button,.ui.inverted.purple.basic.buttons .active.button,.ui.inverted.purple.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #d65aff;color:#dc73ff}.ui.inverted.purple.basic.button:active,.ui.inverted.purple.basic.buttons .button:active,.ui.inverted.purple.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cf40ff;color:#dc73ff}.ui.tertiary.purple.button,.ui.tertiary.purple.buttons .button,.ui.tertiary.purple.buttons .tertiary.button{background:0 0;box-shadow:none;color:#a333c8}.ui.tertiary.purple.button:hover,.ui.tertiary.purple.buttons .button:hover,.ui.tertiary.purple.buttons button:hover{box-shadow:inset 0 -.2em 0 #8a3ea4;color:#8a3ea4}.ui.tertiary.purple.button:focus,.ui.tertiary.purple.buttons .button:focus,.ui.tertiary.purple.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #84339f;color:#84339f}.ui.tertiary.purple.active.button,.ui.tertiary.purple.button:active,.ui.tertiary.purple.buttons .active.button,.ui.tertiary.purple.buttons .button:active,.ui.tertiary.purple.buttons .tertiary.active.button,.ui.tertiary.purple.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #a30dd4;color:#9724be}.ui.pink.button,.ui.pink.buttons .button{background-color:#e03997;color:#fff;text-shadow:none;background-image:none}.ui.pink.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pink.button:hover,.ui.pink.buttons .button:hover{background-color:#e61a8d;color:#fff;text-shadow:none}.ui.pink.button:focus,.ui.pink.buttons .button:focus{background-color:#e10f85;color:#fff;text-shadow:none}.ui.pink.button:active,.ui.pink.buttons .button:active{background-color:#c71f7e;color:#fff;text-shadow:none}.ui.pink.active.button,.ui.pink.button .active.button:active,.ui.pink.buttons .active.button,.ui.pink.buttons .active.button:active{background-color:#ea158d;color:#fff;text-shadow:none}.ui.basic.pink.button,.ui.basic.pink.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #e03997;color:#e03997}.ui.basic.pink.button:hover,.ui.basic.pink.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #e61a8d;color:#e61a8d}.ui.basic.pink.button:focus,.ui.basic.pink.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #e10f85;color:#e61a8d}.ui.basic.pink.active.button,.ui.basic.pink.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #ea158d;color:#c71f7e}.ui.basic.pink.button:active,.ui.basic.pink.buttons .button:active{box-shadow:inset 0 0 0 1px #c71f7e;color:#c71f7e}.ui.buttons:not(.vertical)>.basic.pink.button:not(:first-child){margin-left:-1px}.ui.inverted.pink.button,.ui.inverted.pink.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff8edf;color:#ff8edf}.ui.inverted.pink.button.active,.ui.inverted.pink.button:active,.ui.inverted.pink.button:focus,.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button.active,.ui.inverted.pink.buttons .button:active,.ui.inverted.pink.buttons .button:focus,.ui.inverted.pink.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button:hover{background-color:#ff5bd1}.ui.inverted.pink.button:focus,.ui.inverted.pink.buttons .button:focus{background-color:#ff65d3}.ui.inverted.pink.active.button,.ui.inverted.pink.buttons .active.button{background-color:#ff74d8}.ui.inverted.pink.button:active,.ui.inverted.pink.buttons .button:active{background-color:#ff5bd1}.ui.inverted.pink.basic.button,.ui.inverted.pink.basic.buttons .button,.ui.inverted.pink.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.pink.basic.button:hover,.ui.inverted.pink.basic.buttons .button:hover,.ui.inverted.pink.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff5bd1;color:#ff8edf}.ui.inverted.pink.basic.button:focus,.ui.inverted.pink.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff65d3;color:#ff8edf}.ui.inverted.pink.basic.active.button,.ui.inverted.pink.basic.buttons .active.button,.ui.inverted.pink.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff74d8;color:#ff8edf}.ui.inverted.pink.basic.button:active,.ui.inverted.pink.basic.buttons .button:active,.ui.inverted.pink.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff5bd1;color:#ff8edf}.ui.tertiary.pink.button,.ui.tertiary.pink.buttons .button,.ui.tertiary.pink.buttons .tertiary.button{background:0 0;box-shadow:none;color:#e03997}.ui.tertiary.pink.button:hover,.ui.tertiary.pink.buttons .button:hover,.ui.tertiary.pink.buttons button:hover{box-shadow:inset 0 -.2em 0 #cc3389;color:#cc3389}.ui.tertiary.pink.button:focus,.ui.tertiary.pink.buttons .button:focus,.ui.tertiary.pink.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #c92782;color:#c92782}.ui.tertiary.pink.active.button,.ui.tertiary.pink.button:active,.ui.tertiary.pink.buttons .active.button,.ui.tertiary.pink.buttons .button:active,.ui.tertiary.pink.buttons .tertiary.active.button,.ui.tertiary.pink.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #ff0090;color:#ea158d}.ui.brown.button,.ui.brown.buttons .button{background-color:#a5673f;color:#fff;text-shadow:none;background-image:none}.ui.brown.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.brown.button:hover,.ui.brown.buttons .button:hover{background-color:#975b33;color:#fff;text-shadow:none}.ui.brown.button:focus,.ui.brown.buttons .button:focus{background-color:#90532b;color:#fff;text-shadow:none}.ui.brown.button:active,.ui.brown.buttons .button:active{background-color:#805031;color:#fff;text-shadow:none}.ui.brown.active.button,.ui.brown.button .active.button:active,.ui.brown.buttons .active.button,.ui.brown.buttons .active.button:active{background-color:#995a31;color:#fff;text-shadow:none}.ui.basic.brown.button,.ui.basic.brown.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #a5673f;color:#a5673f}.ui.basic.brown.button:hover,.ui.basic.brown.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #975b33;color:#975b33}.ui.basic.brown.button:focus,.ui.basic.brown.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #90532b;color:#975b33}.ui.basic.brown.active.button,.ui.basic.brown.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #995a31;color:#805031}.ui.basic.brown.button:active,.ui.basic.brown.buttons .button:active{box-shadow:inset 0 0 0 1px #805031;color:#805031}.ui.buttons:not(.vertical)>.basic.brown.button:not(:first-child){margin-left:-1px}.ui.inverted.brown.button,.ui.inverted.brown.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d67c1c;color:#d67c1c}.ui.inverted.brown.button.active,.ui.inverted.brown.button:active,.ui.inverted.brown.button:focus,.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button.active,.ui.inverted.brown.buttons .button:active,.ui.inverted.brown.buttons .button:focus,.ui.inverted.brown.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button:hover{background-color:#b0620f}.ui.inverted.brown.button:focus,.ui.inverted.brown.buttons .button:focus{background-color:#c16808}.ui.inverted.brown.active.button,.ui.inverted.brown.buttons .active.button{background-color:#cc6f0d}.ui.inverted.brown.button:active,.ui.inverted.brown.buttons .button:active{background-color:#a96216}.ui.inverted.brown.basic.button,.ui.inverted.brown.basic.buttons .button,.ui.inverted.brown.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.brown.basic.button:hover,.ui.inverted.brown.basic.buttons .button:hover,.ui.inverted.brown.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #b0620f;color:#d67c1c}.ui.inverted.brown.basic.button:focus,.ui.inverted.brown.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c16808;color:#d67c1c}.ui.inverted.brown.basic.active.button,.ui.inverted.brown.basic.buttons .active.button,.ui.inverted.brown.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cc6f0d;color:#d67c1c}.ui.inverted.brown.basic.button:active,.ui.inverted.brown.basic.buttons .button:active,.ui.inverted.brown.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #a96216;color:#d67c1c}.ui.tertiary.brown.button,.ui.tertiary.brown.buttons .button,.ui.tertiary.brown.buttons .tertiary.button{background:0 0;box-shadow:none;color:#a5673f}.ui.tertiary.brown.button:hover,.ui.tertiary.brown.buttons .button:hover,.ui.tertiary.brown.buttons button:hover{box-shadow:inset 0 -.2em 0 #835f48;color:#835f48}.ui.tertiary.brown.button:focus,.ui.tertiary.brown.buttons .button:focus,.ui.tertiary.brown.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #7d573e;color:#7d573e}.ui.tertiary.brown.active.button,.ui.tertiary.brown.button:active,.ui.tertiary.brown.buttons .active.button,.ui.tertiary.brown.buttons .button:active,.ui.tertiary.brown.buttons .tertiary.active.button,.ui.tertiary.brown.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #ae561d;color:#995a31}.ui.grey.button,.ui.grey.buttons .button{background-color:#767676;color:#fff;text-shadow:none;background-image:none}.ui.grey.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.grey.button:hover,.ui.grey.buttons .button:hover{background-color:#838383;color:#fff;text-shadow:none}.ui.grey.button:focus,.ui.grey.buttons .button:focus{background-color:#8a8a8a;color:#fff;text-shadow:none}.ui.grey.button:active,.ui.grey.buttons .button:active{background-color:#909090;color:#fff;text-shadow:none}.ui.grey.active.button,.ui.grey.button .active.button:active,.ui.grey.buttons .active.button,.ui.grey.buttons .active.button:active{background-color:#696969;color:#fff;text-shadow:none}.ui.basic.grey.button,.ui.basic.grey.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #767676;color:#767676}.ui.basic.grey.button:hover,.ui.basic.grey.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #838383;color:#838383}.ui.basic.grey.button:focus,.ui.basic.grey.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #8a8a8a;color:#838383}.ui.basic.grey.active.button,.ui.basic.grey.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #696969;color:#909090}.ui.basic.grey.button:active,.ui.basic.grey.buttons .button:active{box-shadow:inset 0 0 0 1px #909090;color:#909090}.ui.buttons:not(.vertical)>.basic.grey.button:not(:first-child){margin-left:-1px}.ui.inverted.grey.button,.ui.inverted.grey.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5;color:#fff}.ui.inverted.grey.button.active,.ui.inverted.grey.button:active,.ui.inverted.grey.button:focus,.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button.active,.ui.inverted.grey.buttons .button:active,.ui.inverted.grey.buttons .button:focus,.ui.inverted.grey.buttons .button:hover{box-shadow:none;color:rgba(0,0,0,.6)}.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button:hover{background-color:#c2c4c5}.ui.inverted.grey.button:focus,.ui.inverted.grey.buttons .button:focus{background-color:#c7c9cb}.ui.inverted.grey.active.button,.ui.inverted.grey.buttons .active.button{background-color:#cfd0d2}.ui.inverted.grey.button:active,.ui.inverted.grey.buttons .button:active{background-color:#c2c4c5}.ui.inverted.grey.basic.button,.ui.inverted.grey.basic.buttons .button,.ui.inverted.grey.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.grey.basic.button:hover,.ui.inverted.grey.basic.buttons .button:hover,.ui.inverted.grey.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #c2c4c5;color:#fff}.ui.inverted.grey.basic.button:focus,.ui.inverted.grey.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c7c9cb;color:#dcddde}.ui.inverted.grey.basic.active.button,.ui.inverted.grey.basic.buttons .active.button,.ui.inverted.grey.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cfd0d2;color:#fff}.ui.inverted.grey.basic.button:active,.ui.inverted.grey.basic.buttons .button:active,.ui.inverted.grey.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #c2c4c5;color:#fff}.ui.tertiary.grey.button,.ui.tertiary.grey.buttons .button,.ui.tertiary.grey.buttons .tertiary.button{background:0 0;box-shadow:none;color:#767676}.ui.tertiary.grey.button:hover,.ui.tertiary.grey.buttons .button:hover,.ui.tertiary.grey.buttons button:hover{box-shadow:inset 0 -.2em 0 #838383;color:#838383}.ui.tertiary.grey.button:focus,.ui.tertiary.grey.buttons .button:focus,.ui.tertiary.grey.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #8a8a8a;color:#8a8a8a}.ui.tertiary.grey.active.button,.ui.tertiary.grey.button:active,.ui.tertiary.grey.buttons .active.button,.ui.tertiary.grey.buttons .button:active,.ui.tertiary.grey.buttons .tertiary.active.button,.ui.tertiary.grey.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #7e5454;color:#696969}.ui.black.button,.ui.black.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.black.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.black.button:hover,.ui.black.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.black.button:focus,.ui.black.buttons .button:focus{background-color:#2f3032;color:#fff;text-shadow:none}.ui.black.button:active,.ui.black.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.black.active.button,.ui.black.button .active.button:active,.ui.black.buttons .active.button,.ui.black.buttons .active.button:active{background-color:#0f0f10;color:#fff;text-shadow:none}.ui.basic.black.button,.ui.basic.black.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #1b1c1d;color:#1b1c1d}.ui.basic.black.button:hover,.ui.basic.black.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #27292a;color:#27292a}.ui.basic.black.button:focus,.ui.basic.black.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #2f3032;color:#27292a}.ui.basic.black.active.button,.ui.basic.black.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #0f0f10;color:#343637}.ui.basic.black.button:active,.ui.basic.black.buttons .button:active{box-shadow:inset 0 0 0 1px #343637;color:#343637}.ui.buttons:not(.vertical)>.basic.black.button:not(:first-child){margin-left:-1px}.ui.inverted.black.button,.ui.inverted.black.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5;color:#fff}.ui.inverted.black.button.active,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .button.active,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{box-shadow:none;color:#fff}.ui.inverted.black.active.button,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .active.button,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{background-color:#000}.ui.inverted.black.basic.button,.ui.inverted.black.basic.buttons .button,.ui.inverted.black.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5);color:#fff}.ui.inverted.black.basic.button:hover,.ui.inverted.black.basic.buttons .button:hover,.ui.inverted.black.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #000;color:#fff}.ui.inverted.black.basic.button:focus,.ui.inverted.black.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #000;color:#545454}.ui.inverted.black.basic.active.button,.ui.inverted.black.basic.button:active,.ui.inverted.black.basic.buttons .active.button,.ui.inverted.black.basic.buttons .button:active,.ui.inverted.black.buttons .basic.active.button,.ui.inverted.black.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #000;color:#fff}.ui.tertiary.black.button,.ui.tertiary.black.buttons .button,.ui.tertiary.black.buttons .tertiary.button{background:0 0;box-shadow:none;color:#1b1c1d}.ui.tertiary.black.button:hover,.ui.tertiary.black.buttons .button:hover,.ui.tertiary.black.buttons button:hover{box-shadow:inset 0 -.2em 0 #8b8f93;color:#8b8f93}.ui.tertiary.black.button:focus,.ui.tertiary.black.buttons .button:focus,.ui.tertiary.black.buttons .tertiary.button:focus{box-shadow:inset 0 -.2em 0 #93969a;color:#93969a}.ui.tertiary.black.active.button,.ui.tertiary.black.button:active,.ui.tertiary.black.buttons .active.button,.ui.tertiary.black.buttons .button:active,.ui.tertiary.black.buttons .tertiary.active.button,.ui.tertiary.black.buttons .tertiary.button:active{box-shadow:inset 0 -.2em 0 #404245;color:#0f0f10}.ui.positive.button,.ui.positive.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.positive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.positive.button:hover,.ui.positive.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.positive.button:focus,.ui.positive.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.positive.button:active,.ui.positive.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.positive.active.button,.ui.positive.button .active.button:active,.ui.positive.buttons .active.button,.ui.positive.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.positive.button,.ui.basic.positive.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #21ba45;color:#21ba45}.ui.basic.positive.button:hover,.ui.basic.positive.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #16ab39;color:#16ab39}.ui.basic.positive.button:focus,.ui.basic.positive.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #0ea432;color:#16ab39}.ui.basic.positive.active.button,.ui.basic.positive.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #13ae38;color:#198f35}.ui.basic.positive.button:active,.ui.basic.positive.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35;color:#198f35}.ui.buttons:not(.vertical)>.basic.positive.button:not(:first-child){margin-left:-1px}.ui.negative.button,.ui.negative.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.negative.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.negative.button:hover,.ui.negative.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.negative.button:focus,.ui.negative.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.negative.button:active,.ui.negative.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.negative.active.button,.ui.negative.button .active.button:active,.ui.negative.buttons .active.button,.ui.negative.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.negative.button,.ui.basic.negative.buttons .button{background:0 0;box-shadow:inset 0 0 0 1px #db2828;color:#db2828}.ui.basic.negative.button:hover,.ui.basic.negative.buttons .button:hover{background:0 0;box-shadow:inset 0 0 0 1px #d01919;color:#d01919}.ui.basic.negative.button:focus,.ui.basic.negative.buttons .button:focus{background:0 0;box-shadow:inset 0 0 0 1px #ca1010;color:#d01919}.ui.basic.negative.active.button,.ui.basic.negative.buttons .active.button{background:0 0;box-shadow:inset 0 0 0 1px #d41515;color:#b21e1e}.ui.basic.negative.button:active,.ui.basic.negative.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e;color:#b21e1e}.ui.buttons:not(.vertical)>.basic.negative.button:not(:first-child){margin-left:-1px}.ui.buttons{display:inline-flex;flex-direction:row;font-size:0;vertical-align:baseline;margin:0 .25em 0 0}.ui.buttons:not(.basic):not(.inverted){box-shadow:none}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button{flex:1 0 auto;border-radius:0;margin:0}.ui.buttons:not(.basic):not(.inverted)>.button:not(.basic):not(.inverted){box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.buttons .button:first-child{border-left:none;margin-left:0;border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.buttons .button:last-child{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.buttons{display:inline-flex;flex-direction:column}.ui.vertical.buttons .button{display:block;float:none;width:100%;margin:0;box-shadow:none;border-radius:0}.ui.vertical.buttons .button:first-child{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.vertical.buttons .button:last-child{margin-bottom:0;border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.buttons .button:only-child{border-radius:.28571429rem}/*!
+ * # Fomantic-UI - Container
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.container{display:block;max-width:100%}@media only screen and (max-width:767.98px){.ui.ui.ui.container:not(.fluid){width:auto;margin-left:1em;margin-right:1em}.ui.ui.ui.grid.container,.ui.ui.ui.relaxed.grid.container,.ui.ui.ui.very.relaxed.grid.container{width:auto}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.ui.ui.container:not(.fluid){width:723px;margin-left:auto;margin-right:auto}.ui.ui.ui.grid.container{width:calc(723px + 2rem)}.ui.ui.ui.relaxed.grid.container{width:calc(723px + 3rem)}.ui.ui.ui.very.relaxed.grid.container{width:calc(723px + 5rem)}}@media only screen and (min-width:992px) and (max-width:1199.98px){.ui.ui.ui.container:not(.fluid){width:933px;margin-left:auto;margin-right:auto}.ui.ui.ui.grid.container{width:calc(933px + 2rem)}.ui.ui.ui.relaxed.grid.container{width:calc(933px + 3rem)}.ui.ui.ui.very.relaxed.grid.container{width:calc(933px + 5rem)}}@media only screen and (min-width:1200px){.ui.ui.ui.container:not(.fluid){width:1127px;margin-left:auto;margin-right:auto}.ui.ui.ui.grid.container{width:calc(1127px + 2rem)}.ui.ui.ui.relaxed.grid.container{width:calc(1127px + 3rem)}.ui.ui.ui.very.relaxed.grid.container{width:calc(1127px + 5rem)}}.ui.text.container{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;max-width:700px;line-height:1.5;font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}/*!
+ * # Fomantic-UI - Divider
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(34,36,38,.15);border-bottom:1px solid hsla(0,0%,100%,.1)}.ui.grid>.column+.divider,.ui.grid>.row>.column+.divider{left:auto}.ui.horizontal.divider{display:table;white-space:nowrap;height:auto;margin:"";line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{content:"";display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.horizontal.divider:before{background-position:right 1em top 50%}.ui.horizontal.divider:after{background-position:left 1em top 50%}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:"";z-index:3;border-left:1px solid rgba(34,36,38,.15);border-right:1px solid hsla(0,0%,100%,.1);width:0;height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767.98px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{display:table;white-space:nowrap;height:auto;margin:"";overflow:hidden;line-height:1;text-align:center;position:static;top:0;left:0;transform:none}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{left:0;border-left:none;border-right:none;content:"";display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{background-position:right 1em top 50%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{background-position:left 1em top 50%}}.ui.divider>.icon{margin:0;font-size:1rem;height:1em;vertical-align:middle}.ui.horizontal.divider[class*="left aligned"]:before{display:none}.ui.horizontal.divider[class*="left aligned"]:after,.ui.horizontal.divider[class*="right aligned"]:before{width:100%}.ui.horizontal.divider[class*="right aligned"]:after{display:none}.ui.hidden.divider{border-color:transparent!important}.ui.hidden.divider:after,.ui.hidden.divider:before{display:none}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-color:rgba(34,36,38,.15) hsla(0,0%,100%,.15) hsla(0,0%,100%,.15) rgba(34,36,38,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.divider{font-size:1rem}.ui.mini.divider{font-size:.78571429rem}.ui.tiny.divider{font-size:.85714286rem}.ui.small.divider{font-size:.92857143rem}.ui.large.divider{font-size:1.14285714rem}.ui.big.divider{font-size:1.28571429rem}.ui.huge.divider{font-size:1.42857143rem}.ui.massive.divider{font-size:1.71428571rem}.ui.horizontal.divider:after,.ui.horizontal.divider:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}}/*!
+ * # Fomantic-UI - Flag
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */i.flag:not(.icon){line-height:11px;vertical-align:baseline;margin:0 .5em 0 0;text-decoration:inherit;speak:none;-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.flag:not(.icon),i.flag:not(.icon):before{display:inline-block;width:16px;height:11px}i.flag:not(.icon):before{content:"";background:url(../images/flags.png) no-repeat -108px -1976px}i.flag.ad:before,i.flag.andorra:before{background-position:0 0}i.flag.ae:before,i.flag.uae:before,i.flag.united.arab.emirates:before{background-position:0 -26px}i.flag.af:before,i.flag.afghanistan:before{background-position:0 -52px}i.flag.ag:before,i.flag.antigua:before{background-position:0 -78px}i.flag.ai:before,i.flag.anguilla:before{background-position:0 -104px}i.flag.al:before,i.flag.albania:before{background-position:0 -130px}i.flag.am:before,i.flag.armenia:before{background-position:0 -156px}i.flag.an:before,i.flag.netherlands.antilles:before{background-position:0 -182px}i.flag.angola:before,i.flag.ao:before{background-position:0 -208px}i.flag.ar:before,i.flag.argentina:before{background-position:0 -234px}i.flag.american.samoa:before,i.flag.as:before{background-position:0 -260px}i.flag.at:before,i.flag.austria:before{background-position:0 -286px}i.flag.au:before,i.flag.australia:before{background-position:0 -312px}i.flag.aruba:before,i.flag.aw:before{background-position:0 -338px}i.flag.aland.islands:before,i.flag.ax:before{background-position:0 -364px}i.flag.az:before,i.flag.azerbaijan:before{background-position:0 -390px}i.flag.ba:before,i.flag.bosnia:before{background-position:0 -416px}i.flag.barbados:before,i.flag.bb:before{background-position:0 -442px}i.flag.bangladesh:before,i.flag.bd:before{background-position:0 -468px}i.flag.be:before,i.flag.belgium:before{background-position:0 -494px}i.flag.bf:before,i.flag.burkina.faso:before{background-position:0 -520px}i.flag.bg:before,i.flag.bulgaria:before{background-position:0 -546px}i.flag.bahrain:before,i.flag.bh:before{background-position:0 -572px}i.flag.bi:before,i.flag.burundi:before{background-position:0 -598px}i.flag.benin:before,i.flag.bj:before{background-position:0 -624px}i.flag.bermuda:before,i.flag.bm:before{background-position:0 -650px}i.flag.bn:before,i.flag.brunei:before{background-position:0 -676px}i.flag.bo:before,i.flag.bolivia:before{background-position:0 -702px}i.flag.br:before,i.flag.brazil:before{background-position:0 -728px}i.flag.bahamas:before,i.flag.bs:before{background-position:0 -754px}i.flag.bhutan:before,i.flag.bt:before{background-position:0 -780px}i.flag.bouvet.island:before,i.flag.bv:before{background-position:0 -806px}i.flag.botswana:before,i.flag.bw:before{background-position:0 -832px}i.flag.belarus:before,i.flag.by:before{background-position:0 -858px}i.flag.belize:before,i.flag.bz:before{background-position:0 -884px}i.flag.ca:before,i.flag.canada:before{background-position:0 -910px}i.flag.cc:before,i.flag.cocos.islands:before{background-position:0 -962px}i.flag.cd:before,i.flag.congo:before{background-position:0 -988px}i.flag.central.african.republic:before,i.flag.cf:before{background-position:0 -1014px}i.flag.cg:before,i.flag.congo.brazzaville:before{background-position:0 -1040px}i.flag.ch:before,i.flag.switzerland:before{background-position:0 -1066px}i.flag.ci:before,i.flag.cote.divoire:before{background-position:0 -1092px}i.flag.ck:before,i.flag.cook.islands:before{background-position:0 -1118px}i.flag.chile:before,i.flag.cl:before{background-position:0 -1144px}i.flag.cameroon:before,i.flag.cm:before{background-position:0 -1170px}i.flag.china:before,i.flag.cn:before{background-position:0 -1196px}i.flag.co:before,i.flag.colombia:before{background-position:0 -1222px}i.flag.costa.rica:before,i.flag.cr:before{background-position:0 -1248px}i.flag.cs:before,i.flag.serbia:before{background-position:0 -1274px}i.flag.cu:before,i.flag.cuba:before{background-position:0 -1300px}i.flag.cape.verde:before,i.flag.cv:before{background-position:0 -1326px}i.flag.christmas.island:before,i.flag.cx:before{background-position:0 -1352px}i.flag.cy:before,i.flag.cyprus:before{background-position:0 -1378px}i.flag.cz:before,i.flag.czech.republic:before{background-position:0 -1404px}i.flag.de:before,i.flag.germany:before{background-position:0 -1430px}i.flag.dj:before,i.flag.djibouti:before{background-position:0 -1456px}i.flag.denmark:before,i.flag.dk:before{background-position:0 -1482px}i.flag.dm:before,i.flag.dominica:before{background-position:0 -1508px}i.flag.do:before,i.flag.dominican.republic:before{background-position:0 -1534px}i.flag.algeria:before,i.flag.dz:before{background-position:0 -1560px}i.flag.ec:before,i.flag.ecuador:before{background-position:0 -1586px}i.flag.ee:before,i.flag.estonia:before{background-position:0 -1612px}i.flag.eg:before,i.flag.egypt:before{background-position:0 -1638px}i.flag.eh:before,i.flag.western.sahara:before{background-position:0 -1664px}i.flag.england:before,i.flag.gb.eng:before{background-position:0 -1690px}i.flag.er:before,i.flag.eritrea:before{background-position:0 -1716px}i.flag.es:before,i.flag.spain:before{background-position:0 -1742px}i.flag.et:before,i.flag.ethiopia:before{background-position:0 -1768px}i.flag.eu:before,i.flag.european.union:before{background-position:0 -1794px}i.flag.fi:before,i.flag.finland:before{background-position:0 -1846px}i.flag.fiji:before,i.flag.fj:before{background-position:0 -1872px}i.flag.falkland.islands:before,i.flag.fk:before{background-position:0 -1898px}i.flag.fm:before,i.flag.micronesia:before{background-position:0 -1924px}i.flag.faroe.islands:before,i.flag.fo:before{background-position:0 -1950px}i.flag.fr:before,i.flag.france:before{background-position:0 -1976px}i.flag.ga:before,i.flag.gabon:before{background-position:-36px 0}i.flag.gb:before,i.flag.uk:before,i.flag.united.kingdom:before{background-position:-36px -26px}i.flag.gd:before,i.flag.grenada:before{background-position:-36px -52px}i.flag.ge:before,i.flag.georgia:before{background-position:-36px -78px}i.flag.french.guiana:before,i.flag.gf:before{background-position:-36px -104px}i.flag.gh:before,i.flag.ghana:before{background-position:-36px -130px}i.flag.gi:before,i.flag.gibraltar:before{background-position:-36px -156px}i.flag.gl:before,i.flag.greenland:before{background-position:-36px -182px}i.flag.gambia:before,i.flag.gm:before{background-position:-36px -208px}i.flag.gn:before,i.flag.guinea:before{background-position:-36px -234px}i.flag.gp:before,i.flag.guadeloupe:before{background-position:-36px -260px}i.flag.equatorial.guinea:before,i.flag.gq:before{background-position:-36px -286px}i.flag.gr:before,i.flag.greece:before{background-position:-36px -312px}i.flag.gs:before,i.flag.sandwich.islands:before{background-position:-36px -338px}i.flag.gt:before,i.flag.guatemala:before{background-position:-36px -364px}i.flag.gu:before,i.flag.guam:before{background-position:-36px -390px}i.flag.guinea-bissau:before,i.flag.gw:before{background-position:-36px -416px}i.flag.guyana:before,i.flag.gy:before{background-position:-36px -442px}i.flag.hk:before,i.flag.hong.kong:before{background-position:-36px -468px}i.flag.heard.island:before,i.flag.hm:before{background-position:-36px -494px}i.flag.hn:before,i.flag.honduras:before{background-position:-36px -520px}i.flag.croatia:before,i.flag.hr:before{background-position:-36px -546px}i.flag.haiti:before,i.flag.ht:before{background-position:-36px -572px}i.flag.hu:before,i.flag.hungary:before{background-position:-36px -598px}i.flag.id:before,i.flag.indonesia:before{background-position:-36px -624px}i.flag.ie:before,i.flag.ireland:before{background-position:-36px -650px}i.flag.il:before,i.flag.israel:before{background-position:-36px -676px}i.flag.in:before,i.flag.india:before{background-position:-36px -702px}i.flag.indian.ocean.territory:before,i.flag.io:before{background-position:-36px -728px}i.flag.iq:before,i.flag.iraq:before{background-position:-36px -754px}i.flag.ir:before,i.flag.iran:before{background-position:-36px -780px}i.flag.iceland:before,i.flag.is:before{background-position:-36px -806px}i.flag.it:before,i.flag.italy:before{background-position:-36px -832px}i.flag.jamaica:before,i.flag.jm:before{background-position:-36px -858px}i.flag.jo:before,i.flag.jordan:before{background-position:-36px -884px}i.flag.japan:before,i.flag.jp:before{background-position:-36px -910px}i.flag.ke:before,i.flag.kenya:before{background-position:-36px -936px}i.flag.kg:before,i.flag.kyrgyzstan:before{background-position:-36px -962px}i.flag.cambodia:before,i.flag.kh:before{background-position:-36px -988px}i.flag.ki:before,i.flag.kiribati:before{background-position:-36px -1014px}i.flag.comoros:before,i.flag.km:before{background-position:-36px -1040px}i.flag.kn:before,i.flag.saint.kitts.and.nevis:before{background-position:-36px -1066px}i.flag.kp:before,i.flag.north.korea:before{background-position:-36px -1092px}i.flag.kr:before,i.flag.south.korea:before{background-position:-36px -1118px}i.flag.kuwait:before,i.flag.kw:before{background-position:-36px -1144px}i.flag.cayman.islands:before,i.flag.ky:before{background-position:-36px -1170px}i.flag.kazakhstan:before,i.flag.kz:before{background-position:-36px -1196px}i.flag.la:before,i.flag.laos:before{background-position:-36px -1222px}i.flag.lb:before,i.flag.lebanon:before{background-position:-36px -1248px}i.flag.lc:before,i.flag.saint.lucia:before{background-position:-36px -1274px}i.flag.li:before,i.flag.liechtenstein:before{background-position:-36px -1300px}i.flag.lk:before,i.flag.sri.lanka:before{background-position:-36px -1326px}i.flag.liberia:before,i.flag.lr:before{background-position:-36px -1352px}i.flag.lesotho:before,i.flag.ls:before{background-position:-36px -1378px}i.flag.lithuania:before,i.flag.lt:before{background-position:-36px -1404px}i.flag.lu:before,i.flag.luxembourg:before{background-position:-36px -1430px}i.flag.latvia:before,i.flag.lv:before{background-position:-36px -1456px}i.flag.libya:before,i.flag.ly:before{background-position:-36px -1482px}i.flag.ma:before,i.flag.morocco:before{background-position:-36px -1508px}i.flag.mc:before,i.flag.monaco:before{background-position:-36px -1534px}i.flag.md:before,i.flag.moldova:before{background-position:-36px -1560px}i.flag.me:before,i.flag.montenegro:before{background-position:-36px -1586px}i.flag.madagascar:before,i.flag.mg:before{background-position:-36px -1613px}i.flag.marshall.islands:before,i.flag.mh:before{background-position:-36px -1639px}i.flag.macedonia:before,i.flag.mk:before{background-position:-36px -1665px}i.flag.mali:before,i.flag.ml:before{background-position:-36px -1691px}i.flag.burma:before,i.flag.mm:before,i.flag.myanmar:before{background-position:-36px -1717px}i.flag.mn:before,i.flag.mongolia:before{background-position:-36px -1743px}i.flag.macau:before,i.flag.mo:before{background-position:-36px -1769px}i.flag.mp:before,i.flag.northern.mariana.islands:before{background-position:-36px -1795px}i.flag.martinique:before,i.flag.mq:before{background-position:-36px -1821px}i.flag.mauritania:before,i.flag.mr:before{background-position:-36px -1847px}i.flag.montserrat:before,i.flag.ms:before{background-position:-36px -1873px}i.flag.malta:before,i.flag.mt:before{background-position:-36px -1899px}i.flag.mauritius:before,i.flag.mu:before{background-position:-36px -1925px}i.flag.maldives:before,i.flag.mv:before{background-position:-36px -1951px}i.flag.malawi:before,i.flag.mw:before{background-position:-36px -1977px}i.flag.mexico:before,i.flag.mx:before{background-position:-72px 0}i.flag.malaysia:before,i.flag.my:before{background-position:-72px -26px}i.flag.mozambique:before,i.flag.mz:before{background-position:-72px -52px}i.flag.na:before,i.flag.namibia:before{background-position:-72px -78px}i.flag.nc:before,i.flag.new.caledonia:before{background-position:-72px -104px}i.flag.ne:before,i.flag.niger:before{background-position:-72px -130px}i.flag.nf:before,i.flag.norfolk.island:before{background-position:-72px -156px}i.flag.ng:before,i.flag.nigeria:before{background-position:-72px -182px}i.flag.ni:before,i.flag.nicaragua:before{background-position:-72px -208px}i.flag.netherlands:before,i.flag.nl:before{background-position:-72px -234px}i.flag.no:before,i.flag.norway:before{background-position:-72px -260px}i.flag.nepal:before,i.flag.np:before{background-position:-72px -286px}i.flag.nauru:before,i.flag.nr:before{background-position:-72px -312px}i.flag.niue:before,i.flag.nu:before{background-position:-72px -338px}i.flag.new.zealand:before,i.flag.nz:before{background-position:-72px -364px}i.flag.om:before,i.flag.oman:before{background-position:-72px -390px}i.flag.pa:before,i.flag.panama:before{background-position:-72px -416px}i.flag.pe:before,i.flag.peru:before{background-position:-72px -442px}i.flag.french.polynesia:before,i.flag.pf:before{background-position:-72px -468px}i.flag.new.guinea:before,i.flag.pg:before{background-position:-72px -494px}i.flag.ph:before,i.flag.philippines:before{background-position:-72px -520px}i.flag.pakistan:before,i.flag.pk:before{background-position:-72px -546px}i.flag.pl:before,i.flag.poland:before{background-position:-72px -572px}i.flag.pm:before,i.flag.saint.pierre:before{background-position:-72px -598px}i.flag.pitcairn.islands:before,i.flag.pn:before{background-position:-72px -624px}i.flag.pr:before,i.flag.puerto.rico:before{background-position:-72px -650px}i.flag.palestine:before,i.flag.ps:before{background-position:-72px -676px}i.flag.portugal:before,i.flag.pt:before{background-position:-72px -702px}i.flag.palau:before,i.flag.pw:before{background-position:-72px -728px}i.flag.paraguay:before,i.flag.py:before{background-position:-72px -754px}i.flag.qa:before,i.flag.qatar:before{background-position:-72px -780px}i.flag.re:before,i.flag.reunion:before{background-position:-72px -806px}i.flag.ro:before,i.flag.romania:before{background-position:-72px -832px}i.flag.rs:before,i.flag.serbia:before{background-position:-72px -858px}i.flag.ru:before,i.flag.russia:before{background-position:-72px -884px}i.flag.rw:before,i.flag.rwanda:before{background-position:-72px -910px}i.flag.sa:before,i.flag.saudi.arabia:before{background-position:-72px -936px}i.flag.sb:before,i.flag.solomon.islands:before{background-position:-72px -962px}i.flag.sc:before,i.flag.seychelles:before{background-position:-72px -988px}i.flag.gb.sct:before,i.flag.scotland:before{background-position:-72px -1014px}i.flag.sd:before,i.flag.sudan:before{background-position:-72px -1040px}i.flag.se:before,i.flag.sweden:before{background-position:-72px -1066px}i.flag.sg:before,i.flag.singapore:before{background-position:-72px -1092px}i.flag.saint.helena:before,i.flag.sh:before{background-position:-72px -1118px}i.flag.si:before,i.flag.slovenia:before{background-position:-72px -1144px}i.flag.jan.mayen:before,i.flag.sj:before,i.flag.svalbard:before{background-position:-72px -1170px}i.flag.sk:before,i.flag.slovakia:before{background-position:-72px -1196px}i.flag.sierra.leone:before,i.flag.sl:before{background-position:-72px -1222px}i.flag.san.marino:before,i.flag.sm:before{background-position:-72px -1248px}i.flag.senegal:before,i.flag.sn:before{background-position:-72px -1274px}i.flag.so:before,i.flag.somalia:before{background-position:-72px -1300px}i.flag.sr:before,i.flag.suriname:before{background-position:-72px -1326px}i.flag.sao.tome:before,i.flag.st:before{background-position:-72px -1352px}i.flag.el.salvador:before,i.flag.sv:before{background-position:-72px -1378px}i.flag.sy:before,i.flag.syria:before{background-position:-72px -1404px}i.flag.swaziland:before,i.flag.sz:before{background-position:-72px -1430px}i.flag.caicos.islands:before,i.flag.tc:before{background-position:-72px -1456px}i.flag.chad:before,i.flag.td:before{background-position:-72px -1482px}i.flag.french.territories:before,i.flag.tf:before{background-position:-72px -1508px}i.flag.tg:before,i.flag.togo:before{background-position:-72px -1534px}i.flag.th:before,i.flag.thailand:before{background-position:-72px -1560px}i.flag.tajikistan:before,i.flag.tj:before{background-position:-72px -1586px}i.flag.tk:before,i.flag.tokelau:before{background-position:-72px -1612px}i.flag.timorleste:before,i.flag.tl:before{background-position:-72px -1638px}i.flag.tm:before,i.flag.turkmenistan:before{background-position:-72px -1664px}i.flag.tn:before,i.flag.tunisia:before{background-position:-72px -1690px}i.flag.to:before,i.flag.tonga:before{background-position:-72px -1716px}i.flag.tr:before,i.flag.turkey:before{background-position:-72px -1742px}i.flag.trinidad:before,i.flag.tt:before{background-position:-72px -1768px}i.flag.tuvalu:before,i.flag.tv:before{background-position:-72px -1794px}i.flag.taiwan:before,i.flag.tw:before{background-position:-72px -1820px}i.flag.tanzania:before,i.flag.tz:before{background-position:-72px -1846px}i.flag.ua:before,i.flag.ukraine:before{background-position:-72px -1872px}i.flag.ug:before,i.flag.uganda:before{background-position:-72px -1898px}i.flag.um:before,i.flag.us.minor.islands:before{background-position:-72px -1924px}i.flag.america:before,i.flag.united.states:before,i.flag.us:before{background-position:-72px -1950px}i.flag.uruguay:before,i.flag.uy:before{background-position:-72px -1976px}i.flag.uz:before,i.flag.uzbekistan:before{background-position:-108px 0}i.flag.va:before,i.flag.vatican.city:before{background-position:-108px -26px}i.flag.saint.vincent:before,i.flag.vc:before{background-position:-108px -52px}i.flag.ve:before,i.flag.venezuela:before{background-position:-108px -78px}i.flag.british.virgin.islands:before,i.flag.vg:before{background-position:-108px -104px}i.flag.us.virgin.islands:before,i.flag.vi:before{background-position:-108px -130px}i.flag.vietnam:before,i.flag.vn:before{background-position:-108px -156px}i.flag.vanuatu:before,i.flag.vu:before{background-position:-108px -182px}i.flag.gb.wls:before,i.flag.wales:before{background-position:-108px -208px}i.flag.wallis.and.futuna:before,i.flag.wf:before{background-position:-108px -234px}i.flag.samoa:before,i.flag.ws:before{background-position:-108px -260px}i.flag.ye:before,i.flag.yemen:before{background-position:-108px -286px}i.flag.mayotte:before,i.flag.yt:before{background-position:-108px -312px}i.flag.south.africa:before,i.flag.za:before{background-position:-108px -338px}i.flag.zambia:before,i.flag.zm:before{background-position:-108px -364px}i.flag.zimbabwe:before,i.flag.zw:before{background-position:-108px -390px}/*!
+ * # Fomantic-UI - Header
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.header{border:none;margin:calc(2rem - .14286em) 0 1rem;padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;line-height:1.28571429em;text-transform:none;color:rgba(0,0,0,.87)}.ui.header:first-child{margin-top:-.14285714em}.ui.header:last-child{margin-bottom:0}.ui.header .sub.header{display:block;font-weight:400;padding:0;margin:0;font-size:1rem;line-height:1.2em;color:rgba(0,0,0,.6)}.ui.header>i.icon{display:table-cell;opacity:1;font-size:1.5em;padding-top:0;vertical-align:middle}.ui.header>i.icon:only-child{display:inline-block;padding:0;margin-right:.75rem}.ui.header>.image:not(.icon),.ui.header>img{display:inline-block;margin-top:.14285714em;width:2.5em;height:auto;vertical-align:middle}.ui.header>.image:not(.icon):only-child,.ui.header>img:only-child{margin-right:.75rem}.ui.header .content{display:inline-block;vertical-align:top}.ui.header>.image+.content,.ui.header>i.icon+.content,.ui.header>img+.content{padding-left:.75rem;vertical-align:middle}.ui.header>i.icon+.content{display:table-cell}.ui.header .ui.label{font-size:"";margin-left:.5rem;vertical-align:middle}.ui.header+p{margin-top:0}h1.ui.header{font-size:2rem}h1.ui.header .sub.header{font-size:1.14285714rem}h2.ui.header{font-size:1.71428571rem}h2.ui.header .sub.header{font-size:1.14285714rem}h3.ui.header{font-size:1.28571429rem}h3.ui.header .sub.header{font-size:1rem}h4.ui.header{font-size:1.07142857rem}h4.ui.header .sub.header,h5.ui.header{font-size:1rem}h5.ui.header .sub.header{font-size:.92857143rem}h6.ui.header{font-size:.85714286rem}h6.ui.header .sub.header{font-size:.92857143rem}.ui.mini.header{font-size:.85714286em}.ui.mini.header .sub.header{font-size:.92857143rem}.ui.mini.sub.header{font-size:.78571429em}.ui.tiny.header{font-size:1em}.ui.tiny.header .sub.header{font-size:.92857143rem}.ui.tiny.sub.header{font-size:.78571429em}.ui.small.header{font-size:1.07142857em}.ui.small.header .sub.header{font-size:1rem}.ui.small.sub.header{font-size:.78571429em}.ui.large.header{font-size:1.71428571em}.ui.large.header .sub.header{font-size:1.14285714rem}.ui.large.sub.header{font-size:.92857143em}.ui.big.header{font-size:1.85714286em}.ui.big.header .sub.header{font-size:1.14285714rem}.ui.big.sub.header{font-size:1em}.ui.huge.header{font-size:2em;min-height:1em}.ui.huge.header .sub.header{font-size:1.14285714rem}.ui.huge.sub.header{font-size:1em}.ui.massive.header{font-size:2.28571429em;min-height:1em}.ui.massive.header .sub.header{font-size:1.42857143rem}.ui.massive.sub.header{font-size:1.14285714em}.ui.sub.header{padding:0;margin-bottom:.14285714rem;font-weight:700;font-size:.85714286em;text-transform:uppercase;color:""}.ui.icon.header{display:inline-block;text-align:center;margin:2rem 0 1rem}.ui.icon.header:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.icon.header:first-child{margin-top:0}.ui.icon.header>i.icon{float:none;display:block;width:auto;height:auto;line-height:1;padding:0;font-size:3em;margin:0 auto .5rem;opacity:1}.ui.icon.header .corner.icon{font-size:1.35em}.ui.icon.header .content{display:block;padding:0}.ui.icon.header>i.circular.icon,.ui.icon.header>i.square.icon{font-size:2em}.ui.block.icon.header>i.icon{margin-bottom:0}.ui.icon.header.aligned{margin-left:auto;margin-right:auto;display:block}.ui.disabled.header{opacity:.45}.ui.inverted.header{color:#fff}.ui.inverted.header .sub.header{color:hsla(0,0%,100%,.8)}.ui.inverted.attached.header{background:#1b1c1d;box-shadow:none;border-color:transparent}.ui.inverted.block.header{background:#545454 linear-gradient(transparent,rgba(0,0,0,.05));box-shadow:none;border-bottom:none}.ui.primary.header{color:#2185d0}a.ui.primary.header:hover{color:#1678c2}.ui.primary.dividing.header{border-bottom:2px solid #2185d0}.ui.inverted.primary.header.header.header{color:#54c8ff}a.ui.inverted.primary.header.header.header:hover{color:#21b8ff}.ui.inverted.primary.dividing.header{border-bottom:2px solid #54c8ff}.ui.secondary.header{color:#1b1c1d}a.ui.secondary.header:hover{color:#27292a}.ui.secondary.dividing.header{border-bottom:2px solid #1b1c1d}.ui.inverted.secondary.header.header.header{color:#545454}a.ui.inverted.secondary.header.header.header:hover{color:#6e6e6e}.ui.inverted.secondary.dividing.header{border-bottom:2px solid #545454}.ui.red.header{color:#db2828}a.ui.red.header:hover{color:#d01919}.ui.red.dividing.header{border-bottom:2px solid #db2828}.ui.inverted.red.header.header.header{color:#ff695e}a.ui.inverted.red.header.header.header:hover{color:#ff392b}.ui.inverted.red.dividing.header{border-bottom:2px solid #ff695e}.ui.orange.header{color:#f2711c}a.ui.orange.header:hover{color:#f26202}.ui.orange.dividing.header{border-bottom:2px solid #f2711c}.ui.inverted.orange.header.header.header{color:#ff851b}a.ui.inverted.orange.header.header.header:hover{color:#e76b00}.ui.inverted.orange.dividing.header{border-bottom:2px solid #ff851b}.ui.yellow.header{color:#fbbd08}a.ui.yellow.header:hover{color:#eaae00}.ui.yellow.dividing.header{border-bottom:2px solid #fbbd08}.ui.inverted.yellow.header.header.header{color:#ffe21f}a.ui.inverted.yellow.header.header.header:hover{color:#ebcd00}.ui.inverted.yellow.dividing.header{border-bottom:2px solid #ffe21f}.ui.olive.header{color:#b5cc18}a.ui.olive.header:hover{color:#a7bd0d}.ui.olive.dividing.header{border-bottom:2px solid #b5cc18}.ui.inverted.olive.header.header.header{color:#d9e778}a.ui.inverted.olive.header.header.header:hover{color:#d2e745}.ui.inverted.olive.dividing.header{border-bottom:2px solid #d9e778}.ui.green.header{color:#21ba45}a.ui.green.header:hover{color:#16ab39}.ui.green.dividing.header{border-bottom:2px solid #21ba45}.ui.inverted.green.header.header.header{color:#2ecc40}a.ui.inverted.green.header.header.header:hover{color:#1ea92e}.ui.inverted.green.dividing.header{border-bottom:2px solid #2ecc40}.ui.teal.header{color:#00b5ad}a.ui.teal.header:hover{color:#009c95}.ui.teal.dividing.header{border-bottom:2px solid #00b5ad}.ui.inverted.teal.header.header.header{color:#6dffff}a.ui.inverted.teal.header.header.header:hover{color:#3affff}.ui.inverted.teal.dividing.header{border-bottom:2px solid #6dffff}.ui.blue.header{color:#2185d0}a.ui.blue.header:hover{color:#1678c2}.ui.blue.dividing.header{border-bottom:2px solid #2185d0}.ui.inverted.blue.header.header.header{color:#54c8ff}a.ui.inverted.blue.header.header.header:hover{color:#21b8ff}.ui.inverted.blue.dividing.header{border-bottom:2px solid #54c8ff}.ui.violet.header{color:#6435c9}a.ui.violet.header:hover{color:#5829bb}.ui.violet.dividing.header{border-bottom:2px solid #6435c9}.ui.inverted.violet.header.header.header{color:#a291fb}a.ui.inverted.violet.header.header.header:hover{color:#745aff}.ui.inverted.violet.dividing.header{border-bottom:2px solid #a291fb}.ui.purple.header{color:#a333c8}a.ui.purple.header:hover{color:#9627ba}.ui.purple.dividing.header{border-bottom:2px solid #a333c8}.ui.inverted.purple.header.header.header{color:#dc73ff}a.ui.inverted.purple.header.header.header:hover{color:#cf40ff}.ui.inverted.purple.dividing.header{border-bottom:2px solid #dc73ff}.ui.pink.header{color:#e03997}a.ui.pink.header:hover{color:#e61a8d}.ui.pink.dividing.header{border-bottom:2px solid #e03997}.ui.inverted.pink.header.header.header{color:#ff8edf}a.ui.inverted.pink.header.header.header:hover{color:#ff5bd1}.ui.inverted.pink.dividing.header{border-bottom:2px solid #ff8edf}.ui.brown.header{color:#a5673f}a.ui.brown.header:hover{color:#975b33}.ui.brown.dividing.header{border-bottom:2px solid #a5673f}.ui.inverted.brown.header.header.header{color:#d67c1c}a.ui.inverted.brown.header.header.header:hover{color:#b0620f}.ui.inverted.brown.dividing.header{border-bottom:2px solid #d67c1c}.ui.grey.header{color:#767676}a.ui.grey.header:hover{color:#838383}.ui.grey.dividing.header{border-bottom:2px solid #767676}.ui.inverted.grey.header.header.header{color:#dcddde}a.ui.inverted.grey.header.header.header:hover{color:#c2c4c5}.ui.inverted.grey.dividing.header{border-bottom:2px solid #dcddde}.ui.black.header{color:#1b1c1d}a.ui.black.header:hover{color:#27292a}.ui.black.dividing.header{border-bottom:2px solid #1b1c1d}.ui.inverted.black.header.header.header{color:#545454}a.ui.inverted.black.header.header.header:hover{color:#000}.ui.inverted.black.dividing.header{border-bottom:2px solid #545454}.ui.left.aligned.header{text-align:left}.ui.right.aligned.header{text-align:right}.ui.center.aligned.header,.ui.centered.header{text-align:center}.ui.justified.header{text-align:justify}.ui.justified.header:after{display:inline-block;content:"";width:100%}.ui.floated.header,.ui[class*="left floated"].header{float:left;margin-top:0;margin-right:.5em}.ui[class*="right floated"].header{float:right;margin-top:0;margin-left:.5em}.ui.fitted.header{padding:0}.ui.dividing.header{border-bottom:1px solid rgba(34,36,38,.15)}.ui.dividing.header,.ui.dividing.header .sub.header{padding-bottom:.21428571rem}.ui.dividing.header i.icon{margin-bottom:0}.ui.inverted.dividing.header{border-bottom-color:hsla(0,0%,100%,.1)}.ui.block.header{background:#f3f4f5;padding:.78571429rem 1rem;box-shadow:none;border:1px solid #d4d4d5;border-radius:.28571429rem}.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1rem}.ui.mini.block.header{font-size:.78571429rem}.ui.tiny.block.header{font-size:.85714286rem}.ui.small.block.header{font-size:.92857143rem}.ui.large.block.header{font-size:1.14285714rem}.ui.big.block.header{font-size:1.28571429rem}.ui.huge.block.header{font-size:1.42857143rem}.ui.massive.block.header{font-size:1.71428571rem}.ui.attached.header{background:#fff;padding:.78571429rem 1rem;margin:0 -1px;box-shadow:none;border:1px solid #d4d4d5;border-radius:0}.ui.attached.block.header{background:#f3f4f5}.ui.attached:not(.top).header{border-top:none}.ui.top.attached.header{border-radius:.28571429rem .28571429rem 0 0}.ui.bottom.attached.header{border-radius:0 0 .28571429rem .28571429rem}.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1em}.ui.mini.attached.header{font-size:.78571429em}.ui.tiny.attached.header{font-size:.85714286em}.ui.small.attached.header{font-size:.92857143em}.ui.large.attached.header{font-size:1.14285714em}.ui.big.attached.header{font-size:1.28571429em}.ui.huge.attached.header{font-size:1.42857143em}.ui.massive.attached.header{font-size:1.71428571em}.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1.28571429em}/*!
+ * # Fomantic-UI - Icon
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */@font-face{font-family:Icons;src:url(../fonts/icons.eot);src:url(../fonts/icons.eot?#iefix) format("embedded-opentype"),url(../fonts/icons.woff2) format("woff2"),url(../fonts/icons.woff) format("woff"),url(../fonts/icons.ttf) format("truetype"),url(../images/icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:1;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit;text-align:center;speak:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.icon:before{background:0 0!important}i.icon.loading{height:1em;line-height:1;-webkit-animation:loader 2s linear infinite;animation:loader 2s linear infinite}i.emphasized.icon:not(.disabled),i.emphasized.icons:not(.disabled),i.icon:active,i.icon:hover,i.icons:active,i.icons:hover{opacity:1}i.disabled.icon,i.disabled.icons{opacity:.45;cursor:default;pointer-events:none}i.fitted.icon{width:auto;margin:0!important}i.link.icon:not(.disabled),i.link.icons:not(.disabled){cursor:pointer;opacity:.8;transition:opacity .1s ease}i.link.icon:hover,i.link.icons:hover{opacity:1}i.circular.icon{border-radius:500em!important;line-height:1!important;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1);width:2em!important;height:2em!important}i.circular.inverted.icon{border:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{transform:scaleX(-1)}i.vertically.flipped.icon{transform:scaleY(-1)}i.clockwise.rotated.icon,i.right.rotated.icon,i.rotated.icon{transform:rotate(90deg)}i.counterclockwise.rotated.icon,i.left.rotated.icon{transform:rotate(-90deg)}i.halfway.rotated.icon{transform:rotate(180deg)}i.clockwise.rotated.flipped.icon,i.right.rotated.flipped.icon,i.rotated.flipped.icon{transform:scaleX(-1) rotate(90deg)}i.counterclockwise.rotated.flipped.icon,i.left.rotated.flipped.icon{transform:scaleX(-1) rotate(-90deg)}i.halfway.rotated.flipped.icon{transform:scaleX(-1) rotate(180deg)}i.clockwise.rotated.vertically.flipped.icon,i.right.rotated.vertically.flipped.icon,i.rotated.vertically.flipped.icon{transform:scaleY(-1) rotate(90deg)}i.counterclockwise.rotated.vertically.flipped.icon,i.left.rotated.vertically.flipped.icon{transform:scaleY(-1) rotate(-90deg)}i.halfway.rotated.vertically.flipped.icon{transform:scaleY(-1) rotate(180deg)}i.bordered.icon{line-height:1;vertical-align:baseline;width:2em;height:2em;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1)}i.bordered.inverted.icon{border:none;box-shadow:none}i.inverted.bordered.icon,i.inverted.circular.icon{background-color:#1b1c1d;color:#fff}i.inverted.icon{color:#fff}i.primary.icon.icon.icon.icon{color:#2185d0}i.inverted.primary.icon.icon.icon.icon{color:#54c8ff}i.inverted.bordered.primary.icon.icon.icon.icon,i.inverted.circular.primary.icon.icon.icon.icon{background-color:#2185d0;color:#fff}i.secondary.icon.icon.icon.icon{color:#1b1c1d}i.inverted.secondary.icon.icon.icon.icon{color:#545454}i.inverted.bordered.secondary.icon.icon.icon.icon,i.inverted.circular.secondary.icon.icon.icon.icon{background-color:#1b1c1d;color:#fff}i.red.icon.icon.icon.icon{color:#db2828}i.inverted.red.icon.icon.icon.icon{color:#ff695e}i.inverted.bordered.red.icon.icon.icon.icon,i.inverted.circular.red.icon.icon.icon.icon{background-color:#db2828;color:#fff}i.orange.icon.icon.icon.icon{color:#f2711c}i.inverted.orange.icon.icon.icon.icon{color:#ff851b}i.inverted.bordered.orange.icon.icon.icon.icon,i.inverted.circular.orange.icon.icon.icon.icon{background-color:#f2711c;color:#fff}i.yellow.icon.icon.icon.icon{color:#fbbd08}i.inverted.yellow.icon.icon.icon.icon{color:#ffe21f}i.inverted.bordered.yellow.icon.icon.icon.icon,i.inverted.circular.yellow.icon.icon.icon.icon{background-color:#fbbd08;color:#fff}i.olive.icon.icon.icon.icon{color:#b5cc18}i.inverted.olive.icon.icon.icon.icon{color:#d9e778}i.inverted.bordered.olive.icon.icon.icon.icon,i.inverted.circular.olive.icon.icon.icon.icon{background-color:#b5cc18;color:#fff}i.green.icon.icon.icon.icon{color:#21ba45}i.inverted.green.icon.icon.icon.icon{color:#2ecc40}i.inverted.bordered.green.icon.icon.icon.icon,i.inverted.circular.green.icon.icon.icon.icon{background-color:#21ba45;color:#fff}i.teal.icon.icon.icon.icon{color:#00b5ad}i.inverted.teal.icon.icon.icon.icon{color:#6dffff}i.inverted.bordered.teal.icon.icon.icon.icon,i.inverted.circular.teal.icon.icon.icon.icon{background-color:#00b5ad;color:#fff}i.blue.icon.icon.icon.icon{color:#2185d0}i.inverted.blue.icon.icon.icon.icon{color:#54c8ff}i.inverted.bordered.blue.icon.icon.icon.icon,i.inverted.circular.blue.icon.icon.icon.icon{background-color:#2185d0;color:#fff}i.violet.icon.icon.icon.icon{color:#6435c9}i.inverted.violet.icon.icon.icon.icon{color:#a291fb}i.inverted.bordered.violet.icon.icon.icon.icon,i.inverted.circular.violet.icon.icon.icon.icon{background-color:#6435c9;color:#fff}i.purple.icon.icon.icon.icon{color:#a333c8}i.inverted.purple.icon.icon.icon.icon{color:#dc73ff}i.inverted.bordered.purple.icon.icon.icon.icon,i.inverted.circular.purple.icon.icon.icon.icon{background-color:#a333c8;color:#fff}i.pink.icon.icon.icon.icon{color:#e03997}i.inverted.pink.icon.icon.icon.icon{color:#ff8edf}i.inverted.bordered.pink.icon.icon.icon.icon,i.inverted.circular.pink.icon.icon.icon.icon{background-color:#e03997;color:#fff}i.brown.icon.icon.icon.icon{color:#a5673f}i.inverted.brown.icon.icon.icon.icon{color:#d67c1c}i.inverted.bordered.brown.icon.icon.icon.icon,i.inverted.circular.brown.icon.icon.icon.icon{background-color:#a5673f;color:#fff}i.grey.icon.icon.icon.icon{color:#767676}i.inverted.grey.icon.icon.icon.icon{color:#dcddde}i.inverted.bordered.grey.icon.icon.icon.icon,i.inverted.circular.grey.icon.icon.icon.icon{background-color:#767676;color:#fff}i.black.icon.icon.icon.icon{color:#1b1c1d}i.inverted.black.icon.icon.icon.icon{color:#545454}i.inverted.bordered.black.icon.icon.icon.icon,i.inverted.circular.black.icon.icon.icon.icon{background-color:#1b1c1d;color:#fff}i.icon,i.icons{font-size:1em;line-height:1}i.mini.mini.mini.icon,i.mini.mini.mini.icons{font-size:.4em;vertical-align:middle}i.tiny.tiny.tiny.icon,i.tiny.tiny.tiny.icons{font-size:.5em;vertical-align:middle}i.small.small.small.icon,i.small.small.small.icons{font-size:.75em;vertical-align:middle}i.large.large.large.icon,i.large.large.large.icons{font-size:1.5em;vertical-align:middle}i.big.big.big.icon,i.big.big.big.icons{font-size:2em;vertical-align:middle}i.huge.huge.huge.icon,i.huge.huge.huge.icons{font-size:4em;vertical-align:middle}i.massive.massive.massive.icon,i.massive.massive.massive.icons{font-size:8em;vertical-align:middle}i.icons{display:inline-block;position:relative;line-height:1}i.icons .icon{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);margin:0}i.icons .icon:first-child{position:static;width:auto;height:auto;vertical-align:top;transform:none}i.icons .corner.icon{top:auto;left:auto;right:0;bottom:0;transform:none;font-size:.45em;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}i.icons .icon.corner[class*="top right"]{top:0;left:auto;right:0;bottom:auto}i.icons .icon.corner[class*="top left"]{top:0;left:0;right:auto;bottom:auto}i.icons .icon.corner[class*="bottom left"]{top:auto;left:0;right:auto;bottom:0}i.icons .icon.corner[class*="bottom right"]{top:auto;left:auto;right:0;bottom:0}i.icons .inverted.corner.icon{text-shadow:-1px -1px 0 #1b1c1d,1px -1px 0 #1b1c1d,-1px 1px 0 #1b1c1d,1px 1px 0 #1b1c1d}i.icon.ad:before{content:"\f641"}i.icon.address.book:before{content:"\f2b9"}i.icon.address.card:before{content:"\f2bb"}i.icon.adjust:before{content:"\f042"}i.icon.air.freshener:before{content:"\f5d0"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.allergies:before{content:"\f461"}i.icon.ambulance:before{content:"\f0f9"}i.icon.american.sign.language.interpreting:before{content:"\f2a3"}i.icon.anchor:before{content:"\f13d"}i.icon.angle.double.down:before{content:"\f103"}i.icon.angle.double.left:before{content:"\f100"}i.icon.angle.double.right:before{content:"\f101"}i.icon.angle.double.up:before{content:"\f102"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.angry:before{content:"\f556"}i.icon.ankh:before{content:"\f644"}i.icon.archive:before{content:"\f187"}i.icon.archway:before{content:"\f557"}i.icon.arrow.alternate.circle.down:before{content:"\f358"}i.icon.arrow.alternate.circle.left:before{content:"\f359"}i.icon.arrow.alternate.circle.right:before{content:"\f35a"}i.icon.arrow.alternate.circle.up:before{content:"\f35b"}i.icon.arrow.circle.down:before{content:"\f0ab"}i.icon.arrow.circle.left:before{content:"\f0a8"}i.icon.arrow.circle.right:before{content:"\f0a9"}i.icon.arrow.circle.up:before{content:"\f0aa"}i.icon.arrow.left:before{content:"\f060"}i.icon.arrow.right:before{content:"\f061"}i.icon.arrow.up:before{content:"\f062"}i.icon.arrow.down:before{content:"\f063"}i.icon.arrows.alternate:before{content:"\f0b2"}i.icon.arrows.alternate.horizontal:before{content:"\f337"}i.icon.arrows.alternate.vertical:before{content:"\f338"}i.icon.assistive.listening.systems:before{content:"\f2a2"}i.icon.asterisk:before{content:"\f069"}i.icon.at:before{content:"\f1fa"}i.icon.atlas:before{content:"\f558"}i.icon.atom:before{content:"\f5d2"}i.icon.audio.description:before{content:"\f29e"}i.icon.award:before{content:"\f559"}i.icon.baby:before{content:"\f77c"}i.icon.baby.carriage:before{content:"\f77d"}i.icon.backspace:before{content:"\f55a"}i.icon.backward:before{content:"\f04a"}i.icon.bacon:before{content:"\f7e5"}i.icon.bahai:before{content:"\f666"}i.icon.balance.scale:before{content:"\f24e"}i.icon.balance.scale.left:before{content:"\f515"}i.icon.balance.scale.right:before{content:"\f516"}i.icon.ban:before{content:"\f05e"}i.icon.band.aid:before{content:"\f462"}i.icon.barcode:before{content:"\f02a"}i.icon.bars:before{content:"\f0c9"}i.icon.baseball.ball:before{content:"\f433"}i.icon.basketball.ball:before{content:"\f434"}i.icon.bath:before{content:"\f2cd"}i.icon.battery.empty:before{content:"\f244"}i.icon.battery.full:before{content:"\f240"}i.icon.battery.half:before{content:"\f242"}i.icon.battery.quarter:before{content:"\f243"}i.icon.battery.three.quarters:before{content:"\f241"}i.icon.bed:before{content:"\f236"}i.icon.beer:before{content:"\f0fc"}i.icon.bell:before{content:"\f0f3"}i.icon.bell.slash:before{content:"\f1f6"}i.icon.bezier.curve:before{content:"\f55b"}i.icon.bible:before{content:"\f647"}i.icon.bicycle:before{content:"\f206"}i.icon.biking:before{content:"\f84a"}i.icon.binoculars:before{content:"\f1e5"}i.icon.biohazard:before{content:"\f780"}i.icon.birthday.cake:before{content:"\f1fd"}i.icon.blender:before{content:"\f517"}i.icon.blender.phone:before{content:"\f6b6"}i.icon.blind:before{content:"\f29d"}i.icon.blog:before{content:"\f781"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.bomb:before{content:"\f1e2"}i.icon.bone:before{content:"\f5d7"}i.icon.bong:before{content:"\f55c"}i.icon.book:before{content:"\f02d"}i.icon.book.dead:before{content:"\f6b7"}i.icon.book.medical:before{content:"\f7e6"}i.icon.book.open:before{content:"\f518"}i.icon.book.reader:before{content:"\f5da"}i.icon.bookmark:before{content:"\f02e"}i.icon.border.all:before{content:"\f84c"}i.icon.border.none:before{content:"\f850"}i.icon.border.style:before{content:"\f853"}i.icon.bowling.ball:before{content:"\f436"}i.icon.box:before{content:"\f466"}i.icon.box.open:before{content:"\f49e"}i.icon.box.tissue:before{content:"\f95b"}i.icon.boxes:before{content:"\f468"}i.icon.braille:before{content:"\f2a1"}i.icon.brain:before{content:"\f5dc"}i.icon.bread.slice:before{content:"\f7ec"}i.icon.briefcase:before{content:"\f0b1"}i.icon.briefcase.medical:before{content:"\f469"}i.icon.broadcast.tower:before{content:"\f519"}i.icon.broom:before{content:"\f51a"}i.icon.brush:before{content:"\f55d"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f1ad"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.burn:before{content:"\f46a"}i.icon.bus:before{content:"\f207"}i.icon.bus.alternate:before{content:"\f55e"}i.icon.business.time:before{content:"\f64a"}i.icon.calculator:before{content:"\f1ec"}i.icon.calendar:before{content:"\f133"}i.icon.calendar.alternate:before{content:"\f073"}i.icon.calendar.check:before{content:"\f274"}i.icon.calendar.day:before{content:"\f783"}i.icon.calendar.minus:before{content:"\f272"}i.icon.calendar.plus:before{content:"\f271"}i.icon.calendar.times:before{content:"\f273"}i.icon.calendar.week:before{content:"\f784"}i.icon.camera:before{content:"\f030"}i.icon.camera.retro:before{content:"\f083"}i.icon.campground:before{content:"\f6bb"}i.icon.candy.cane:before{content:"\f786"}i.icon.cannabis:before{content:"\f55f"}i.icon.capsules:before{content:"\f46b"}i.icon.car:before{content:"\f1b9"}i.icon.car.alternate:before{content:"\f5de"}i.icon.car.battery:before{content:"\f5df"}i.icon.car.crash:before{content:"\f5e1"}i.icon.car.side:before{content:"\f5e4"}i.icon.caravan:before{content:"\f8ff"}i.icon.caret.down:before{content:"\f0d7"}i.icon.caret.left:before{content:"\f0d9"}i.icon.caret.right:before{content:"\f0da"}i.icon.caret.square.down:before{content:"\f150"}i.icon.caret.square.left:before{content:"\f191"}i.icon.caret.square.right:before{content:"\f152"}i.icon.caret.square.up:before{content:"\f151"}i.icon.caret.up:before{content:"\f0d8"}i.icon.carrot:before{content:"\f787"}i.icon.cart.arrow.down:before{content:"\f218"}i.icon.cart.plus:before{content:"\f217"}i.icon.cash.register:before{content:"\f788"}i.icon.cat:before{content:"\f6be"}i.icon.certificate:before{content:"\f0a3"}i.icon.chair:before{content:"\f6c0"}i.icon.chalkboard:before{content:"\f51b"}i.icon.chalkboard.teacher:before{content:"\f51c"}i.icon.charging.station:before{content:"\f5e7"}i.icon.chart.area:before{content:"\f1fe"}i.icon.chart.bar:before{content:"\f080"}i.icon.chart.line:before,i.icon.chartline:before{content:"\f201"}i.icon.chart.pie:before{content:"\f200"}i.icon.check:before{content:"\f00c"}i.icon.check.circle:before{content:"\f058"}i.icon.check.double:before{content:"\f560"}i.icon.check.square:before{content:"\f14a"}i.icon.cheese:before{content:"\f7ef"}i.icon.chess:before{content:"\f439"}i.icon.chess.bishop:before{content:"\f43a"}i.icon.chess.board:before{content:"\f43c"}i.icon.chess.king:before{content:"\f43f"}i.icon.chess.knight:before{content:"\f441"}i.icon.chess.pawn:before{content:"\f443"}i.icon.chess.queen:before{content:"\f445"}i.icon.chess.rook:before{content:"\f447"}i.icon.chevron.circle.down:before{content:"\f13a"}i.icon.chevron.circle.left:before{content:"\f137"}i.icon.chevron.circle.right:before{content:"\f138"}i.icon.chevron.circle.up:before{content:"\f139"}i.icon.chevron.down:before{content:"\f078"}i.icon.chevron.left:before{content:"\f053"}i.icon.chevron.right:before{content:"\f054"}i.icon.chevron.up:before{content:"\f077"}i.icon.child:before{content:"\f1ae"}i.icon.church:before{content:"\f51d"}i.icon.circle:before{content:"\f111"}i.icon.circle.notch:before{content:"\f1ce"}i.icon.city:before{content:"\f64f"}i.icon.clinic.medical:before{content:"\f7f2"}i.icon.clipboard:before{content:"\f328"}i.icon.clipboard.check:before{content:"\f46c"}i.icon.clipboard.list:before{content:"\f46d"}i.icon.clock:before{content:"\f017"}i.icon.clone:before{content:"\f24d"}i.icon.closed.captioning:before{content:"\f20a"}i.icon.cloud:before{content:"\f0c2"}i.icon.cloud.download.alternate:before{content:"\f381"}i.icon.cloud.meatball:before{content:"\f73b"}i.icon.cloud.moon:before{content:"\f6c3"}i.icon.cloud.moon.rain:before{content:"\f73c"}i.icon.cloud.rain:before{content:"\f73d"}i.icon.cloud.showers.heavy:before{content:"\f740"}i.icon.cloud.sun:before{content:"\f6c4"}i.icon.cloud.sun.rain:before{content:"\f743"}i.icon.cloud.upload.alternate:before{content:"\f382"}i.icon.cocktail:before{content:"\f561"}i.icon.code:before{content:"\f121"}i.icon.code.branch:before{content:"\f126"}i.icon.coffee:before{content:"\f0f4"}i.icon.cog:before{content:"\f013"}i.icon.cogs:before{content:"\f085"}i.icon.coins:before{content:"\f51e"}i.icon.columns:before{content:"\f0db"}i.icon.comment:before{content:"\f075"}i.icon.comment.alternate:before{content:"\f27a"}i.icon.comment.dollar:before{content:"\f651"}i.icon.comment.dots:before{content:"\f4ad"}i.icon.comment.medical:before{content:"\f7f5"}i.icon.comment.slash:before{content:"\f4b3"}i.icon.comments:before{content:"\f086"}i.icon.comments.dollar:before{content:"\f653"}i.icon.compact.disc:before{content:"\f51f"}i.icon.compass:before{content:"\f14e"}i.icon.compress:before{content:"\f066"}i.icon.compress.alternate:before{content:"\f422"}i.icon.compress.arrows.alternate:before{content:"\f78c"}i.icon.concierge.bell:before{content:"\f562"}i.icon.cookie:before{content:"\f563"}i.icon.cookie.bite:before{content:"\f564"}i.icon.copy:before{content:"\f0c5"}i.icon.copyright:before{content:"\f1f9"}i.icon.couch:before{content:"\f4b8"}i.icon.credit.card:before{content:"\f09d"}i.icon.crop:before{content:"\f125"}i.icon.crop.alternate:before{content:"\f565"}i.icon.cross:before{content:"\f654"}i.icon.crosshairs:before{content:"\f05b"}i.icon.crow:before{content:"\f520"}i.icon.crown:before{content:"\f521"}i.icon.crutch:before{content:"\f7f7"}i.icon.cube:before{content:"\f1b2"}i.icon.cubes:before{content:"\f1b3"}i.icon.cut:before{content:"\f0c4"}i.icon.database:before{content:"\f1c0"}i.icon.deaf:before{content:"\f2a4"}i.icon.democrat:before{content:"\f747"}i.icon.desktop:before{content:"\f108"}i.icon.dharmachakra:before{content:"\f655"}i.icon.diagnoses:before{content:"\f470"}i.icon.dice:before{content:"\f522"}i.icon.dice.d20:before{content:"\f6cf"}i.icon.dice.d6:before{content:"\f6d1"}i.icon.dice.five:before{content:"\f523"}i.icon.dice.four:before{content:"\f524"}i.icon.dice.one:before{content:"\f525"}i.icon.dice.six:before{content:"\f526"}i.icon.dice.three:before{content:"\f527"}i.icon.dice.two:before{content:"\f528"}i.icon.digital.tachograph:before{content:"\f566"}i.icon.directions:before{content:"\f5eb"}i.icon.disease:before{content:"\f7fa"}i.icon.divide:before{content:"\f529"}i.icon.dizzy:before{content:"\f567"}i.icon.dna:before{content:"\f471"}i.icon.dog:before{content:"\f6d3"}i.icon.dollar.sign:before{content:"\f155"}i.icon.dolly:before{content:"\f472"}i.icon.dolly.flatbed:before{content:"\f474"}i.icon.donate:before{content:"\f4b9"}i.icon.door.closed:before{content:"\f52a"}i.icon.door.open:before{content:"\f52b"}i.icon.dot.circle:before{content:"\f192"}i.icon.dove:before{content:"\f4ba"}i.icon.download:before{content:"\f019"}i.icon.drafting.compass:before{content:"\f568"}i.icon.dragon:before{content:"\f6d5"}i.icon.draw.polygon:before{content:"\f5ee"}i.icon.drum:before{content:"\f569"}i.icon.drum.steelpan:before{content:"\f56a"}i.icon.drumstick.bite:before{content:"\f6d7"}i.icon.dumbbell:before{content:"\f44b"}i.icon.dumpster:before{content:"\f793"}i.icon.dumpster.fire:before{content:"\f794"}i.icon.dungeon:before{content:"\f6d9"}i.icon.edit:before{content:"\f044"}i.icon.egg:before{content:"\f7fb"}i.icon.eject:before{content:"\f052"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.envelope:before{content:"\f0e0"}i.icon.envelope.open:before{content:"\f2b6"}i.icon.envelope.open.text:before{content:"\f658"}i.icon.envelope.square:before{content:"\f199"}i.icon.equals:before{content:"\f52c"}i.icon.eraser:before{content:"\f12d"}i.icon.ethernet:before{content:"\f796"}i.icon.euro.sign:before{content:"\f153"}i.icon.exchange.alternate:before{content:"\f362"}i.icon.exclamation:before{content:"\f12a"}i.icon.exclamation.circle:before{content:"\f06a"}i.icon.exclamation.triangle:before{content:"\f071"}i.icon.expand:before{content:"\f065"}i.icon.expand.alternate:before{content:"\f424"}i.icon.expand.arrows.alternate:before{content:"\f31e"}i.icon.external.alternate:before{content:"\f35d"}i.icon.external.link.square.alternate:before{content:"\f360"}i.icon.eye:before{content:"\f06e"}i.icon.eye.dropper:before{content:"\f1fb"}i.icon.eye.slash:before{content:"\f070"}i.icon.fan:before{content:"\f863"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.faucet:before{content:"\f905"}i.icon.fax:before{content:"\f1ac"}i.icon.feather:before{content:"\f52d"}i.icon.feather.alternate:before{content:"\f56b"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file:before{content:"\f15b"}i.icon.file.alternate:before{content:"\f15c"}i.icon.file.archive:before{content:"\f1c6"}i.icon.file.audio:before{content:"\f1c7"}i.icon.file.code:before{content:"\f1c9"}i.icon.file.contract:before{content:"\f56c"}i.icon.file.csv:before{content:"\f6dd"}i.icon.file.download:before{content:"\f56d"}i.icon.file.excel:before{content:"\f1c3"}i.icon.file.export:before{content:"\f56e"}i.icon.file.image:before{content:"\f1c5"}i.icon.file.import:before{content:"\f56f"}i.icon.file.invoice:before{content:"\f570"}i.icon.file.invoice.dollar:before{content:"\f571"}i.icon.file.medical:before{content:"\f477"}i.icon.file.medical.alternate:before{content:"\f478"}i.icon.file.pdf:before{content:"\f1c1"}i.icon.file.powerpoint:before{content:"\f1c4"}i.icon.file.prescription:before{content:"\f572"}i.icon.file.signature:before{content:"\f573"}i.icon.file.upload:before{content:"\f574"}i.icon.file.video:before{content:"\f1c8"}i.icon.file.word:before{content:"\f1c2"}i.icon.fill:before{content:"\f575"}i.icon.fill.drip:before{content:"\f576"}i.icon.film:before{content:"\f008"}i.icon.filter:before{content:"\f0b0"}i.icon.fingerprint:before{content:"\f577"}i.icon.fire:before{content:"\f06d"}i.icon.fire.alternate:before{content:"\f7e4"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.first.aid:before{content:"\f479"}i.icon.fish:before{content:"\f578"}i.icon.fist.raised:before{content:"\f6de"}i.icon.flag:before{content:"\f024"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flag.usa:before{content:"\f74d"}i.icon.flask:before{content:"\f0c3"}i.icon.flushed:before{content:"\f579"}i.icon.folder:before{content:"\f07b"}i.icon.folder.minus:before{content:"\f65d"}i.icon.folder.open:before{content:"\f07c"}i.icon.folder.plus:before{content:"\f65e"}i.icon.font:before{content:"\f031"}i.icon.football.ball:before{content:"\f44e"}i.icon.forward:before{content:"\f04e"}i.icon.frog:before{content:"\f52e"}i.icon.frown:before{content:"\f119"}i.icon.frown.open:before{content:"\f57a"}i.icon.fruit-apple:before{content:"\f5d1"}i.icon.funnel.dollar:before{content:"\f662"}i.icon.futbol:before{content:"\f1e3"}i.icon.gamepad:before{content:"\f11b"}i.icon.gas.pump:before{content:"\f52f"}i.icon.gavel:before{content:"\f0e3"}i.icon.gem:before{content:"\f3a5"}i.icon.genderless:before{content:"\f22d"}i.icon.ghost:before{content:"\f6e2"}i.icon.gift:before{content:"\f06b"}i.icon.gifts:before{content:"\f79c"}i.icon.glass.cheers:before{content:"\f79f"}i.icon.glass.martini:before{content:"\f000"}i.icon.glass.martini.alternate:before{content:"\f57b"}i.icon.glass.whiskey:before{content:"\f7a0"}i.icon.glasses:before{content:"\f530"}i.icon.globe:before{content:"\f0ac"}i.icon.globe.africa:before{content:"\f57c"}i.icon.globe.americas:before{content:"\f57d"}i.icon.globe.asia:before{content:"\f57e"}i.icon.globe.europe:before{content:"\f7a2"}i.icon.golf.ball:before{content:"\f450"}i.icon.gopuram:before{content:"\f664"}i.icon.graduation.cap:before{content:"\f19d"}i.icon.greater.than:before{content:"\f531"}i.icon.greater.than.equal:before{content:"\f532"}i.icon.grimace:before{content:"\f57f"}i.icon.grin:before{content:"\f580"}i.icon.grin.alternate:before{content:"\f581"}i.icon.grin.beam:before{content:"\f582"}i.icon.grin.beam.sweat:before{content:"\f583"}i.icon.grin.hearts:before{content:"\f584"}i.icon.grin.squint:before{content:"\f585"}i.icon.grin.squint.tears:before{content:"\f586"}i.icon.grin.stars:before{content:"\f587"}i.icon.grin.tears:before{content:"\f588"}i.icon.grin.tongue:before{content:"\f589"}i.icon.grin.tongue.squint:before{content:"\f58a"}i.icon.grin.tongue.wink:before{content:"\f58b"}i.icon.grin.wink:before{content:"\f58c"}i.icon.grip.horizontal:before{content:"\f58d"}i.icon.grip.lines:before{content:"\f7a4"}i.icon.grip.lines.vertical:before{content:"\f7a5"}i.icon.grip.vertical:before{content:"\f58e"}i.icon.guitar:before{content:"\f7a6"}i.icon.h.square:before{content:"\f0fd"}i.icon.hamburger:before{content:"\f805"}i.icon.hammer:before{content:"\f6e3"}i.icon.hamsa:before{content:"\f665"}i.icon.hand.holding:before{content:"\f4bd"}i.icon.hand.holding.heart:before{content:"\f4be"}i.icon.hand.holding.medical:before{content:"\f95c"}i.icon.hand.holding.usd:before{content:"\f4c0"}i.icon.hand.holding.water:before{content:"\f4c1"}i.icon.hand.lizard:before{content:"\f258"}i.icon.hand.middle.finger:before{content:"\f806"}i.icon.hand.paper:before{content:"\f256"}i.icon.hand.peace:before{content:"\f25b"}i.icon.hand.point.down:before{content:"\f0a7"}i.icon.hand.point.left:before{content:"\f0a5"}i.icon.hand.point.right:before{content:"\f0a4"}i.icon.hand.point.up:before{content:"\f0a6"}i.icon.hand.pointer:before{content:"\f25a"}i.icon.hand.rock:before{content:"\f255"}i.icon.hand.scissors:before{content:"\f257"}i.icon.hand.sparkles:before{content:"\f95d"}i.icon.hand.spock:before{content:"\f259"}i.icon.hands:before{content:"\f4c2"}i.icon.hands.helping:before{content:"\f4c4"}i.icon.hands.wash:before{content:"\f95e"}i.icon.handshake:before{content:"\f2b5"}i.icon.handshake.alternate.slash:before{content:"\f95f"}i.icon.handshake.slash:before{content:"\f960"}i.icon.hanukiah:before{content:"\f6e6"}i.icon.hard.hat:before{content:"\f807"}i.icon.hashtag:before{content:"\f292"}i.icon.hat.cowboy:before{content:"\f8c0"}i.icon.hat.cowboy.side:before{content:"\f8c1"}i.icon.hat.wizard:before{content:"\f6e8"}i.icon.hdd:before{content:"\f0a0"}i.icon.head.side.cough:before{content:"\f961"}i.icon.head.side.cough.slash:before{content:"\f962"}i.icon.head.side.mask:before{content:"\f963"}i.icon.head.side.virus:before{content:"\f964"}i.icon.heading:before{content:"\f1dc"}i.icon.headphones:before{content:"\f025"}i.icon.headphones.alternate:before{content:"\f58f"}i.icon.headset:before{content:"\f590"}i.icon.heart:before{content:"\f004"}i.icon.heart.broken:before{content:"\f7a9"}i.icon.heartbeat:before{content:"\f21e"}i.icon.helicopter:before{content:"\f533"}i.icon.highlighter:before{content:"\f591"}i.icon.hiking:before{content:"\f6ec"}i.icon.hippo:before{content:"\f6ed"}i.icon.history:before{content:"\f1da"}i.icon.hockey.puck:before{content:"\f453"}i.icon.holly.berry:before{content:"\f7aa"}i.icon.home:before{content:"\f015"}i.icon.horse:before{content:"\f6f0"}i.icon.horse.head:before{content:"\f7ab"}i.icon.hospital:before{content:"\f0f8"}i.icon.hospital.alternate:before{content:"\f47d"}i.icon.hospital.symbol:before{content:"\f47e"}i.icon.hospital.user:before{content:"\f80d"}i.icon.hot.tub:before{content:"\f593"}i.icon.hotdog:before{content:"\f80f"}i.icon.hotel:before{content:"\f594"}i.icon.hourglass:before{content:"\f254"}i.icon.hourglass.end:before{content:"\f253"}i.icon.hourglass.half:before{content:"\f252"}i.icon.hourglass.start:before{content:"\f251"}i.icon.house.damage:before{content:"\f6f1"}i.icon.house.user:before{content:"\f965"}i.icon.hryvnia:before{content:"\f6f2"}i.icon.i.cursor:before{content:"\f246"}i.icon.ice.cream:before{content:"\f810"}i.icon.icicles:before{content:"\f7ad"}i.icon.icons:before{content:"\f86d"}i.icon.id.badge:before{content:"\f2c1"}i.icon.id.card:before{content:"\f2c2"}i.icon.id.card.alternate:before{content:"\f47f"}i.icon.igloo:before{content:"\f7ae"}i.icon.image:before{content:"\f03e"}i.icon.images:before{content:"\f302"}i.icon.inbox:before{content:"\f01c"}i.icon.indent:before{content:"\f03c"}i.icon.industry:before{content:"\f275"}i.icon.infinity:before{content:"\f534"}i.icon.info:before{content:"\f129"}i.icon.info.circle:before{content:"\f05a"}i.icon.italic:before{content:"\f033"}i.icon.jedi:before{content:"\f669"}i.icon.joint:before{content:"\f595"}i.icon.journal.whills:before{content:"\f66a"}i.icon.kaaba:before{content:"\f66b"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.khanda:before{content:"\f66d"}i.icon.kiss:before{content:"\f596"}i.icon.kiss.beam:before{content:"\f597"}i.icon.kiss.wink.heart:before{content:"\f598"}i.icon.kiwi.bird:before{content:"\f535"}i.icon.landmark:before{content:"\f66f"}i.icon.language:before{content:"\f1ab"}i.icon.laptop:before{content:"\f109"}i.icon.laptop.code:before{content:"\f5fc"}i.icon.laptop.house:before{content:"\f966"}i.icon.laptop.medical:before{content:"\f812"}i.icon.laugh:before{content:"\f599"}i.icon.laugh.beam:before{content:"\f59a"}i.icon.laugh.squint:before{content:"\f59b"}i.icon.laugh.wink:before{content:"\f59c"}i.icon.layer.group:before{content:"\f5fd"}i.icon.leaf:before{content:"\f06c"}i.icon.lemon:before{content:"\f094"}i.icon.less.than:before{content:"\f536"}i.icon.less.than.equal:before{content:"\f537"}i.icon.level.down.alternate:before{content:"\f3be"}i.icon.level.up.alternate:before{content:"\f3bf"}i.icon.life.ring:before{content:"\f1cd"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.lira.sign:before{content:"\f195"}i.icon.list:before{content:"\f03a"}i.icon.list.alternate:before{content:"\f022"}i.icon.list.ol:before{content:"\f0cb"}i.icon.list.ul:before{content:"\f0ca"}i.icon.location.arrow:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.lock.open:before{content:"\f3c1"}i.icon.long.arrow.alternate.down:before{content:"\f309"}i.icon.long.arrow.alternate.left:before{content:"\f30a"}i.icon.long.arrow.alternate.right:before{content:"\f30b"}i.icon.long.arrow.alternate.up:before{content:"\f30c"}i.icon.low.vision:before{content:"\f2a8"}i.icon.luggage.cart:before{content:"\f59d"}i.icon.lungs:before{content:"\f604"}i.icon.lungs.virus:before{content:"\f967"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.mail.bulk:before{content:"\f674"}i.icon.male:before{content:"\f183"}i.icon.map:before{content:"\f279"}i.icon.map.marked:before{content:"\f59f"}i.icon.map.marked.alternate:before{content:"\f5a0"}i.icon.map.marker:before{content:"\f041"}i.icon.map.marker.alternate:before{content:"\f3c5"}i.icon.map.pin:before{content:"\f276"}i.icon.map.signs:before{content:"\f277"}i.icon.marker:before{content:"\f5a1"}i.icon.mars:before{content:"\f222"}i.icon.mars.double:before{content:"\f227"}i.icon.mars.stroke:before{content:"\f229"}i.icon.mars.stroke.horizontal:before{content:"\f22b"}i.icon.mars.stroke.vertical:before{content:"\f22a"}i.icon.mask:before{content:"\f6fa"}i.icon.medal:before{content:"\f5a2"}i.icon.medkit:before{content:"\f0fa"}i.icon.meh:before{content:"\f11a"}i.icon.meh.blank:before{content:"\f5a4"}i.icon.meh.rolling.eyes:before{content:"\f5a5"}i.icon.memory:before{content:"\f538"}i.icon.menorah:before{content:"\f676"}i.icon.mercury:before{content:"\f223"}i.icon.meteor:before{content:"\f753"}i.icon.microchip:before{content:"\f2db"}i.icon.microphone:before{content:"\f130"}i.icon.microphone.alternate:before{content:"\f3c9"}i.icon.microphone.alternate.slash:before{content:"\f539"}i.icon.microphone.slash:before{content:"\f131"}i.icon.microscope:before{content:"\f610"}i.icon.minus:before{content:"\f068"}i.icon.minus.circle:before{content:"\f056"}i.icon.minus.square:before{content:"\f146"}i.icon.mitten:before{content:"\f7b5"}i.icon.mobile:before{content:"\f10b"}i.icon.mobile.alternate:before{content:"\f3cd"}i.icon.money.bill:before{content:"\f0d6"}i.icon.money.bill.alternate:before{content:"\f3d1"}i.icon.money.bill.wave:before{content:"\f53a"}i.icon.money.bill.wave.alternate:before{content:"\f53b"}i.icon.money.check:before{content:"\f53c"}i.icon.money.check.alternate:before{content:"\f53d"}i.icon.monument:before{content:"\f5a6"}i.icon.moon:before{content:"\f186"}i.icon.mortar.pestle:before{content:"\f5a7"}i.icon.mosque:before{content:"\f678"}i.icon.motorcycle:before{content:"\f21c"}i.icon.mountain:before{content:"\f6fc"}i.icon.mouse:before{content:"\f8cc"}i.icon.mouse.pointer:before{content:"\f245"}i.icon.mug.hot:before{content:"\f7b6"}i.icon.music:before{content:"\f001"}i.icon.network.wired:before{content:"\f6ff"}i.icon.neuter:before{content:"\f22c"}i.icon.newspaper:before{content:"\f1ea"}i.icon.not.equal:before{content:"\f53e"}i.icon.notes.medical:before{content:"\f481"}i.icon.object.group:before{content:"\f247"}i.icon.object.ungroup:before{content:"\f248"}i.icon.oil.can:before{content:"\f613"}i.icon.om:before{content:"\f679"}i.icon.otter:before{content:"\f700"}i.icon.outdent:before{content:"\f03b"}i.icon.pager:before{content:"\f815"}i.icon.paint.brush:before{content:"\f1fc"}i.icon.paint.roller:before{content:"\f5aa"}i.icon.palette:before{content:"\f53f"}i.icon.pallet:before{content:"\f482"}i.icon.paper.plane:before{content:"\f1d8"}i.icon.paperclip:before{content:"\f0c6"}i.icon.parachute.box:before{content:"\f4cd"}i.icon.paragraph:before{content:"\f1dd"}i.icon.parking:before{content:"\f540"}i.icon.passport:before{content:"\f5ab"}i.icon.pastafarianism:before{content:"\f67b"}i.icon.paste:before{content:"\f0ea"}i.icon.pause:before{content:"\f04c"}i.icon.pause.circle:before{content:"\f28b"}i.icon.paw:before{content:"\f1b0"}i.icon.peace:before{content:"\f67c"}i.icon.pen:before{content:"\f304"}i.icon.pen.alternate:before{content:"\f305"}i.icon.pen.fancy:before{content:"\f5ac"}i.icon.pen.nib:before{content:"\f5ad"}i.icon.pen.square:before{content:"\f14b"}i.icon.pencil.alternate:before{content:"\f303"}i.icon.pencil.ruler:before{content:"\f5ae"}i.icon.people.arrows:before{content:"\f968"}i.icon.people.carry:before{content:"\f4ce"}i.icon.pepper.hot:before{content:"\f816"}i.icon.percent:before{content:"\f295"}i.icon.percentage:before{content:"\f541"}i.icon.person.booth:before{content:"\f756"}i.icon.phone:before{content:"\f095"}i.icon.phone.alternate:before{content:"\f879"}i.icon.phone.slash:before{content:"\f3dd"}i.icon.phone.square:before{content:"\f098"}i.icon.phone.square.alternate:before{content:"\f87b"}i.icon.phone.volume:before{content:"\f2a0"}i.icon.photo.video:before{content:"\f87c"}i.icon.piggy.bank:before{content:"\f4d3"}i.icon.pills:before{content:"\f484"}i.icon.pizza.slice:before{content:"\f818"}i.icon.place.of.worship:before{content:"\f67f"}i.icon.plane:before{content:"\f072"}i.icon.plane.arrival:before{content:"\f5af"}i.icon.plane.departure:before{content:"\f5b0"}i.icon.plane.slash:before{content:"\f969"}i.icon.play:before{content:"\f04b"}i.icon.play.circle:before{content:"\f144"}i.icon.plug:before{content:"\f1e6"}i.icon.plus:before{content:"\f067"}i.icon.plus.circle:before{content:"\f055"}i.icon.plus.square:before{content:"\f0fe"}i.icon.podcast:before{content:"\f2ce"}i.icon.poll:before{content:"\f681"}i.icon.poll.horizontal:before{content:"\f682"}i.icon.poo:before{content:"\f2fe"}i.icon.poo.storm:before{content:"\f75a"}i.icon.poop:before{content:"\f619"}i.icon.portrait:before{content:"\f3e0"}i.icon.pound.sign:before{content:"\f154"}i.icon.power.off:before{content:"\f011"}i.icon.pray:before{content:"\f683"}i.icon.praying.hands:before{content:"\f684"}i.icon.prescription:before{content:"\f5b1"}i.icon.prescription.bottle:before{content:"\f485"}i.icon.prescription.bottle.alternate:before{content:"\f486"}i.icon.print:before{content:"\f02f"}i.icon.procedures:before{content:"\f487"}i.icon.project.diagram:before{content:"\f542"}i.icon.pump.medical:before{content:"\f96a"}i.icon.pump.soap:before{content:"\f96b"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.qrcode:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.question.circle:before{content:"\f059"}i.icon.quidditch:before{content:"\f458"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.quran:before{content:"\f687"}i.icon.radiation:before{content:"\f7b9"}i.icon.radiation.alternate:before{content:"\f7ba"}i.icon.rainbow:before{content:"\f75b"}i.icon.random:before{content:"\f074"}i.icon.receipt:before{content:"\f543"}i.icon.record.vinyl:before{content:"\f8d9"}i.icon.recycle:before{content:"\f1b8"}i.icon.redo:before{content:"\f01e"}i.icon.redo.alternate:before{content:"\f2f9"}i.icon.registered:before{content:"\f25d"}i.icon.remove.format:before{content:"\f87d"}i.icon.reply:before{content:"\f3e5"}i.icon.reply.all:before{content:"\f122"}i.icon.republican:before{content:"\f75e"}i.icon.restroom:before{content:"\f7bd"}i.icon.retweet:before{content:"\f079"}i.icon.ribbon:before{content:"\f4d6"}i.icon.ring:before{content:"\f70b"}i.icon.road:before{content:"\f018"}i.icon.robot:before{content:"\f544"}i.icon.rocket:before{content:"\f135"}i.icon.route:before{content:"\f4d7"}i.icon.rss:before{content:"\f09e"}i.icon.rss.square:before{content:"\f143"}i.icon.ruble.sign:before{content:"\f158"}i.icon.ruler:before{content:"\f545"}i.icon.ruler.combined:before{content:"\f546"}i.icon.ruler.horizontal:before{content:"\f547"}i.icon.ruler.vertical:before{content:"\f548"}i.icon.running:before{content:"\f70c"}i.icon.rupee.sign:before{content:"\f156"}i.icon.sad.cry:before{content:"\f5b3"}i.icon.sad.tear:before{content:"\f5b4"}i.icon.satellite:before{content:"\f7bf"}i.icon.satellite.dish:before{content:"\f7c0"}i.icon.save:before{content:"\f0c7"}i.icon.school:before{content:"\f549"}i.icon.screwdriver:before{content:"\f54a"}i.icon.scroll:before{content:"\f70e"}i.icon.sd.card:before{content:"\f7c2"}i.icon.search:before{content:"\f002"}i.icon.search.dollar:before{content:"\f688"}i.icon.search.location:before{content:"\f689"}i.icon.search.minus:before{content:"\f010"}i.icon.search.plus:before{content:"\f00e"}i.icon.seedling:before{content:"\f4d8"}i.icon.server:before{content:"\f233"}i.icon.shapes:before{content:"\f61f"}i.icon.share:before{content:"\f064"}i.icon.share.alternate:before{content:"\f1e0"}i.icon.share.alternate.square:before{content:"\f1e1"}i.icon.share.square:before{content:"\f14d"}i.icon.shekel.sign:before{content:"\f20b"}i.icon.shield.alternate:before{content:"\f3ed"}i.icon.shield.virus:before{content:"\f96c"}i.icon.ship:before{content:"\f21a"}i.icon.shipping.fast:before{content:"\f48b"}i.icon.shoe.prints:before{content:"\f54b"}i.icon.shopping.bag:before{content:"\f290"}i.icon.shopping.basket:before{content:"\f291"}i.icon.shopping.cart:before{content:"\f07a"}i.icon.shower:before{content:"\f2cc"}i.icon.shuttle.van:before{content:"\f5b6"}i.icon.sign:before{content:"\f4d9"}i.icon.sign.in.alternate:before{content:"\f2f6"}i.icon.sign.language:before{content:"\f2a7"}i.icon.sign.out.alternate:before{content:"\f2f5"}i.icon.signal:before{content:"\f012"}i.icon.signature:before{content:"\f5b7"}i.icon.sim.card:before{content:"\f7c4"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skating:before{content:"\f7c5"}i.icon.skiing:before{content:"\f7c9"}i.icon.skiing.nordic:before{content:"\f7ca"}i.icon.skull:before{content:"\f54c"}i.icon.skull.crossbones:before{content:"\f714"}i.icon.slash:before{content:"\f715"}i.icon.sleigh:before{content:"\f7cc"}i.icon.sliders.horizontal:before{content:"\f1de"}i.icon.smile:before{content:"\f118"}i.icon.smile.beam:before{content:"\f5b8"}i.icon.smile.wink:before{content:"\f4da"}i.icon.smog:before{content:"\f75f"}i.icon.smoking:before{content:"\f48d"}i.icon.smoking.ban:before{content:"\f54d"}i.icon.sms:before{content:"\f7cd"}i.icon.snowboarding:before{content:"\f7ce"}i.icon.snowflake:before{content:"\f2dc"}i.icon.snowman:before{content:"\f7d0"}i.icon.snowplow:before{content:"\f7d2"}i.icon.soap:before{content:"\f96e"}i.icon.socks:before{content:"\f696"}i.icon.solar.panel:before{content:"\f5ba"}i.icon.sort:before{content:"\f0dc"}i.icon.sort.alphabet.down:before{content:"\f15d"}i.icon.sort.alphabet.down.alternate:before{content:"\f881"}i.icon.sort.alphabet.up:before{content:"\f15e"}i.icon.sort.alphabet.up.alternate:before{content:"\f882"}i.icon.sort.amount.down:before{content:"\f160"}i.icon.sort.amount.down.alternate:before{content:"\f884"}i.icon.sort.amount.up:before{content:"\f161"}i.icon.sort.amount.up.alternate:before{content:"\f885"}i.icon.sort.down:before{content:"\f0dd"}i.icon.sort.numeric.down:before{content:"\f162"}i.icon.sort.numeric.down.alternate:before{content:"\f886"}i.icon.sort.numeric.up:before{content:"\f163"}i.icon.sort.numeric.up.alternate:before{content:"\f887"}i.icon.sort.up:before{content:"\f0de"}i.icon.spa:before{content:"\f5bb"}i.icon.space.shuttle:before{content:"\f197"}i.icon.spell.check:before{content:"\f891"}i.icon.spider:before{content:"\f717"}i.icon.spinner:before{content:"\f110"}i.icon.splotch:before{content:"\f5bc"}i.icon.spray.can:before{content:"\f5bd"}i.icon.square:before{content:"\f0c8"}i.icon.square.full:before{content:"\f45c"}i.icon.square.root.alternate:before{content:"\f698"}i.icon.stamp:before{content:"\f5bf"}i.icon.star:before{content:"\f005"}i.icon.star.and.crescent:before{content:"\f699"}i.icon.star.half:before{content:"\f089"}i.icon.star.half.alternate:before{content:"\f5c0"}i.icon.star.of.david:before{content:"\f69a"}i.icon.star.of.life:before{content:"\f621"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.sticky.note:before{content:"\f249"}i.icon.stop:before{content:"\f04d"}i.icon.stop.circle:before{content:"\f28d"}i.icon.stopwatch:before{content:"\f2f2"}i.icon.stopwatch.twenty:before{content:"\f96f"}i.icon.store:before{content:"\f54e"}i.icon.store.alternate:before{content:"\f54f"}i.icon.store.alternate.slash:before{content:"\f970"}i.icon.store.slash:before{content:"\f971"}i.icon.stream:before{content:"\f550"}i.icon.street.view:before{content:"\f21d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.stroopwafel:before{content:"\f551"}i.icon.subscript:before{content:"\f12c"}i.icon.subway:before{content:"\f239"}i.icon.suitcase:before{content:"\f0f2"}i.icon.suitcase.rolling:before{content:"\f5c1"}i.icon.sun:before{content:"\f185"}i.icon.superscript:before{content:"\f12b"}i.icon.surprise:before{content:"\f5c2"}i.icon.swatchbook:before{content:"\f5c3"}i.icon.swimmer:before{content:"\f5c4"}i.icon.swimming.pool:before{content:"\f5c5"}i.icon.synagogue:before{content:"\f69b"}i.icon.sync:before{content:"\f021"}i.icon.sync.alternate:before{content:"\f2f1"}i.icon.syringe:before{content:"\f48e"}i.icon.table:before{content:"\f0ce"}i.icon.table.tennis:before{content:"\f45d"}i.icon.tablet:before{content:"\f10a"}i.icon.tablet.alternate:before{content:"\f3fa"}i.icon.tablets:before{content:"\f490"}i.icon.tachometer.alternate:before{content:"\f3fd"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tape:before{content:"\f4db"}i.icon.tasks:before{content:"\f0ae"}i.icon.taxi:before{content:"\f1ba"}i.icon.teeth:before{content:"\f62e"}i.icon.teeth.open:before{content:"\f62f"}i.icon.temperature.high:before{content:"\f769"}i.icon.temperature.low:before{content:"\f76b"}i.icon.tenge:before{content:"\f7d7"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.th:before{content:"\f00a"}i.icon.th.large:before{content:"\f009"}i.icon.th.list:before{content:"\f00b"}i.icon.theater.masks:before{content:"\f630"}i.icon.thermometer:before{content:"\f491"}i.icon.thermometer.empty:before{content:"\f2cb"}i.icon.thermometer.full:before{content:"\f2c7"}i.icon.thermometer.half:before{content:"\f2c9"}i.icon.thermometer.quarter:before{content:"\f2ca"}i.icon.thermometer.three.quarters:before{content:"\f2c8"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up:before{content:"\f164"}i.icon.thumbtack:before{content:"\f08d"}i.icon.ticket.alternate:before{content:"\f3ff"}i.icon.times:before{content:"\f00d"}i.icon.times.circle:before{content:"\f057"}i.icon.tint:before{content:"\f043"}i.icon.tint.slash:before{content:"\f5c7"}i.icon.tired:before{content:"\f5c8"}i.icon.toggle.off:before{content:"\f204"}i.icon.toggle.on:before{content:"\f205"}i.icon.toilet:before{content:"\f7d8"}i.icon.toilet.paper:before{content:"\f71e"}i.icon.toilet.paper.slash:before{content:"\f972"}i.icon.toolbox:before{content:"\f552"}i.icon.tools:before{content:"\f7d9"}i.icon.tooth:before{content:"\f5c9"}i.icon.torah:before{content:"\f6a0"}i.icon.torii.gate:before{content:"\f6a1"}i.icon.tractor:before{content:"\f722"}i.icon.trademark:before{content:"\f25c"}i.icon.traffic.light:before{content:"\f637"}i.icon.trailer:before{content:"\f941"}i.icon.train:before{content:"\f238"}i.icon.tram:before{content:"\f7da"}i.icon.transgender:before{content:"\f224"}i.icon.transgender.alternate:before{content:"\f225"}i.icon.trash:before{content:"\f1f8"}i.icon.trash.alternate:before{content:"\f2ed"}i.icon.trash.restore:before{content:"\f829"}i.icon.trash.restore.alternate:before{content:"\f82a"}i.icon.tree:before{content:"\f1bb"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.truck.monster:before{content:"\f63b"}i.icon.truck.moving:before{content:"\f4df"}i.icon.truck.packing:before{content:"\f4de"}i.icon.truck.pickup:before{content:"\f63c"}i.icon.tshirt:before{content:"\f553"}i.icon.tty:before{content:"\f1e4"}i.icon.tv:before{content:"\f26c"}i.icon.umbrella:before{content:"\f0e9"}i.icon.umbrella.beach:before{content:"\f5ca"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.undo.alternate:before{content:"\f2ea"}i.icon.universal.access:before{content:"\f29a"}i.icon.university:before{content:"\f19c"}i.icon.unlink:before{content:"\f127"}i.icon.unlock:before{content:"\f09c"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.upload:before{content:"\f093"}i.icon.user:before{content:"\f007"}i.icon.user.alternate:before{content:"\f406"}i.icon.user.alternate.slash:before{content:"\f4fa"}i.icon.user.astronaut:before{content:"\f4fb"}i.icon.user.check:before{content:"\f4fc"}i.icon.user.circle:before{content:"\f2bd"}i.icon.user.clock:before{content:"\f4fd"}i.icon.user.cog:before{content:"\f4fe"}i.icon.user.edit:before{content:"\f4ff"}i.icon.user.friends:before{content:"\f500"}i.icon.user.graduate:before{content:"\f501"}i.icon.user.injured:before{content:"\f728"}i.icon.user.lock:before{content:"\f502"}i.icon.user.md:before{content:"\f0f0"}i.icon.user.minus:before{content:"\f503"}i.icon.user.ninja:before{content:"\f504"}i.icon.user.nurse:before{content:"\f82f"}i.icon.user.plus:before{content:"\f234"}i.icon.user.secret:before{content:"\f21b"}i.icon.user.shield:before{content:"\f505"}i.icon.user.slash:before{content:"\f506"}i.icon.user.tag:before{content:"\f507"}i.icon.user.tie:before{content:"\f508"}i.icon.user.times:before{content:"\f235"}i.icon.users:before{content:"\f0c0"}i.icon.users.cog:before{content:"\f509"}i.icon.utensil.spoon:before{content:"\f2e5"}i.icon.utensils:before{content:"\f2e7"}i.icon.vector.square:before{content:"\f5cb"}i.icon.venus:before{content:"\f221"}i.icon.venus.double:before{content:"\f226"}i.icon.venus.mars:before{content:"\f228"}i.icon.vial:before{content:"\f492"}i.icon.vials:before{content:"\f493"}i.icon.video:before{content:"\f03d"}i.icon.video.slash:before{content:"\f4e2"}i.icon.vihara:before{content:"\f6a7"}i.icon.virus:before{content:"\f974"}i.icon.virus.slash:before{content:"\f975"}i.icon.viruses:before{content:"\f976"}i.icon.voicemail:before{content:"\f897"}i.icon.volleyball.ball:before{content:"\f45f"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.mute:before{content:"\f6a9"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.vote.yea:before{content:"\f772"}i.icon.vr.cardboard:before{content:"\f729"}i.icon.walking:before{content:"\f554"}i.icon.wallet:before{content:"\f555"}i.icon.warehouse:before{content:"\f494"}i.icon.water:before{content:"\f773"}i.icon.wave.square:before{content:"\f83e"}i.icon.weight:before{content:"\f496"}i.icon.weight.hanging:before{content:"\f5cd"}i.icon.wheelchair:before{content:"\f193"}i.icon.wifi:before{content:"\f1eb"}i.icon.wind:before{content:"\f72e"}i.icon.window.close:before{content:"\f410"}i.icon.window.maximize:before{content:"\f2d0"}i.icon.window.minimize:before{content:"\f2d1"}i.icon.window.restore:before{content:"\f2d2"}i.icon.wine.bottle:before{content:"\f72f"}i.icon.wine.glass:before{content:"\f4e3"}i.icon.wine.glass.alternate:before{content:"\f5ce"}i.icon.won.sign:before{content:"\f159"}i.icon.wrench:before{content:"\f0ad"}i.icon.x.ray:before{content:"\f497"}i.icon.yen.sign:before{content:"\f157"}i.icon.yin.yang:before{content:"\f6ad"}i.icon.add:before{content:"\f067"}i.icon.add.circle:before{content:"\f055"}i.icon.add.square:before{content:"\f0fe"}i.icon.add.to.calendar:before{content:"\f271"}i.icon.add.to.cart:before{content:"\f217"}i.icon.add.user:before{content:"\f234"}i.icon.alarm:before{content:"\f0f3"}i.icon.alarm.mute:before{content:"\f1f6"}i.icon.ald:before,i.icon.als:before{content:"\f2a2"}i.icon.announcement:before{content:"\f0a1"}i.icon.area.chart:before,i.icon.area.graph:before{content:"\f1fe"}i.icon.arrow.down.cart:before{content:"\f218"}i.icon.asexual:before{content:"\f22d"}i.icon.asl.interpreting:before,i.icon.asl:before{content:"\f2a3"}i.icon.assistive.listening.devices:before{content:"\f2a2"}i.icon.attach:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.balance:before{content:"\f24e"}i.icon.bar:before{content:"\f0fc"}i.icon.bathtub:before{content:"\f2cd"}i.icon.battery.four:before{content:"\f240"}i.icon.battery.high:before{content:"\f241"}i.icon.battery.low:before{content:"\f243"}i.icon.battery.medium:before{content:"\f242"}i.icon.battery.one:before{content:"\f243"}i.icon.battery.three:before{content:"\f241"}i.icon.battery.two:before{content:"\f242"}i.icon.battery.zero:before{content:"\f244"}i.icon.birthday:before{content:"\f1fd"}i.icon.block.layout:before{content:"\f009"}i.icon.broken.chain:before{content:"\f127"}i.icon.browser:before{content:"\f022"}i.icon.call:before{content:"\f095"}i.icon.call.square:before{content:"\f098"}i.icon.cancel:before{content:"\f00d"}i.icon.cart:before{content:"\f07a"}i.icon.cc:before{content:"\f20a"}i.icon.chain:before{content:"\f0c1"}i.icon.chat:before{content:"\f075"}i.icon.checked.calendar:before{content:"\f274"}i.icon.checkmark:before{content:"\f00c"}i.icon.checkmark.box:before{content:"\f14a"}i.icon.chess.rock:before{content:"\f447"}i.icon.circle.notched:before{content:"\f1ce"}i.icon.circle.thin:before{content:"\f111"}i.icon.close:before{content:"\f00d"}i.icon.cloud.download:before{content:"\f381"}i.icon.cloud.upload:before{content:"\f382"}i.icon.cny:before{content:"\f157"}i.icon.cocktail:before{content:"\f000"}i.icon.commenting:before{content:"\f27a"}i.icon.compose:before{content:"\f303"}i.icon.computer:before{content:"\f108"}i.icon.configure:before{content:"\f0ad"}i.icon.content:before{content:"\f0c9"}i.icon.conversation:before{content:"\f086"}i.icon.credit.card.alternative:before{content:"\f09d"}i.icon.currency:before{content:"\f3d1"}i.icon.dashboard:before{content:"\f3fd"}i.icon.deafness:before{content:"\f2a4"}i.icon.delete:before{content:"\f00d"}i.icon.delete.calendar:before{content:"\f273"}i.icon.detective:before{content:"\f21b"}i.icon.diamond:before{content:"\f3a5"}i.icon.discussions:before{content:"\f086"}i.icon.disk:before{content:"\f0a0"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.dont:before{content:"\f05e"}i.icon.drivers.license:before{content:"\f2c2"}i.icon.dropdown:before{content:"\f0d7"}i.icon.emergency:before{content:"\f0f9"}i.icon.erase:before{content:"\f12d"}i.icon.eur:before,i.icon.euro:before{content:"\f153"}i.icon.exchange:before{content:"\f362"}i.icon.external:before{content:"\f35d"}i.icon.external.share:before{content:"\f14d"}i.icon.external.square:before{content:"\f360"}i.icon.eyedropper:before{content:"\f1fb"}i.icon.factory:before{content:"\f275"}i.icon.favorite:before{content:"\f005"}i.icon.feed:before{content:"\f09e"}i.icon.female.homosexual:before{content:"\f226"}i.icon.file.text:before{content:"\f15c"}i.icon.find:before{content:"\f1e5"}i.icon.first.aid:before{content:"\f0fa"}i.icon.food:before{content:"\f2e7"}i.icon.fork:before{content:"\f126"}i.icon.game:before{content:"\f11b"}i.icon.gay:before{content:"\f227"}i.icon.gbp:before{content:"\f154"}i.icon.grab:before{content:"\f255"}i.icon.graduation:before{content:"\f19d"}i.icon.grid.layout:before{content:"\f00a"}i.icon.group:before{content:"\f0c0"}i.icon.h:before{content:"\f0fd"}i.icon.hamburger:before{content:"\f0c9"}i.icon.hand.victory:before{content:"\f25b"}i.icon.handicap:before{content:"\f193"}i.icon.hard.of.hearing:before{content:"\f2a4"}i.icon.header:before{content:"\f1dc"}i.icon.heart.empty:before{content:"\f004"}i.icon.help:before{content:"\f128"}i.icon.help.circle:before{content:"\f059"}i.icon.heterosexual:before{content:"\f228"}i.icon.hide:before{content:"\f070"}i.icon.hotel:before{content:"\f236"}i.icon.hourglass.four:before,i.icon.hourglass.full:before{content:"\f254"}i.icon.hourglass.one:before{content:"\f251"}i.icon.hourglass.three:before{content:"\f253"}i.icon.hourglass.two:before{content:"\f252"}i.icon.hourglass.zero:before{content:"\f253"}i.icon.idea:before{content:"\f0eb"}i.icon.ils:before{content:"\f20b"}i.icon.in.cart:before{content:"\f218"}i.icon.inr:before{content:"\f156"}i.icon.intergender:before,i.icon.intersex:before{content:"\f224"}i.icon.jpy:before{content:"\f157"}i.icon.krw:before{content:"\f159"}i.icon.lab:before{content:"\f0c3"}i.icon.law:before{content:"\f24e"}i.icon.legal:before{content:"\f0e3"}i.icon.lesbian:before{content:"\f226"}i.icon.level.down:before{content:"\f3be"}i.icon.level.up:before{content:"\f3bf"}i.icon.lightning:before{content:"\f0e7"}i.icon.like:before{content:"\f004"}i.icon.line.graph:before,i.icon.linegraph:before{content:"\f201"}i.icon.linkify:before{content:"\f0c1"}i.icon.lira:before{content:"\f195"}i.icon.list.layout:before{content:"\f00b"}i.icon.log.out:before{content:"\f2f5"}i.icon.magnify:before{content:"\f00e"}i.icon.mail:before{content:"\f0e0"}i.icon.mail.forward:before{content:"\f064"}i.icon.mail.square:before{content:"\f199"}i.icon.male.homosexual:before{content:"\f227"}i.icon.man:before{content:"\f222"}i.icon.marker:before{content:"\f041"}i.icon.mars.alternate:before{content:"\f229"}i.icon.mars.horizontal:before{content:"\f22b"}i.icon.mars.vertical:before{content:"\f22a"}i.icon.meanpath:before{content:"\f0c8"}i.icon.military:before{content:"\f0fb"}i.icon.money:before{content:"\f3d1"}i.icon.move:before{content:"\f0b2"}i.icon.mute:before{content:"\f131"}i.icon.non.binary.transgender:before{content:"\f223"}i.icon.numbered.list:before{content:"\f0cb"}i.icon.options:before{content:"\f1de"}i.icon.ordered.list:before{content:"\f0cb"}i.icon.other.gender:before{content:"\f229"}i.icon.other.gender.horizontal:before{content:"\f22b"}i.icon.other.gender.vertical:before{content:"\f22a"}i.icon.payment:before{content:"\f09d"}i.icon.pencil:before{content:"\f303"}i.icon.pencil.square:before{content:"\f14b"}i.icon.photo:before{content:"\f030"}i.icon.picture:before{content:"\f03e"}i.icon.pie.chart:before,i.icon.pie.graph:before{content:"\f200"}i.icon.pin:before{content:"\f08d"}i.icon.plus.cart:before{content:"\f217"}i.icon.point:before{content:"\f041"}i.icon.pointing.down:before{content:"\f0a7"}i.icon.pointing.left:before{content:"\f0a5"}i.icon.pointing.right:before{content:"\f0a4"}i.icon.pointing.up:before{content:"\f0a6"}i.icon.pound:before{content:"\f154"}i.icon.power:before{content:"\f011"}i.icon.power.cord:before{content:"\f1e6"}i.icon.privacy:before{content:"\f084"}i.icon.protect:before{content:"\f023"}i.icon.puzzle:before{content:"\f12e"}i.icon.r.circle:before{content:"\f25d"}i.icon.radio:before{content:"\f192"}i.icon.rain:before{content:"\f0e9"}i.icon.record:before{content:"\f03d"}i.icon.refresh:before{content:"\f021"}i.icon.remove:before{content:"\f00d"}i.icon.remove.bookmark:before{content:"\f02e"}i.icon.remove.circle:before{content:"\f057"}i.icon.remove.from.calendar:before{content:"\f272"}i.icon.remove.user:before{content:"\f235"}i.icon.repeat:before{content:"\f01e"}i.icon.resize.horizontal:before{content:"\f337"}i.icon.resize.vertical:before{content:"\f338"}i.icon.rmb:before{content:"\f157"}i.icon.rouble:before,i.icon.rub:before,i.icon.ruble:before{content:"\f158"}i.icon.rupee:before{content:"\f156"}i.icon.s15:before{content:"\f2cd"}i.icon.selected.radio:before{content:"\f192"}i.icon.send:before{content:"\f1d8"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.shekel:before,i.icon.sheqel:before{content:"\f20b"}i.icon.shield:before{content:"\f3ed"}i.icon.shipping:before{content:"\f0d1"}i.icon.shop:before{content:"\f07a"}i.icon.shuffle:before{content:"\f074"}i.icon.shutdown:before{content:"\f011"}i.icon.sidebar:before{content:"\f0c9"}i.icon.sign.in:before{content:"\f2f6"}i.icon.sign.out:before{content:"\f2f5"}i.icon.signing:before{content:"\f2a7"}i.icon.signup:before{content:"\f044"}i.icon.sliders:before{content:"\f1de"}i.icon.soccer:before{content:"\f1e3"}i.icon.sort.alphabet.ascending:before{content:"\f15d"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.content.ascending:before{content:"\f160"}i.icon.sort.content.descending:before{content:"\f161"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.numeric.ascending:before{content:"\f162"}i.icon.sort.numeric.descending:before{content:"\f163"}i.icon.sound:before{content:"\f025"}i.icon.spoon:before{content:"\f2e5"}i.icon.spy:before{content:"\f21b"}i.icon.star.empty:before{content:"\f005"}i.icon.star.half.empty:before,i.icon.star.half.full:before{content:"\f089"}i.icon.student:before{content:"\f19d"}i.icon.talk:before{content:"\f27a"}i.icon.target:before{content:"\f140"}i.icon.teletype:before{content:"\f1e4"}i.icon.television:before{content:"\f26c"}i.icon.text.cursor:before{content:"\f246"}i.icon.text.telephone:before{content:"\f1e4"}i.icon.theme:before{content:"\f043"}i.icon.thermometer:before{content:"\f2c7"}i.icon.thumb.tack:before{content:"\f08d"}i.icon.ticket:before{content:"\f3ff"}i.icon.time:before{content:"\f017"}i.icon.times.rectangle:before{content:"\f410"}i.icon.tm:before{content:"\f25c"}i.icon.toggle.down:before{content:"\f150"}i.icon.toggle.left:before{content:"\f191"}i.icon.toggle.right:before{content:"\f152"}i.icon.toggle.up:before{content:"\f151"}i.icon.translate:before{content:"\f1ab"}i.icon.travel:before{content:"\f0b1"}i.icon.treatment:before{content:"\f0f1"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.try:before{content:"\f195"}i.icon.unhide:before{content:"\f06e"}i.icon.unlinkify:before{content:"\f127"}i.icon.unmute:before{content:"\f130"}i.icon.unordered.list:before{content:"\f0ca"}i.icon.usd:before{content:"\f155"}i.icon.user.cancel:before,i.icon.user.close:before,i.icon.user.delete:before{content:"\f235"}i.icon.user.doctor:before{content:"\f0f0"}i.icon.user.x:before{content:"\f235"}i.icon.vcard:before{content:"\f2bb"}i.icon.video.camera:before{content:"\f03d"}i.icon.video.play:before{content:"\f144"}i.icon.volume.control.phone:before{content:"\f2a0"}i.icon.wait:before{content:"\f017"}i.icon.warning:before{content:"\f12a"}i.icon.warning.circle:before{content:"\f06a"}i.icon.warning.sign:before{content:"\f071"}i.icon.wi.fi:before{content:"\f1eb"}i.icon.winner:before{content:"\f091"}i.icon.wizard:before{content:"\f0d0"}i.icon.woman:before{content:"\f221"}i.icon.won:before{content:"\f159"}i.icon.world:before{content:"\f0ac"}i.icon.write:before{content:"\f303"}i.icon.write.square:before{content:"\f14b"}i.icon.x:before{content:"\f00d"}i.icon.yen:before{content:"\f157"}i.icon.zip:before{content:"\f187"}i.icon.zoom.in:before,i.icon.zoom:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}@font-face{font-family:outline-icons;src:url(../fonts/outline-icons.eot);src:url(../fonts/outline-icons.eot?#iefix) format("embedded-opentype"),url(../fonts/outline-icons.woff2) format("woff2"),url(../fonts/outline-icons.woff) format("woff"),url(../fonts/outline-icons.ttf) format("truetype"),url(../images/outline-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.outline{font-family:outline-icons}i.icon.address.book.outline:before{content:"\f2b9"}i.icon.address.card.outline:before{content:"\f2bb"}i.icon.angry.outline:before{content:"\f556"}i.icon.arrow.alternate.circle.down.outline:before{content:"\f358"}i.icon.arrow.alternate.circle.left.outline:before{content:"\f359"}i.icon.arrow.alternate.circle.right.outline:before{content:"\f35a"}i.icon.arrow.alternate.circle.up.outline:before{content:"\f35b"}i.icon.bell.outline:before{content:"\f0f3"}i.icon.bell.slash.outline:before{content:"\f1f6"}i.icon.bookmark.outline:before{content:"\f02e"}i.icon.building.outline:before{content:"\f1ad"}i.icon.calendar.alternate.outline:before{content:"\f073"}i.icon.calendar.check.outline:before{content:"\f274"}i.icon.calendar.minus.outline:before{content:"\f272"}i.icon.calendar.outline:before{content:"\f133"}i.icon.calendar.plus.outline:before{content:"\f271"}i.icon.calendar.times.outline:before{content:"\f273"}i.icon.caret.square.down.outline:before{content:"\f150"}i.icon.caret.square.left.outline:before{content:"\f191"}i.icon.caret.square.right.outline:before{content:"\f152"}i.icon.caret.square.up.outline:before{content:"\f151"}i.icon.chart.bar.outline:before{content:"\f080"}i.icon.check.circle.outline:before{content:"\f058"}i.icon.check.square.outline:before{content:"\f14a"}i.icon.circle.outline:before{content:"\f111"}i.icon.clipboard.outline:before{content:"\f328"}i.icon.clock.outline:before{content:"\f017"}i.icon.clone.outline:before{content:"\f24d"}i.icon.closed.captioning.outline:before{content:"\f20a"}i.icon.comment.alternate.outline:before{content:"\f27a"}i.icon.comment.dots.outline:before{content:"\f4ad"}i.icon.comment.outline:before{content:"\f075"}i.icon.comments.outline:before{content:"\f086"}i.icon.compass.outline:before{content:"\f14e"}i.icon.copy.outline:before{content:"\f0c5"}i.icon.copyright.outline:before{content:"\f1f9"}i.icon.credit.card.outline:before{content:"\f09d"}i.icon.dizzy.outline:before{content:"\f567"}i.icon.dot.circle.outline:before{content:"\f192"}i.icon.edit.outline:before{content:"\f044"}i.icon.envelope.open.outline:before{content:"\f2b6"}i.icon.envelope.outline:before{content:"\f0e0"}i.icon.eye.outline:before{content:"\f06e"}i.icon.eye.slash.outline:before{content:"\f070"}i.icon.file.alternate.outline:before{content:"\f15c"}i.icon.file.archive.outline:before{content:"\f1c6"}i.icon.file.audio.outline:before{content:"\f1c7"}i.icon.file.code.outline:before{content:"\f1c9"}i.icon.file.excel.outline:before{content:"\f1c3"}i.icon.file.image.outline:before{content:"\f1c5"}i.icon.file.outline:before{content:"\f15b"}i.icon.file.pdf.outline:before{content:"\f1c1"}i.icon.file.powerpoint.outline:before{content:"\f1c4"}i.icon.file.video.outline:before{content:"\f1c8"}i.icon.file.word.outline:before{content:"\f1c2"}i.icon.flag.outline:before{content:"\f024"}i.icon.flushed.outline:before{content:"\f579"}i.icon.folder.open.outline:before{content:"\f07c"}i.icon.folder.outline:before{content:"\f07b"}i.icon.frown.open.outline:before{content:"\f57a"}i.icon.frown.outline:before{content:"\f119"}i.icon.futbol.outline:before{content:"\f1e3"}i.icon.gem.outline:before{content:"\f3a5"}i.icon.grimace.outline:before{content:"\f57f"}i.icon.grin.alternate.outline:before{content:"\f581"}i.icon.grin.beam.outline:before{content:"\f582"}i.icon.grin.beam.sweat.outline:before{content:"\f583"}i.icon.grin.hearts.outline:before{content:"\f584"}i.icon.grin.outline:before{content:"\f580"}i.icon.grin.squint.outline:before{content:"\f585"}i.icon.grin.squint.tears.outline:before{content:"\f586"}i.icon.grin.stars.outline:before{content:"\f587"}i.icon.grin.tears.outline:before{content:"\f588"}i.icon.grin.tongue.outline:before{content:"\f589"}i.icon.grin.tongue.squint.outline:before{content:"\f58a"}i.icon.grin.tongue.wink.outline:before{content:"\f58b"}i.icon.grin.wink.outline:before{content:"\f58c"}i.icon.hand.lizard.outline:before{content:"\f258"}i.icon.hand.paper.outline:before{content:"\f256"}i.icon.hand.peace.outline:before{content:"\f25b"}i.icon.hand.point.down.outline:before{content:"\f0a7"}i.icon.hand.point.left.outline:before{content:"\f0a5"}i.icon.hand.point.right.outline:before{content:"\f0a4"}i.icon.hand.point.up.outline:before{content:"\f0a6"}i.icon.hand.pointer.outline:before{content:"\f25a"}i.icon.hand.rock.outline:before{content:"\f255"}i.icon.hand.scissors.outline:before{content:"\f257"}i.icon.hand.spock.outline:before{content:"\f259"}i.icon.handshake.outline:before{content:"\f2b5"}i.icon.hdd.outline:before{content:"\f0a0"}i.icon.heart.outline:before{content:"\f004"}i.icon.hospital.outline:before{content:"\f0f8"}i.icon.hourglass.outline:before{content:"\f254"}i.icon.id.badge.outline:before{content:"\f2c1"}i.icon.id.card.outline:before{content:"\f2c2"}i.icon.image.outline:before{content:"\f03e"}i.icon.images.outline:before{content:"\f302"}i.icon.keyboard.outline:before{content:"\f11c"}i.icon.kiss.beam.outline:before{content:"\f597"}i.icon.kiss.outline:before{content:"\f596"}i.icon.kiss.wink.heart.outline:before{content:"\f598"}i.icon.laugh.beam.outline:before{content:"\f59a"}i.icon.laugh.outline:before{content:"\f599"}i.icon.laugh.squint.outline:before{content:"\f59b"}i.icon.laugh.wink.outline:before{content:"\f59c"}i.icon.lemon.outline:before{content:"\f094"}i.icon.life.ring.outline:before{content:"\f1cd"}i.icon.lightbulb.outline:before{content:"\f0eb"}i.icon.list.alternate.outline:before{content:"\f022"}i.icon.map.outline:before{content:"\f279"}i.icon.meh.blank.outline:before{content:"\f5a4"}i.icon.meh.outline:before{content:"\f11a"}i.icon.meh.rolling.eyes.outline:before{content:"\f5a5"}i.icon.minus.square.outline:before{content:"\f146"}i.icon.money.bill.alternate.outline:before{content:"\f3d1"}i.icon.moon.outline:before{content:"\f186"}i.icon.newspaper.outline:before{content:"\f1ea"}i.icon.object.group.outline:before{content:"\f247"}i.icon.object.ungroup.outline:before{content:"\f248"}i.icon.paper.plane.outline:before{content:"\f1d8"}i.icon.pause.circle.outline:before{content:"\f28b"}i.icon.play.circle.outline:before{content:"\f144"}i.icon.plus.square.outline:before{content:"\f0fe"}i.icon.question.circle.outline:before{content:"\f059"}i.icon.registered.outline:before{content:"\f25d"}i.icon.sad.cry.outline:before{content:"\f5b3"}i.icon.sad.tear.outline:before{content:"\f5b4"}i.icon.save.outline:before{content:"\f0c7"}i.icon.share.square.outline:before{content:"\f14d"}i.icon.smile.beam.outline:before{content:"\f5b8"}i.icon.smile.outline:before{content:"\f118"}i.icon.smile.wink.outline:before{content:"\f4da"}i.icon.snowflake.outline:before{content:"\f2dc"}i.icon.square.outline:before{content:"\f0c8"}i.icon.star.half.outline:before{content:"\f089"}i.icon.star.outline:before{content:"\f005"}i.icon.sticky.note.outline:before{content:"\f249"}i.icon.stop.circle.outline:before{content:"\f28d"}i.icon.sun.outline:before{content:"\f185"}i.icon.surprise.outline:before{content:"\f5c2"}i.icon.thumbs.down.outline:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f164"}i.icon.times.circle.outline:before{content:"\f057"}i.icon.tired.outline:before{content:"\f5c8"}i.icon.trash.alternate.outline:before{content:"\f2ed"}i.icon.user.circle.outline:before{content:"\f2bd"}i.icon.user.outline:before{content:"\f007"}i.icon.window.close.outline:before{content:"\f410"}i.icon.window.maximize.outline:before{content:"\f2d0"}i.icon.window.minimize.outline:before{content:"\f2d1"}i.icon.window.restore.outline:before{content:"\f2d2"}@font-face{font-family:brand-icons;src:url(../fonts/brand-icons.eot);src:url(../fonts/brand-icons.eot?#iefix) format("embedded-opentype"),url(../fonts/brand-icons.woff2) format("woff2"),url(../fonts/brand-icons.woff) format("woff"),url(../fonts/brand-icons.ttf) format("truetype"),url(../images/brand-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.\35 00px:before{content:"\f26e";font-family:brand-icons}i.icon.accessible:before{content:"\f368";font-family:brand-icons}i.icon.accusoft:before{content:"\f369";font-family:brand-icons}i.icon.acquisitions.incorporated:before{content:"\f6af";font-family:brand-icons}i.icon.adn:before{content:"\f170";font-family:brand-icons}i.icon.adobe:before{content:"\f778";font-family:brand-icons}i.icon.adversal:before{content:"\f36a";font-family:brand-icons}i.icon.affiliatetheme:before{content:"\f36b";font-family:brand-icons}i.icon.airbnb:before{content:"\f834";font-family:brand-icons}i.icon.algolia:before{content:"\f36c";font-family:brand-icons}i.icon.alipay:before{content:"\f642";font-family:brand-icons}i.icon.amazon:before{content:"\f270";font-family:brand-icons}i.icon.amazon.pay:before{content:"\f42c";font-family:brand-icons}i.icon.amilia:before{content:"\f36d";font-family:brand-icons}i.icon.android:before{content:"\f17b";font-family:brand-icons}i.icon.angellist:before{content:"\f209";font-family:brand-icons}i.icon.angrycreative:before{content:"\f36e";font-family:brand-icons}i.icon.angular:before{content:"\f420";font-family:brand-icons}i.icon.app.store:before{content:"\f36f";font-family:brand-icons}i.icon.app.store.ios:before{content:"\f370";font-family:brand-icons}i.icon.apper:before{content:"\f371";font-family:brand-icons}i.icon.apple:before{content:"\f179";font-family:brand-icons}i.icon.apple.pay:before{content:"\f415";font-family:brand-icons}i.icon.artstation:before{content:"\f77a";font-family:brand-icons}i.icon.asymmetrik:before{content:"\f372";font-family:brand-icons}i.icon.atlassian:before{content:"\f77b";font-family:brand-icons}i.icon.audible:before{content:"\f373";font-family:brand-icons}i.icon.autoprefixer:before{content:"\f41c";font-family:brand-icons}i.icon.avianex:before{content:"\f374";font-family:brand-icons}i.icon.aviato:before{content:"\f421";font-family:brand-icons}i.icon.aws:before{content:"\f375";font-family:brand-icons}i.icon.bandcamp:before{content:"\f2d5";font-family:brand-icons}i.icon.battle.net:before{content:"\f835";font-family:brand-icons}i.icon.behance:before{content:"\f1b4";font-family:brand-icons}i.icon.behance.square:before{content:"\f1b5";font-family:brand-icons}i.icon.bimobject:before{content:"\f378";font-family:brand-icons}i.icon.bitbucket:before{content:"\f171";font-family:brand-icons}i.icon.bitcoin:before{content:"\f379";font-family:brand-icons}i.icon.bity:before{content:"\f37a";font-family:brand-icons}i.icon.black.tie:before{content:"\f27e";font-family:brand-icons}i.icon.blackberry:before{content:"\f37b";font-family:brand-icons}i.icon.blogger:before{content:"\f37c";font-family:brand-icons}i.icon.blogger.b:before{content:"\f37d";font-family:brand-icons}i.icon.bluetooth:before{content:"\f293";font-family:brand-icons}i.icon.bluetooth.b:before{content:"\f294";font-family:brand-icons}i.icon.bootstrap:before{content:"\f836";font-family:brand-icons}i.icon.btc:before{content:"\f15a";font-family:brand-icons}i.icon.buffer:before{content:"\f837";font-family:brand-icons}i.icon.buromobelexperte:before{content:"\f37f";font-family:brand-icons}i.icon.buy.n.large:before{content:"\f8a6";font-family:brand-icons}i.icon.buysellads:before{content:"\f20d";font-family:brand-icons}i.icon.canadian.maple.leaf:before{content:"\f785";font-family:brand-icons}i.icon.cc.amazon.pay:before{content:"\f42d";font-family:brand-icons}i.icon.cc.amex:before{content:"\f1f3";font-family:brand-icons}i.icon.cc.apple.pay:before{content:"\f416";font-family:brand-icons}i.icon.cc.diners.club:before{content:"\f24c";font-family:brand-icons}i.icon.cc.discover:before{content:"\f1f2";font-family:brand-icons}i.icon.cc.jcb:before{content:"\f24b";font-family:brand-icons}i.icon.cc.mastercard:before{content:"\f1f1";font-family:brand-icons}i.icon.cc.paypal:before{content:"\f1f4";font-family:brand-icons}i.icon.cc.stripe:before{content:"\f1f5";font-family:brand-icons}i.icon.cc.visa:before{content:"\f1f0";font-family:brand-icons}i.icon.centercode:before{content:"\f380";font-family:brand-icons}i.icon.centos:before{content:"\f789";font-family:brand-icons}i.icon.chrome:before{content:"\f268";font-family:brand-icons}i.icon.chromecast:before{content:"\f838";font-family:brand-icons}i.icon.cloudscale:before{content:"\f383";font-family:brand-icons}i.icon.cloudsmith:before{content:"\f384";font-family:brand-icons}i.icon.cloudversify:before{content:"\f385";font-family:brand-icons}i.icon.codepen:before{content:"\f1cb";font-family:brand-icons}i.icon.codiepie:before{content:"\f284";font-family:brand-icons}i.icon.confluence:before{content:"\f78d";font-family:brand-icons}i.icon.connectdevelop:before{content:"\f20e";font-family:brand-icons}i.icon.contao:before{content:"\f26d";font-family:brand-icons}i.icon.cotton.bureau:before{content:"\f89e";font-family:brand-icons}i.icon.cpanel:before{content:"\f388";font-family:brand-icons}i.icon.creative.commons:before{content:"\f25e";font-family:brand-icons}i.icon.creative.commons.by:before{content:"\f4e7";font-family:brand-icons}i.icon.creative.commons.nc:before{content:"\f4e8";font-family:brand-icons}i.icon.creative.commons.nc.eu:before{content:"\f4e9";font-family:brand-icons}i.icon.creative.commons.nc.jp:before{content:"\f4ea";font-family:brand-icons}i.icon.creative.commons.nd:before{content:"\f4eb";font-family:brand-icons}i.icon.creative.commons.pd:before{content:"\f4ec";font-family:brand-icons}i.icon.creative.commons.pd.alternate:before{content:"\f4ed";font-family:brand-icons}i.icon.creative.commons.remix:before{content:"\f4ee";font-family:brand-icons}i.icon.creative.commons.sa:before{content:"\f4ef";font-family:brand-icons}i.icon.creative.commons.sampling:before{content:"\f4f0";font-family:brand-icons}i.icon.creative.commons.sampling.plus:before{content:"\f4f1";font-family:brand-icons}i.icon.creative.commons.share:before{content:"\f4f2";font-family:brand-icons}i.icon.creative.commons.zero:before{content:"\f4f3";font-family:brand-icons}i.icon.critical.role:before{content:"\f6c9";font-family:brand-icons}i.icon.css3:before{content:"\f13c";font-family:brand-icons}i.icon.css3.alternate:before{content:"\f38b";font-family:brand-icons}i.icon.cuttlefish:before{content:"\f38c";font-family:brand-icons}i.icon.d.and.d:before{content:"\f38d";font-family:brand-icons}i.icon.d.and.d.beyond:before{content:"\f6ca";font-family:brand-icons}i.icon.dailymotion:before{content:"\f952";font-family:brand-icons}i.icon.dashcube:before{content:"\f210";font-family:brand-icons}i.icon.delicious:before{content:"\f1a5";font-family:brand-icons}i.icon.deploydog:before{content:"\f38e";font-family:brand-icons}i.icon.deskpro:before{content:"\f38f";font-family:brand-icons}i.icon.dev:before{content:"\f6cc";font-family:brand-icons}i.icon.deviantart:before{content:"\f1bd";font-family:brand-icons}i.icon.dhl:before{content:"\f790";font-family:brand-icons}i.icon.diaspora:before{content:"\f791";font-family:brand-icons}i.icon.digg:before{content:"\f1a6";font-family:brand-icons}i.icon.digital.ocean:before{content:"\f391";font-family:brand-icons}i.icon.discord:before{content:"\f392";font-family:brand-icons}i.icon.discourse:before{content:"\f393";font-family:brand-icons}i.icon.dochub:before{content:"\f394";font-family:brand-icons}i.icon.docker:before{content:"\f395";font-family:brand-icons}i.icon.draft2digital:before{content:"\f396";font-family:brand-icons}i.icon.dribbble:before{content:"\f17d";font-family:brand-icons}i.icon.dribbble.square:before{content:"\f397";font-family:brand-icons}i.icon.dropbox:before{content:"\f16b";font-family:brand-icons}i.icon.drupal:before{content:"\f1a9";font-family:brand-icons}i.icon.dyalog:before{content:"\f399";font-family:brand-icons}i.icon.earlybirds:before{content:"\f39a";font-family:brand-icons}i.icon.ebay:before{content:"\f4f4";font-family:brand-icons}i.icon.edge:before{content:"\f282";font-family:brand-icons}i.icon.elementor:before{content:"\f430";font-family:brand-icons}i.icon.ello:before{content:"\f5f1";font-family:brand-icons}i.icon.ember:before{content:"\f423";font-family:brand-icons}i.icon.empire:before{content:"\f1d1";font-family:brand-icons}i.icon.envira:before{content:"\f299";font-family:brand-icons}i.icon.erlang:before{content:"\f39d";font-family:brand-icons}i.icon.ethereum:before{content:"\f42e";font-family:brand-icons}i.icon.etsy:before{content:"\f2d7";font-family:brand-icons}i.icon.evernote:before{content:"\f839";font-family:brand-icons}i.icon.expeditedssl:before{content:"\f23e";font-family:brand-icons}i.icon.facebook:before{content:"\f09a";font-family:brand-icons}i.icon.facebook.f:before{content:"\f39e";font-family:brand-icons}i.icon.facebook.messenger:before{content:"\f39f";font-family:brand-icons}i.icon.facebook.square:before{content:"\f082";font-family:brand-icons}i.icon.fantasy.flight.games:before{content:"\f6dc";font-family:brand-icons}i.icon.fedex:before{content:"\f797";font-family:brand-icons}i.icon.fedora:before{content:"\f798";font-family:brand-icons}i.icon.figma:before{content:"\f799";font-family:brand-icons}i.icon.firefox:before{content:"\f269";font-family:brand-icons}i.icon.firefox.browser:before{content:"\f907";font-family:brand-icons}i.icon.first.order:before{content:"\f2b0";font-family:brand-icons}i.icon.first.order.alternate:before{content:"\f50a";font-family:brand-icons}i.icon.firstdraft:before{content:"\f3a1";font-family:brand-icons}i.icon.flickr:before{content:"\f16e";font-family:brand-icons}i.icon.flipboard:before{content:"\f44d";font-family:brand-icons}i.icon.fly:before{content:"\f417";font-family:brand-icons}i.icon.font.awesome:before{content:"\f2b4";font-family:brand-icons}i.icon.font.awesome.alternate:before{content:"\f35c";font-family:brand-icons}i.icon.font.awesome.flag:before{content:"\f425";font-family:brand-icons}i.icon.fonticons:before{content:"\f280";font-family:brand-icons}i.icon.fonticons.fi:before{content:"\f3a2";font-family:brand-icons}i.icon.fort.awesome:before{content:"\f286";font-family:brand-icons}i.icon.fort.awesome.alternate:before{content:"\f3a3";font-family:brand-icons}i.icon.forumbee:before{content:"\f211";font-family:brand-icons}i.icon.foursquare:before{content:"\f180";font-family:brand-icons}i.icon.free.code.camp:before{content:"\f2c5";font-family:brand-icons}i.icon.freebsd:before{content:"\f3a4";font-family:brand-icons}i.icon.fulcrum:before{content:"\f50b";font-family:brand-icons}i.icon.galactic.republic:before{content:"\f50c";font-family:brand-icons}i.icon.galactic.senate:before{content:"\f50d";font-family:brand-icons}i.icon.get.pocket:before{content:"\f265";font-family:brand-icons}i.icon.gg:before{content:"\f260";font-family:brand-icons}i.icon.gg.circle:before{content:"\f261";font-family:brand-icons}i.icon.git:before{content:"\f1d3";font-family:brand-icons}i.icon.git.alternate:before{content:"\f841";font-family:brand-icons}i.icon.git.square:before{content:"\f1d2";font-family:brand-icons}i.icon.github:before{content:"\f09b";font-family:brand-icons}i.icon.github.alternate:before{content:"\f113";font-family:brand-icons}i.icon.github.square:before{content:"\f092";font-family:brand-icons}i.icon.gitkraken:before{content:"\f3a6";font-family:brand-icons}i.icon.gitlab:before{content:"\f296";font-family:brand-icons}i.icon.gitter:before{content:"\f426";font-family:brand-icons}i.icon.glide:before{content:"\f2a5";font-family:brand-icons}i.icon.glide.g:before{content:"\f2a6";font-family:brand-icons}i.icon.gofore:before{content:"\f3a7";font-family:brand-icons}i.icon.goodreads:before{content:"\f3a8";font-family:brand-icons}i.icon.goodreads.g:before{content:"\f3a9";font-family:brand-icons}i.icon.google:before{content:"\f1a0";font-family:brand-icons}i.icon.google.drive:before{content:"\f3aa";font-family:brand-icons}i.icon.google.play:before{content:"\f3ab";font-family:brand-icons}i.icon.google.plus:before{content:"\f2b3";font-family:brand-icons}i.icon.google.plus.g:before{content:"\f0d5";font-family:brand-icons}i.icon.google.plus.square:before{content:"\f0d4";font-family:brand-icons}i.icon.google.wallet:before{content:"\f1ee";font-family:brand-icons}i.icon.gratipay:before{content:"\f184";font-family:brand-icons}i.icon.grav:before{content:"\f2d6";font-family:brand-icons}i.icon.gripfire:before{content:"\f3ac";font-family:brand-icons}i.icon.grunt:before{content:"\f3ad";font-family:brand-icons}i.icon.gulp:before{content:"\f3ae";font-family:brand-icons}i.icon.hacker.news:before{content:"\f1d4";font-family:brand-icons}i.icon.hacker.news.square:before{content:"\f3af";font-family:brand-icons}i.icon.hackerrank:before{content:"\f5f7";font-family:brand-icons}i.icon.hips:before{content:"\f452";font-family:brand-icons}i.icon.hire.a.helper:before{content:"\f3b0";font-family:brand-icons}i.icon.hooli:before{content:"\f427";font-family:brand-icons}i.icon.hornbill:before{content:"\f592";font-family:brand-icons}i.icon.hotjar:before{content:"\f3b1";font-family:brand-icons}i.icon.houzz:before{content:"\f27c";font-family:brand-icons}i.icon.html5:before{content:"\f13b";font-family:brand-icons}i.icon.hubspot:before{content:"\f3b2";font-family:brand-icons}i.icon.ideal:before{content:"\f913";font-family:brand-icons}i.icon.imdb:before{content:"\f2d8";font-family:brand-icons}i.icon.instagram:before{content:"\f16d";font-family:brand-icons}i.icon.instagram.square:before{content:"\f955";font-family:brand-icons}i.icon.intercom:before{content:"\f7af";font-family:brand-icons}i.icon.internet.explorer:before{content:"\f26b";font-family:brand-icons}i.icon.invision:before{content:"\f7b0";font-family:brand-icons}i.icon.ioxhost:before{content:"\f208";font-family:brand-icons}i.icon.itch.io:before{content:"\f83a";font-family:brand-icons}i.icon.itunes:before{content:"\f3b4";font-family:brand-icons}i.icon.itunes.note:before{content:"\f3b5";font-family:brand-icons}i.icon.java:before{content:"\f4e4";font-family:brand-icons}i.icon.jedi.order:before{content:"\f50e";font-family:brand-icons}i.icon.jenkins:before{content:"\f3b6";font-family:brand-icons}i.icon.jira:before{content:"\f7b1";font-family:brand-icons}i.icon.joget:before{content:"\f3b7";font-family:brand-icons}i.icon.joomla:before{content:"\f1aa";font-family:brand-icons}i.icon.js:before{content:"\f3b8";font-family:brand-icons}i.icon.js.square:before{content:"\f3b9";font-family:brand-icons}i.icon.jsfiddle:before{content:"\f1cc";font-family:brand-icons}i.icon.kaggle:before{content:"\f5fa";font-family:brand-icons}i.icon.keybase:before{content:"\f4f5";font-family:brand-icons}i.icon.keycdn:before{content:"\f3ba";font-family:brand-icons}i.icon.kickstarter:before{content:"\f3bb";font-family:brand-icons}i.icon.kickstarter.k:before{content:"\f3bc";font-family:brand-icons}i.icon.korvue:before{content:"\f42f";font-family:brand-icons}i.icon.laravel:before{content:"\f3bd";font-family:brand-icons}i.icon.lastfm:before{content:"\f202";font-family:brand-icons}i.icon.lastfm.square:before{content:"\f203";font-family:brand-icons}i.icon.leanpub:before{content:"\f212";font-family:brand-icons}i.icon.lesscss:before{content:"\f41d";font-family:brand-icons}i.icon.linechat:before{content:"\f3c0";font-family:brand-icons}i.icon.linkedin:before{content:"\f08c";font-family:brand-icons}i.icon.linkedin.in:before{content:"\f0e1";font-family:brand-icons}i.icon.linode:before{content:"\f2b8";font-family:brand-icons}i.icon.linux:before{content:"\f17c";font-family:brand-icons}i.icon.lyft:before{content:"\f3c3";font-family:brand-icons}i.icon.magento:before{content:"\f3c4";font-family:brand-icons}i.icon.mailchimp:before{content:"\f59e";font-family:brand-icons}i.icon.mandalorian:before{content:"\f50f";font-family:brand-icons}i.icon.markdown:before{content:"\f60f";font-family:brand-icons}i.icon.mastodon:before{content:"\f4f6";font-family:brand-icons}i.icon.maxcdn:before{content:"\f136";font-family:brand-icons}i.icon.mdb:before{content:"\f8ca";font-family:brand-icons}i.icon.medapps:before{content:"\f3c6";font-family:brand-icons}i.icon.medium:before{content:"\f23a";font-family:brand-icons}i.icon.medium.m:before{content:"\f3c7";font-family:brand-icons}i.icon.medrt:before{content:"\f3c8";font-family:brand-icons}i.icon.meetup:before{content:"\f2e0";font-family:brand-icons}i.icon.megaport:before{content:"\f5a3";font-family:brand-icons}i.icon.mendeley:before{content:"\f7b3";font-family:brand-icons}i.icon.microblog:before{content:"\f91a";font-family:brand-icons}i.icon.microsoft:before{content:"\f3ca";font-family:brand-icons}i.icon.mix:before{content:"\f3cb";font-family:brand-icons}i.icon.mixcloud:before{content:"\f289";font-family:brand-icons}i.icon.mixer:before{content:"\f956";font-family:brand-icons}i.icon.mizuni:before{content:"\f3cc";font-family:brand-icons}i.icon.modx:before{content:"\f285";font-family:brand-icons}i.icon.monero:before{content:"\f3d0";font-family:brand-icons}i.icon.napster:before{content:"\f3d2";font-family:brand-icons}i.icon.neos:before{content:"\f612";font-family:brand-icons}i.icon.nimblr:before{content:"\f5a8";font-family:brand-icons}i.icon.node:before{content:"\f419";font-family:brand-icons}i.icon.node.js:before{content:"\f3d3";font-family:brand-icons}i.icon.npm:before{content:"\f3d4";font-family:brand-icons}i.icon.ns8:before{content:"\f3d5";font-family:brand-icons}i.icon.nutritionix:before{content:"\f3d6";font-family:brand-icons}i.icon.odnoklassniki:before{content:"\f263";font-family:brand-icons}i.icon.odnoklassniki.square:before{content:"\f264";font-family:brand-icons}i.icon.old.republic:before{content:"\f510";font-family:brand-icons}i.icon.opencart:before{content:"\f23d";font-family:brand-icons}i.icon.openid:before{content:"\f19b";font-family:brand-icons}i.icon.opera:before{content:"\f26a";font-family:brand-icons}i.icon.optin.monster:before{content:"\f23c";font-family:brand-icons}i.icon.orcid:before{content:"\f8d2";font-family:brand-icons}i.icon.osi:before{content:"\f41a";font-family:brand-icons}i.icon.page4:before{content:"\f3d7";font-family:brand-icons}i.icon.pagelines:before{content:"\f18c";font-family:brand-icons}i.icon.palfed:before{content:"\f3d8";font-family:brand-icons}i.icon.patreon:before{content:"\f3d9";font-family:brand-icons}i.icon.paypal:before{content:"\f1ed";font-family:brand-icons}i.icon.penny.arcade:before{content:"\f704";font-family:brand-icons}i.icon.periscope:before{content:"\f3da";font-family:brand-icons}i.icon.phabricator:before{content:"\f3db";font-family:brand-icons}i.icon.phoenix.framework:before{content:"\f3dc";font-family:brand-icons}i.icon.phoenix.squadron:before{content:"\f511";font-family:brand-icons}i.icon.php:before{content:"\f457";font-family:brand-icons}i.icon.pied.piper:before{content:"\f2ae";font-family:brand-icons}i.icon.pied.piper.alternate:before{content:"\f1a8";font-family:brand-icons}i.icon.pied.piper.hat:before{content:"\f4e5"}i.icon.pied.piper.pp:before{content:"\f1a7";font-family:brand-icons}i.icon.pied.piper.square:before{content:"\f91e";font-family:brand-icons}i.icon.pinterest:before{content:"\f0d2";font-family:brand-icons}i.icon.pinterest.p:before{content:"\f231";font-family:brand-icons}i.icon.pinterest.square:before{content:"\f0d3";font-family:brand-icons}i.icon.playstation:before{content:"\f3df";font-family:brand-icons}i.icon.product.hunt:before{content:"\f288";font-family:brand-icons}i.icon.pushed:before{content:"\f3e1";font-family:brand-icons}i.icon.python:before{content:"\f3e2";font-family:brand-icons}i.icon.qq:before{content:"\f1d6";font-family:brand-icons}i.icon.quinscape:before{content:"\f459";font-family:brand-icons}i.icon.quora:before{content:"\f2c4";font-family:brand-icons}i.icon.r.project:before{content:"\f4f7";font-family:brand-icons}i.icon.raspberry.pi:before{content:"\f7bb";font-family:brand-icons}i.icon.ravelry:before{content:"\f2d9";font-family:brand-icons}i.icon.react:before{content:"\f41b";font-family:brand-icons}i.icon.reacteurope:before{content:"\f75d";font-family:brand-icons}i.icon.readme:before{content:"\f4d5";font-family:brand-icons}i.icon.rebel:before{content:"\f1d0";font-family:brand-icons}i.icon.reddit:before{content:"\f1a1";font-family:brand-icons}i.icon.reddit.alien:before{content:"\f281";font-family:brand-icons}i.icon.reddit.square:before{content:"\f1a2";font-family:brand-icons}i.icon.redhat:before{content:"\f7bc";font-family:brand-icons}i.icon.redriver:before{content:"\f3e3";font-family:brand-icons}i.icon.redyeti:before{content:"\f69d";font-family:brand-icons}i.icon.renren:before{content:"\f18b";font-family:brand-icons}i.icon.replyd:before{content:"\f3e6";font-family:brand-icons}i.icon.researchgate:before{content:"\f4f8";font-family:brand-icons}i.icon.resolving:before{content:"\f3e7";font-family:brand-icons}i.icon.rev:before{content:"\f5b2";font-family:brand-icons}i.icon.rocketchat:before{content:"\f3e8";font-family:brand-icons}i.icon.rockrms:before{content:"\f3e9";font-family:brand-icons}i.icon.safari:before{content:"\f267";font-family:brand-icons}i.icon.salesforce:before{content:"\f83b";font-family:brand-icons}i.icon.sass:before{content:"\f41e";font-family:brand-icons}i.icon.schlix:before{content:"\f3ea";font-family:brand-icons}i.icon.scribd:before{content:"\f28a";font-family:brand-icons}i.icon.searchengin:before{content:"\f3eb";font-family:brand-icons}i.icon.sellcast:before{content:"\f2da";font-family:brand-icons}i.icon.sellsy:before{content:"\f213";font-family:brand-icons}i.icon.servicestack:before{content:"\f3ec";font-family:brand-icons}i.icon.shirtsinbulk:before{content:"\f214";font-family:brand-icons}i.icon.shopify:before{content:"\f957";font-family:brand-icons}i.icon.shopware:before{content:"\f5b5";font-family:brand-icons}i.icon.simplybuilt:before{content:"\f215";font-family:brand-icons}i.icon.sistrix:before{content:"\f3ee";font-family:brand-icons}i.icon.sith:before{content:"\f512";font-family:brand-icons}i.icon.sketch:before{content:"\f7c6";font-family:brand-icons}i.icon.skyatlas:before{content:"\f216";font-family:brand-icons}i.icon.skype:before{content:"\f17e";font-family:brand-icons}i.icon.slack:before{content:"\f198";font-family:brand-icons}i.icon.slack.hash:before{content:"\f3ef";font-family:brand-icons}i.icon.slideshare:before{content:"\f1e7";font-family:brand-icons}i.icon.snapchat:before{content:"\f2ab";font-family:brand-icons}i.icon.snapchat.ghost:before{content:"\f2ac";font-family:brand-icons}i.icon.snapchat.square:before{content:"\f2ad";font-family:brand-icons}i.icon.soundcloud:before{content:"\f1be";font-family:brand-icons}i.icon.sourcetree:before{content:"\f7d3";font-family:brand-icons}i.icon.speakap:before{content:"\f3f3";font-family:brand-icons}i.icon.speaker.deck:before{content:"\f83c";font-family:brand-icons}i.icon.spotify:before{content:"\f1bc";font-family:brand-icons}i.icon.squarespace:before{content:"\f5be";font-family:brand-icons}i.icon.stack.exchange:before{content:"\f18d";font-family:brand-icons}i.icon.stack.overflow:before{content:"\f16c";font-family:brand-icons}i.icon.stackpath:before{content:"\f842";font-family:brand-icons}i.icon.staylinked:before{content:"\f3f5";font-family:brand-icons}i.icon.steam:before{content:"\f1b6";font-family:brand-icons}i.icon.steam.square:before{content:"\f1b7";font-family:brand-icons}i.icon.steam.symbol:before{content:"\f3f6";font-family:brand-icons}i.icon.sticker.mule:before{content:"\f3f7";font-family:brand-icons}i.icon.strava:before{content:"\f428";font-family:brand-icons}i.icon.stripe:before{content:"\f429";font-family:brand-icons}i.icon.stripe.s:before{content:"\f42a";font-family:brand-icons}i.icon.studiovinari:before{content:"\f3f8";font-family:brand-icons}i.icon.stumbleupon:before{content:"\f1a4";font-family:brand-icons}i.icon.stumbleupon.circle:before{content:"\f1a3";font-family:brand-icons}i.icon.superpowers:before{content:"\f2dd";font-family:brand-icons}i.icon.supple:before{content:"\f3f9";font-family:brand-icons}i.icon.suse:before{content:"\f7d6";font-family:brand-icons}i.icon.swift:before{content:"\f8e1";font-family:brand-icons}i.icon.symfony:before{content:"\f83d";font-family:brand-icons}i.icon.teamspeak:before{content:"\f4f9";font-family:brand-icons}i.icon.telegram:before{content:"\f2c6";font-family:brand-icons}i.icon.telegram.plane:before{content:"\f3fe";font-family:brand-icons}i.icon.tencent.weibo:before{content:"\f1d5";font-family:brand-icons}i.icon.themeco:before{content:"\f5c6";font-family:brand-icons}i.icon.themeisle:before{content:"\f2b2";font-family:brand-icons}i.icon.think.peaks:before{content:"\f731";font-family:brand-icons}i.icon.trade.federation:before{content:"\f513";font-family:brand-icons}i.icon.trello:before{content:"\f181";font-family:brand-icons}i.icon.tripadvisor:before{content:"\f262";font-family:brand-icons}i.icon.tumblr:before{content:"\f173";font-family:brand-icons}i.icon.tumblr.square:before{content:"\f174";font-family:brand-icons}i.icon.twitch:before{content:"\f1e8";font-family:brand-icons}i.icon.twitter:before{content:"\f099";font-family:brand-icons}i.icon.twitter.square:before{content:"\f081";font-family:brand-icons}i.icon.typo3:before{content:"\f42b";font-family:brand-icons}i.icon.uber:before{content:"\f402";font-family:brand-icons}i.icon.ubuntu:before{content:"\f7df";font-family:brand-icons}i.icon.uikit:before{content:"\f403";font-family:brand-icons}i.icon.umbraco:before{content:"\f8e8";font-family:brand-icons}i.icon.uniregistry:before{content:"\f404";font-family:brand-icons}i.icon.unity:before{content:"\f949";font-family:brand-icons}i.icon.untappd:before{content:"\f405";font-family:brand-icons}i.icon.ups:before{content:"\f7e0";font-family:brand-icons}i.icon.usb:before{content:"\f287";font-family:brand-icons}i.icon.usps:before{content:"\f7e1";font-family:brand-icons}i.icon.ussunnah:before{content:"\f407";font-family:brand-icons}i.icon.vaadin:before{content:"\f408";font-family:brand-icons}i.icon.viacoin:before{content:"\f237";font-family:brand-icons}i.icon.viadeo:before{content:"\f2a9";font-family:brand-icons}i.icon.viadeo.square:before{content:"\f2aa";font-family:brand-icons}i.icon.viber:before{content:"\f409";font-family:brand-icons}i.icon.vimeo:before{content:"\f40a";font-family:brand-icons}i.icon.vimeo.square:before{content:"\f194";font-family:brand-icons}i.icon.vimeo.v:before{content:"\f27d";font-family:brand-icons}i.icon.vine:before{content:"\f1ca";font-family:brand-icons}i.icon.vk:before{content:"\f189";font-family:brand-icons}i.icon.vnv:before{content:"\f40b";font-family:brand-icons}i.icon.vuejs:before{content:"\f41f";font-family:brand-icons}i.icon.waze:before{content:"\f83f";font-family:brand-icons}i.icon.weebly:before{content:"\f5cc";font-family:brand-icons}i.icon.weibo:before{content:"\f18a";font-family:brand-icons}i.icon.weixin:before{content:"\f1d7";font-family:brand-icons}i.icon.whatsapp:before{content:"\f232";font-family:brand-icons}i.icon.whatsapp.square:before{content:"\f40c";font-family:brand-icons}i.icon.whmcs:before{content:"\f40d";font-family:brand-icons}i.icon.wikipedia.w:before{content:"\f266";font-family:brand-icons}i.icon.windows:before{content:"\f17a";font-family:brand-icons}i.icon.wix:before{content:"\f5cf";font-family:brand-icons}i.icon.wizards.of.the.coast:before{content:"\f730";font-family:brand-icons}i.icon.wolf.pack.battalion:before{content:"\f514";font-family:brand-icons}i.icon.wordpress:before{content:"\f19a";font-family:brand-icons}i.icon.wordpress.simple:before{content:"\f411";font-family:brand-icons}i.icon.wpbeginner:before{content:"\f297";font-family:brand-icons}i.icon.wpexplorer:before{content:"\f2de";font-family:brand-icons}i.icon.wpforms:before{content:"\f298";font-family:brand-icons}i.icon.wpressr:before{content:"\f3e4";font-family:brand-icons}i.icon.xbox:before{content:"\f412";font-family:brand-icons}i.icon.xing:before{content:"\f168";font-family:brand-icons}i.icon.xing.square:before{content:"\f169";font-family:brand-icons}i.icon.y.combinator:before{content:"\f23b";font-family:brand-icons}i.icon.yahoo:before{content:"\f19e";font-family:brand-icons}i.icon.yammer:before{content:"\f840";font-family:brand-icons}i.icon.yandex:before{content:"\f413";font-family:brand-icons}i.icon.yandex.international:before{content:"\f414";font-family:brand-icons}i.icon.yarn:before{content:"\f7e3";font-family:brand-icons}i.icon.yelp:before{content:"\f1e9";font-family:brand-icons}i.icon.yoast:before{content:"\f2b1";font-family:brand-icons}i.icon.youtube:before{content:"\f167";font-family:brand-icons}i.icon.youtube.square:before{content:"\f431";font-family:brand-icons}i.icon.zhihu:before{content:"\f63f";font-family:brand-icons}i.icon.american.express.card:before,i.icon.american.express:before,i.icon.amex:before{content:"\f1f3";font-family:brand-icons}i.icon.bitbucket.square:before{content:"\f171";font-family:brand-icons}i.icon.bluetooth.alternative:before{content:"\f294";font-family:brand-icons}i.icon.credit.card.amazon.pay:before{content:"\f42d";font-family:brand-icons}i.icon.credit.card.american.express:before{content:"\f1f3";font-family:brand-icons}i.icon.credit.card.diners.club:before{content:"\f24c";font-family:brand-icons}i.icon.credit.card.discover:before{content:"\f1f2";font-family:brand-icons}i.icon.credit.card.jcb:before{content:"\f24b";font-family:brand-icons}i.icon.credit.card.mastercard:before{content:"\f1f1";font-family:brand-icons}i.icon.credit.card.paypal:before{content:"\f1f4";font-family:brand-icons}i.icon.credit.card.stripe:before{content:"\f1f5";font-family:brand-icons}i.icon.credit.card.visa:before{content:"\f1f0";font-family:brand-icons}i.icon.diners.club.card:before,i.icon.diners.club:before{content:"\f24c";font-family:brand-icons}i.icon.discover.card:before,i.icon.discover:before{content:"\f1f2";font-family:brand-icons}i.icon.disk.outline:before{content:"\f369";font-family:brand-icons}i.icon.dribble:before{content:"\f17d";font-family:brand-icons}i.icon.eercast:before{content:"\f2da";font-family:brand-icons}i.icon.envira.gallery:before{content:"\f299";font-family:brand-icons}i.icon.fa:before{content:"\f2b4";font-family:brand-icons}i.icon.facebook.official:before{content:"\f082";font-family:brand-icons}i.icon.five.hundred.pixels:before{content:"\f26e";font-family:brand-icons}i.icon.gittip:before{content:"\f184";font-family:brand-icons}i.icon.google.plus.circle:before,i.icon.google.plus.official:before{content:"\f2b3";font-family:brand-icons}i.icon.japan.credit.bureau.card:before,i.icon.japan.credit.bureau:before,i.icon.jcb:before{content:"\f24b";font-family:brand-icons}i.icon.linkedin.square:before{content:"\f08c";font-family:brand-icons}i.icon.mastercard.card:before,i.icon.mastercard:before{content:"\f1f1";font-family:brand-icons}i.icon.microsoft.edge:before,i.icon.ms.edge:before{content:"\f282";font-family:brand-icons}i.icon.new.pied.piper:before{content:"\f2ae";font-family:brand-icons}i.icon.optinmonster:before{content:"\f23c";font-family:brand-icons}i.icon.paypal.card:before{content:"\f1f4";font-family:brand-icons}i.icon.pied.piper.hat:before{content:"\f2ae";font-family:brand-icons}i.icon.pocket:before{content:"\f265";font-family:brand-icons}i.icon.stripe.card:before{content:"\f1f5";font-family:brand-icons}i.icon.theme.isle:before{content:"\f2b2";font-family:brand-icons}i.icon.visa.card:before,i.icon.visa:before{content:"\f1f0";font-family:brand-icons}i.icon.wechat:before{content:"\f1d7";font-family:brand-icons}i.icon.wikipedia:before{content:"\f266";font-family:brand-icons}i.icon.wordpress.beginner:before{content:"\f297";font-family:brand-icons}i.icon.wordpress.forms:before{content:"\f298";font-family:brand-icons}i.icon.yc:before,i.icon.ycombinator:before{content:"\f23b";font-family:brand-icons}i.icon.youtube.play:before{content:"\f167";font-family:brand-icons}/*!
+ * # Fomantic-UI - Image
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block}.ui.image img,.ui.image svg{display:block;max-width:100%;height:auto}.ui.hidden.images,.ui.ui.hidden.image{display:none}.ui.hidden.transition.image,.ui.hidden.transition.images{display:block;visibility:hidden}.ui.images>.hidden.transition{display:inline-block;visibility:hidden}.ui.disabled.image,.ui.disabled.images{cursor:default;opacity:.45}.ui.inline.image,.ui.inline.image img,.ui.inline.image svg{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.image svg{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.image svg{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.image svg{display:inline-block;vertical-align:bottom}.ui.images .ui.top.aligned.image,.ui.top.aligned.images .image{align-self:flex-start}.ui.images .ui.middle.aligned.image,.ui.middle.aligned.images .image{align-self:center}.ui.bottom.aligned.images .image,.ui.images .ui.bottom.aligned.image{align-self:flex-end}.ui.rounded.image,.ui.rounded.image>*,.ui.rounded.images .image,.ui.rounded.images .image>*{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.images .image,.ui.bordered.images img,.ui.bordered.images svg,.ui.bordered.image svg,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image>*,.ui.circular.images .image,.ui.circular.images .image>*{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.images,.ui.fluid.images img,.ui.fluid.images svg,.ui.fluid.image svg{display:block;width:100%;height:auto}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.images svg,.ui.avatar.image svg{margin-right:.25em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.spaced.image{display:inline-block!important;margin-left:.5em;margin-right:.5em}.ui[class*="left spaced"].image{margin-left:.5em;margin-right:0}.ui[class*="right spaced"].image{margin-left:0;margin-right:.5em}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image{display:block;margin-left:auto;margin-right:auto}.ui.centered.images{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch;justify-content:center}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img,.ui.medium.images svg{width:300px;height:auto;font-size:1rem}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img,.ui.mini.images svg{width:35px;height:auto;font-size:.78571429rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.images svg{width:80px;height:auto;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img,.ui.small.images svg{width:150px;height:auto;font-size:.92857143rem}.ui.large.image,.ui.large.images .image,.ui.large.images img,.ui.large.images svg{width:450px;height:auto;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img,.ui.big.images svg{width:600px;height:auto;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img,.ui.huge.images svg{width:800px;height:auto;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img,.ui.massive.images svg{width:960px;height:auto;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images>img,.ui.images>svg{display:inline-block;margin:0 .25rem .5rem}/*!
+ * # Fomantic-UI - Input
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.input{position:relative;font-weight:400;font-style:normal;display:inline-flex;color:rgba(0,0,0,.87)}.ui.input>input{margin:0;max-width:100%;flex:1 0 auto;outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);text-align:left;line-height:1.21428571em;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;padding:.67857143em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.28571429rem;transition:box-shadow .1s ease,border-color .1s ease;box-shadow:none}.ui.input>input::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.input>input::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.input>input:-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.disabled.input,.ui.input:not(.disabled) input[disabled]{opacity:.45}.ui.disabled.input>input,.ui.input:not(.disabled) input[disabled]{pointer-events:none}.ui.input.down input,.ui.input>input:active{border-color:rgba(0,0,0,.3);background:#fafafa;color:rgba(0,0,0,.87);box-shadow:none}.ui.loading.loading.input>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.loading.input>i.icon:after,.ui.loading.loading.input>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.loading.input>i.icon:after{-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent}.ui.input.focus>input,.ui.input>input:focus{border-color:#85b7d9;background:#fff;color:rgba(0,0,0,.8);box-shadow:none}.ui.input.focus>input::-webkit-input-placeholder,.ui.input>input:focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.focus>input::-moz-placeholder,.ui.input>input:focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.focus>input:-ms-input-placeholder,.ui.input>input:focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.error>input{background-color:#fff6f6;border-color:#e0b4b4;color:#9f3a38;box-shadow:none}.ui.input.error>input::-webkit-input-placeholder{color:#e7bdbc}.ui.input.error>input::-moz-placeholder{color:#e7bdbc}.ui.input.error>input:-ms-input-placeholder{color:#e7bdbc!important}.ui.input.error>input:focus::-webkit-input-placeholder{color:#da9796}.ui.input.error>input:focus::-moz-placeholder{color:#da9796}.ui.input.error>input:focus:-ms-input-placeholder{color:#da9796!important}.ui.input.info>input{background-color:#f8ffff;border-color:#a9d5de;color:#276f86;box-shadow:none}.ui.input.info>input::-webkit-input-placeholder{color:#98cfe1}.ui.input.info>input::-moz-placeholder{color:#98cfe1}.ui.input.info>input:-ms-input-placeholder{color:#98cfe1!important}.ui.input.info>input:focus::-webkit-input-placeholder{color:#70bdd6}.ui.input.info>input:focus::-moz-placeholder{color:#70bdd6}.ui.input.info>input:focus:-ms-input-placeholder{color:#70bdd6!important}.ui.input.success>input{background-color:#fcfff5;border-color:#a3c293;color:#2c662d;box-shadow:none}.ui.input.success>input::-webkit-input-placeholder{color:#8fcf90}.ui.input.success>input::-moz-placeholder{color:#8fcf90}.ui.input.success>input:-ms-input-placeholder{color:#8fcf90!important}.ui.input.success>input:focus::-webkit-input-placeholder{color:#6cbf6d}.ui.input.success>input:focus::-moz-placeholder{color:#6cbf6d}.ui.input.success>input:focus:-ms-input-placeholder{color:#6cbf6d!important}.ui.input.warning>input{background-color:#fffaf3;border-color:#c9ba9b;color:#573a08;box-shadow:none}.ui.input.warning>input::-webkit-input-placeholder{color:#edad3e}.ui.input.warning>input::-moz-placeholder{color:#edad3e}.ui.input.warning>input:-ms-input-placeholder{color:#edad3e!important}.ui.input.warning>input:focus::-webkit-input-placeholder{color:#e39715}.ui.input.warning>input:focus::-moz-placeholder{color:#e39715}.ui.input.warning>input:focus:-ms-input-placeholder{color:#e39715!important}.ui.transparent.input>input,.ui.transparent.input>textarea{border-color:transparent!important;background-color:transparent!important;padding:0;box-shadow:none!important;border-radius:0!important}.field .ui.transparent.input>textarea{padding:.67857143em 1em}:not(.field)>.ui.transparent.icon.input>i.icon{width:1.1em}:not(.field)>.ui.ui.ui.transparent.icon.input>input{padding-left:0;padding-right:2em}:not(.field)>.ui.ui.ui.transparent[class*="left icon"].input>input{padding-left:2em;padding-right:0}.ui.transparent.inverted.input{color:#fff}.ui.ui.transparent.inverted.input>input,.ui.ui.transparent.inverted.input>textarea{color:inherit}.ui.transparent.inverted.input>input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.ui.transparent.inverted.input>input::-moz-placeholder{color:hsla(0,0%,100%,.5)}.ui.transparent.inverted.input>input:-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.ui.icon.input>i.icon{cursor:default;position:absolute;line-height:1;text-align:center;top:0;right:0;margin:0;height:100%;width:2.67142857em;opacity:.5;border-radius:0 .28571429rem .28571429rem 0;transition:opacity .3s ease}.ui.icon.input>i.icon:not(.link){pointer-events:none}.ui.ui.ui.ui.icon.input>input,.ui.ui.ui.ui.icon.input>textarea{padding-right:2.67142857em}.ui.icon.input>i.icon:after,.ui.icon.input>i.icon:before{left:0;position:absolute;text-align:center;top:50%;width:100%;margin-top:-.5em}.ui.icon.input>i.link.icon{cursor:pointer}.ui.icon.input>i.circular.icon{top:.35em;right:.5em}.ui[class*="left icon"].input>i.icon{right:auto;left:1px;border-radius:.28571429rem 0 0 .28571429rem}.ui[class*="left icon"].input>i.circular.icon{right:auto;left:.5em}.ui.ui.ui.ui[class*="left icon"].input>input,.ui.ui.ui.ui[class*="left icon"].input>textarea{padding-left:2.67142857em;padding-right:1em}.ui.icon.input>input:focus~i.icon,.ui.icon.input>textarea:focus~i.icon{opacity:1}.ui.labeled.input>.label{flex:0 0 auto;margin:0;font-size:1em}.ui.labeled.input>.label:not(.corner){padding-top:.78571429em;padding-bottom:.78571429em}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child+input{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:transparent}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child+input:focus{border-left-color:#85b7d9}.ui[class*="right labeled"].input>input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right-color:transparent!important}.ui[class*="right labeled"].input>input+.label{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="right labeled"].input>input:focus{border-right-color:#85b7d9!important}.ui.labeled.input .corner.label{top:1px;right:1px;font-size:.64285714em;border-radius:0 .28571429rem 0 0}.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input>input,.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input>textarea{padding-right:2.5em!important}.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>input,.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>textarea{padding-right:3.25em!important}.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>i.icon{margin-right:1.25em}.ui[class*="left corner labeled"].labeled.input>input,.ui[class*="left corner labeled"].labeled.input>textarea{padding-left:2.5em!important}.ui[class*="left corner labeled"].icon.input>input,.ui[class*="left corner labeled"].icon.input>textarea{padding-left:3.25em!important}.ui[class*="left corner labeled"].icon.input>i.icon{margin-left:1.25em}.ui.icon.input>textarea~i.icon{height:3em}:not(.field)>.ui.transparent.icon.input>textarea~i.icon{height:1.3em}.ui.input>.ui.corner.label{top:1px;right:1px}.ui.input>.ui.left.corner.label{right:auto;left:1px}.ui.action.input.error>.ui.button,.ui.form .field.error>.ui.action.input>.ui.button,.ui.form .field.error>.ui.labeled.input:not([class*="corner labeled"])>.ui.label,.ui.labeled.input.error:not([class*="corner labeled"])>.ui.label{border-top:1px solid #e0b4b4;border-bottom:1px solid #e0b4b4}.ui.form .field.error>.ui.labeled.input:not(.right):not([class*="corner labeled"])>.ui.label,.ui.form .field.error>.ui[class*="left action"].input>.ui.button,.ui.labeled.input.error:not(.right):not([class*="corner labeled"])>.ui.label,.ui[class*="left action"].input.error>.ui.button{border-left:1px solid #e0b4b4}.ui.action.input.error:not([class*="left action"])>input+.ui.button,.ui.form .field.error>.ui.action.input:not([class*="left action"])>input+.ui.button,.ui.form .field.error>.ui.right.labeled.input:not([class*="corner labeled"])>input+.ui.label,.ui.right.labeled.input.error:not([class*="corner labeled"])>input+.ui.label{border-right:1px solid #e0b4b4}.ui.form .field.error>.ui.right.labeled.input:not([class*="corner labeled"])>.ui.label:first-child,.ui.right.labeled.input.error:not([class*="corner labeled"])>.ui.label:first-child{border-left:1px solid #e0b4b4}.ui.action.input.info>.ui.button,.ui.form .field.info>.ui.action.input>.ui.button,.ui.form .field.info>.ui.labeled.input:not([class*="corner labeled"])>.ui.label,.ui.labeled.input.info:not([class*="corner labeled"])>.ui.label{border-top:1px solid #a9d5de;border-bottom:1px solid #a9d5de}.ui.form .field.info>.ui.labeled.input:not(.right):not([class*="corner labeled"])>.ui.label,.ui.form .field.info>.ui[class*="left action"].input>.ui.button,.ui.labeled.input.info:not(.right):not([class*="corner labeled"])>.ui.label,.ui[class*="left action"].input.info>.ui.button{border-left:1px solid #a9d5de}.ui.action.input.info:not([class*="left action"])>input+.ui.button,.ui.form .field.info>.ui.action.input:not([class*="left action"])>input+.ui.button,.ui.form .field.info>.ui.right.labeled.input:not([class*="corner labeled"])>input+.ui.label,.ui.right.labeled.input.info:not([class*="corner labeled"])>input+.ui.label{border-right:1px solid #a9d5de}.ui.form .field.info>.ui.right.labeled.input:not([class*="corner labeled"])>.ui.label:first-child,.ui.right.labeled.input.info:not([class*="corner labeled"])>.ui.label:first-child{border-left:1px solid #a9d5de}.ui.action.input.success>.ui.button,.ui.form .field.success>.ui.action.input>.ui.button,.ui.form .field.success>.ui.labeled.input:not([class*="corner labeled"])>.ui.label,.ui.labeled.input.success:not([class*="corner labeled"])>.ui.label{border-top:1px solid #a3c293;border-bottom:1px solid #a3c293}.ui.form .field.success>.ui.labeled.input:not(.right):not([class*="corner labeled"])>.ui.label,.ui.form .field.success>.ui[class*="left action"].input>.ui.button,.ui.labeled.input.success:not(.right):not([class*="corner labeled"])>.ui.label,.ui[class*="left action"].input.success>.ui.button{border-left:1px solid #a3c293}.ui.action.input.success:not([class*="left action"])>input+.ui.button,.ui.form .field.success>.ui.action.input:not([class*="left action"])>input+.ui.button,.ui.form .field.success>.ui.right.labeled.input:not([class*="corner labeled"])>input+.ui.label,.ui.right.labeled.input.success:not([class*="corner labeled"])>input+.ui.label{border-right:1px solid #a3c293}.ui.form .field.success>.ui.right.labeled.input:not([class*="corner labeled"])>.ui.label:first-child,.ui.right.labeled.input.success:not([class*="corner labeled"])>.ui.label:first-child{border-left:1px solid #a3c293}.ui.action.input.warning>.ui.button,.ui.form .field.warning>.ui.action.input>.ui.button,.ui.form .field.warning>.ui.labeled.input:not([class*="corner labeled"])>.ui.label,.ui.labeled.input.warning:not([class*="corner labeled"])>.ui.label{border-top:1px solid #c9ba9b;border-bottom:1px solid #c9ba9b}.ui.form .field.warning>.ui.labeled.input:not(.right):not([class*="corner labeled"])>.ui.label,.ui.form .field.warning>.ui[class*="left action"].input>.ui.button,.ui.labeled.input.warning:not(.right):not([class*="corner labeled"])>.ui.label,.ui[class*="left action"].input.warning>.ui.button{border-left:1px solid #c9ba9b}.ui.action.input.warning:not([class*="left action"])>input+.ui.button,.ui.form .field.warning>.ui.action.input:not([class*="left action"])>input+.ui.button,.ui.form .field.warning>.ui.right.labeled.input:not([class*="corner labeled"])>input+.ui.label,.ui.right.labeled.input.warning:not([class*="corner labeled"])>input+.ui.label{border-right:1px solid #c9ba9b}.ui.form .field.warning>.ui.right.labeled.input:not([class*="corner labeled"])>.ui.label:first-child,.ui.right.labeled.input.warning:not([class*="corner labeled"])>.ui.label:first-child{border-left:1px solid #c9ba9b}.ui.action.input>.button,.ui.action.input>.buttons{display:flex;align-items:center;flex:0 0 auto}.ui.action.input>.button,.ui.action.input>.buttons>.button{padding-top:.78571429em;padding-bottom:.78571429em;margin:0}.ui[class*="left action"].input>input{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:transparent}.ui.action.input:not([class*="left action"])>input{border-top-right-radius:0;border-bottom-right-radius:0;border-right-color:transparent}.ui.action.input>.button:first-child,.ui.action.input>.buttons:first-child>.button,.ui.action.input>.dropdown:first-child{border-radius:.28571429rem 0 0 .28571429rem}.ui.action.input>.button:not(:first-child),.ui.action.input>.buttons:not(:first-child)>.button,.ui.action.input>.dropdown:not(:first-child){border-radius:0}.ui.action.input>.button:last-child,.ui.action.input>.buttons:last-child>.button,.ui.action.input>.dropdown:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.action.input:not([class*="left action"])>input:focus{border-right-color:#85b7d9}.ui.ui[class*="left action"].input>input:focus{border-left-color:#85b7d9}.ui.inverted.input>input{border:none}.ui.fluid.input{display:flex}.ui.fluid.input>input{width:0!important}.ui.input{font-size:1em}.ui.mini.input{font-size:.78571429em}.ui.tiny.input{font-size:.85714286em}.ui.small.input{font-size:.92857143em}.ui.large.input{font-size:1.14285714em}.ui.big.input{font-size:1.28571429em}.ui.huge.input{font-size:1.42857143em}.ui.massive.input{font-size:1.71428571em}/*!
+ * # Fomantic-UI - Label
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.label{display:inline-block;line-height:1;vertical-align:baseline;margin:0 .14285714em;background-color:#e8e8e8;background-image:none;padding:.5833em .833em;color:rgba(0,0,0,.6);text-transform:none;font-weight:700;border:0 solid transparent;border-radius:.28571429rem;transition:background .1s ease}.ui.label:first-child{margin-left:0}.ui.label:last-child{margin-right:0}.ui.label>a,a.ui.label{cursor:pointer}.ui.label>a{color:inherit;opacity:.5;transition:opacity .1s ease}.ui.label>a:hover{opacity:1}.ui.label>img{width:auto!important;vertical-align:middle;height:2.1666em}.ui.label>.icon,.ui.left.icon.label>.icon{width:auto;margin:0 .75em 0 0}.ui.label>.detail{display:inline-block;vertical-align:top;font-weight:700;margin-left:1em;opacity:.8}.ui.label>.detail .icon{margin:0 .25em 0 0}.ui.label>.close.icon,.ui.label>.delete.icon{cursor:pointer;font-size:.92857143em;opacity:.5;transition:background .1s ease}.ui.label>.close.icon:hover,.ui.label>.delete.icon:hover{opacity:1}.ui.label.left.icon>.close.icon,.ui.label.left.icon>.delete.icon{margin:0 .5em 0 0}.ui.label:not(.icon)>.close.icon,.ui.label:not(.icon)>.delete.icon{margin:0 0 0 .5em}.ui.icon.label>.icon{margin:0 auto}.ui.right.icon.label>.icon{margin:0 0 0 .75em}.ui.labels>.label{margin:0 .5em .5em 0}.ui.header>.ui.label{margin-top:-.29165em}.ui.attached.segment>.ui.top.left.attached.label,.ui.bottom.attached.segment>.ui.top.left.attached.label{border-top-left-radius:0}.ui.attached.segment>.ui.top.right.attached.label,.ui.bottom.attached.segment>.ui.top.right.attached.label{border-top-right-radius:0}.ui.top.attached.segment>.ui.bottom.left.attached.label{border-bottom-left-radius:0}.ui.top.attached.segment>.ui.bottom.right.attached.label{border-bottom-right-radius:0}.ui.top.attached.label+:not(.attached),.ui.top.attached.label~.ui.bottom.attached.label+:not(.attached){margin-top:2rem!important}.ui.bottom.attached.label~:last-child:not(.attached){margin-top:0;margin-bottom:2rem!important}.ui.segment:not(.basic)>.ui.top.attached.label{margin-top:-1px}.ui.segment:not(.basic)>.ui.bottom.attached.label{margin-bottom:-1px}.ui.segment:not(.basic)>.ui.attached.label:not(.right){margin-left:-1px}.ui.segment:not(.basic)>.ui.right.attached.label{margin-right:-1px}.ui.segment:not(.basic)>.ui.attached.label:not(.left):not(.right){width:calc(100% + 2px)}.ui.image.label{width:auto;margin-top:0;margin-bottom:0;max-width:9999px;vertical-align:baseline;text-transform:none;background:#e8e8e8;border-radius:.28571429rem;box-shadow:none}.ui.image.label,.ui.image.label.attached:not(.basic){padding:.5833em .833em .5833em .5em}.ui.image.label img{display:inline-block;vertical-align:top;height:2.1666em;margin:-.5833em .5em -.5833em -.5em;border-radius:.28571429rem 0 0 .28571429rem}.ui.image.label .detail{background:rgba(0,0,0,.1);margin:-.5833em -.833em -.5833em .5em;padding:.5833em .833em;border-radius:0 .28571429rem .28571429rem 0}.ui.bottom.attached.image.label:not(.right)>img,.ui.top.right.attached.image.label>img{border-top-left-radius:0}.ui.bottom.right.attached.image.label>img,.ui.top.attached.image.label:not(.right)>img{border-bottom-left-radius:0}.ui.tag.label,.ui.tag.labels .label{margin-left:1em;position:relative;padding-left:1.5em;padding-right:1.5em;border-radius:0 .28571429rem .28571429rem 0;transition:none}.ui.tag.label:before,.ui.tag.labels .label:before{position:absolute;transform:translateY(-50%) translateX(50%) rotate(-45deg);top:50%;right:100%;content:"";background-color:inherit;background-image:none;width:1.56em;height:1.56em;transition:none}.ui.tag.label:after,.ui.tag.labels .label:after{position:absolute;content:"";top:50%;left:-.25em;margin-top:-.25em;background-color:#fff;width:.5em;height:.5em;box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);border-radius:500rem}.ui.basic.tag.label:before,.ui.basic.tag.labels .label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;right:calc(100% + 1px)}.ui.basic.tag.label:after,.ui.basic.tag.labels .label:after{box-shadow:0 -1px 3px 0 rgba(0,0,0,.8)}.ui.corner.label{margin:0;padding:0;text-align:center;border-color:#e8e8e8;width:4em;height:4em;z-index:1;background-color:transparent!important}.ui.corner.label,.ui.corner.label:after{position:absolute;top:0;right:0;transition:border-color .1s ease}.ui.corner.label:after{content:"";z-index:-1;width:0;height:0;background-color:transparent;border-color:transparent;border-style:solid;border-width:0 4em 4em 0;border-right-color:inherit}.ui.corner.label .icon{cursor:inherit;position:absolute;top:.64285714em;left:auto;right:.57142857em;font-size:1.14285714em;margin:0}.ui.left.corner.label,.ui.left.corner.label:after{right:auto;left:0}.ui.left.corner.label:after{border-color:transparent;border-style:solid;border-width:4em 4em 0 0;border-top-color:inherit}.ui.left.corner.label .icon{left:.57142857em;right:auto}.ui.segment>.ui.corner.label{top:-1px;right:-1px}.ui.segment>.ui.left.corner.label{right:auto;left:-1px}.ui.ribbon.label{position:relative;margin:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;border-radius:0 .28571429rem .28571429rem 0;border-color:rgba(0,0,0,.15)}.ui.ribbon.label:after{position:absolute;content:"";top:100%;left:0;background-color:transparent;border-color:transparent;border-style:solid;border-width:0 1.2em 1.2em 0;border-right-color:inherit;width:0;height:0}.ui.ribbon.label{left:calc(-1rem - 1.2em);margin-right:-1.2em;padding-left:calc(1rem + 1.2em);padding-right:1.2em}.ui[class*="right ribbon"].label{left:calc(100% + 1rem + 1.2em);padding-left:1.2em;padding-right:calc(1rem + 1.2em)}.ui.basic.ribbon.label{padding-top:calc(.5833em - 1px);padding-bottom:calc(.5833em - 1px)}.ui.basic.ribbon.label:not([class*="right ribbon"]){padding-left:calc(1rem + 1.2em - 1px);padding-right:calc(1.2em - 1px)}.ui.basic[class*="right ribbon"].label{padding-left:calc(1.2em - 1px);padding-right:calc(1rem + 1.2em - 1px)}.ui.basic.ribbon.label:after{top:calc(100% + 1px)}.ui.basic.ribbon.label:not([class*="right ribbon"]):after{left:-1px}.ui.basic[class*="right ribbon"].label:after{right:-1px}.ui[class*="right ribbon"].label{text-align:left;transform:translateX(-100%);border-radius:.28571429rem 0 0 .28571429rem}.ui[class*="right ribbon"].label:after{left:auto;right:0;border-color:transparent;border-style:solid;border-width:1.2em 1.2em 0 0;border-top-color:inherit}.ui.card .image>.ribbon.label,.ui.image>.ribbon.label{position:absolute;top:1rem}.ui.card .image>.ui.ribbon.label,.ui.image>.ui.ribbon.label{left:calc(.05rem - 1.2em)}.ui.card .image>.ui[class*="right ribbon"].label,.ui.image>.ui[class*="right ribbon"].label{left:calc(100% + -.05rem + 1.2em);padding-left:.833em}.ui.table td>.ui.ribbon.label{left:-2.2em}.ui.table td>.ui[class*="right ribbon"].label{left:calc(100% + 2.2em);padding-left:.833em}.ui.attached.label,.ui[class*="top attached"].label{width:100%;position:absolute;margin:0;top:0;left:0;padding:.75em 1em;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="bottom attached"].label{top:auto;bottom:0;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="top left attached"].label{width:auto;margin-top:0;border-radius:.21428571rem 0 .28571429rem 0}.ui[class*="top right attached"].label{width:auto;left:auto;right:0;border-radius:0 .21428571rem 0 .28571429rem}.ui[class*="bottom left attached"].label{width:auto;top:auto;bottom:0;border-radius:0 .28571429rem 0 .21428571rem}.ui[class*="bottom right attached"].label{top:auto;bottom:0;left:auto;right:0;width:auto;border-radius:.28571429rem 0 .21428571rem 0}.ui.label.disabled{opacity:.5}.ui.labels a.label:hover,a.ui.label:hover{background-color:#e0e0e0;border-color:#e0e0e0;background-image:none;color:rgba(0,0,0,.8)}.ui.labels a.label:hover:before,a.ui.label:hover:before{color:rgba(0,0,0,.8)}.ui.active.label{border-color:#d0d0d0}.ui.active.label,.ui.active.label:before{background-color:#d0d0d0;background-image:none;color:rgba(0,0,0,.95)}.ui.labels a.active.label:hover,a.ui.active.label:hover{border-color:#c8c8c8}.ui.labels a.active.label:hover,.ui.labels a.active.label:hover:before,a.ui.active.label:hover,a.ui.active.label:hover:before{background-color:#c8c8c8;background-image:none;color:rgba(0,0,0,.95)}.ui.label.visible:not(.dropdown),.ui.labels.visible .label{display:inline-block!important}.ui.label.hidden,.ui.labels.hidden .label{display:none!important}.ui.basic.label,.ui.basic.labels .label{background:none #fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:none;padding-top:calc(.5833em - 1px);padding-bottom:calc(.5833em - 1px);padding-right:calc(.833em - 1px)}.ui.basic.label:not(.tag):not(.image):not(.ribbon),.ui.basic.labels:not(.tag):not(.image):not(.ribbon) .label{padding-left:calc(.833em - 1px)}.ui.basic.image.label{padding-left:calc(.5em - 1px)}.ui.basic.labels a.label:hover,a.ui.basic.label:hover{text-decoration:none;background:none #fff;color:#1e70bf;box-shadow:none}.ui.basic.pointing.label:before{border-color:inherit}.ui.fluid.labels>.label,.ui.label.fluid{width:100%;box-sizing:border-box}.ui.inverted.label,.ui.inverted.labels .label{color:hsla(0,0%,100%,.9);background-color:#b5b5b5}.ui.inverted.corner.label{border-color:#b5b5b5}.ui.inverted.corner.label:hover{border-color:#e8e8e8;transition:none}.ui.inverted.basic.label,.ui.inverted.basic.label:hover,.ui.inverted.basic.labels .label{border-color:hsla(0,0%,100%,.5);background:#1b1c1d}.ui.inverted.basic.label:hover{color:#4183c4}.ui.primary.labels .label,.ui.ui.ui.primary.label{background-color:#2185d0;border-color:#2185d0;color:hsla(0,0%,100%,.9)}.ui.primary.labels a.label:hover,a.ui.ui.ui.primary.label:hover{background-color:#1678c2;border-color:#1678c2;color:#fff}.ui.ui.ui.primary.ribbon.label{border-color:#1a69a4}.ui.basic.labels .primary.label,.ui.ui.ui.basic.primary.label{background:none #fff;border-color:#2185d0;color:#2185d0}.ui.basic.labels a.primary.label:hover,a.ui.ui.ui.basic.primary.label:hover{background:none #fff;border-color:#1678c2;color:#1678c2}.ui.inverted.labels .primary.label,.ui.ui.ui.inverted.primary.label{background-color:#54c8ff;border-color:#54c8ff;color:#1b1c1d}.ui.inverted.labels a.primary.label:hover,a.ui.ui.ui.inverted.primary.label:hover{background-color:#21b8ff;border-color:#21b8ff;color:#1b1c1d}.ui.ui.ui.inverted.primary.ribbon.label{border-color:#21b8ff}.ui.inverted.basic.labels .primary.label,.ui.ui.ui.inverted.basic.primary.label{background-color:#1b1c1d;border-color:#54c8ff;color:#54c8ff}.ui.inverted.basic.labels a.primary.label:hover,a.ui.ui.ui.inverted.basic.primary.label:hover{border-color:#21b8ff;background-color:#1b1c1d;color:#21b8ff}.ui.inverted.basic.tag.labels .primary.label,.ui.ui.ui.inverted.primary.basic.tag.label{border:1px solid #54c8ff}.ui.inverted.basic.tag.labels .primary.label:before,.ui.ui.ui.inverted.primary.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.secondary.labels .label,.ui.ui.ui.secondary.label{background-color:#1b1c1d;border-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.secondary.labels a.label:hover,a.ui.ui.ui.secondary.label:hover{background-color:#27292a;border-color:#27292a;color:#fff}.ui.ui.ui.secondary.ribbon.label{border-color:#020203}.ui.basic.labels .secondary.label,.ui.ui.ui.basic.secondary.label{background:none #fff;border-color:#1b1c1d;color:#1b1c1d}.ui.basic.labels a.secondary.label:hover,a.ui.ui.ui.basic.secondary.label:hover{background:none #fff;border-color:#27292a;color:#27292a}.ui.inverted.labels .secondary.label,.ui.ui.ui.inverted.secondary.label{background-color:#545454;border-color:#545454;color:#1b1c1d}.ui.inverted.labels a.secondary.label:hover,a.ui.ui.ui.inverted.secondary.label:hover{background-color:#6e6e6e;border-color:#6e6e6e;color:#1b1c1d}.ui.ui.ui.inverted.secondary.ribbon.label{border-color:#3b3b3b}.ui.inverted.basic.labels .secondary.label,.ui.ui.ui.inverted.basic.secondary.label{background-color:#1b1c1d;border-color:#545454;color:#545454}.ui.inverted.basic.labels a.secondary.label:hover,a.ui.ui.ui.inverted.basic.secondary.label:hover{border-color:#6e6e6e;background-color:#1b1c1d;color:#6e6e6e}.ui.inverted.basic.tag.labels .secondary.label,.ui.ui.ui.inverted.secondary.basic.tag.label{border:1px solid #545454}.ui.inverted.basic.tag.labels .secondary.label:before,.ui.ui.ui.inverted.secondary.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.red.labels .label,.ui.ui.ui.red.label{background-color:#db2828;border-color:#db2828;color:#fff}.ui.red.labels a.label:hover,a.ui.ui.ui.red.label:hover{background-color:#d01919;border-color:#d01919;color:#fff}.ui.ui.ui.red.ribbon.label{border-color:#b21e1e}.ui.basic.labels .red.label,.ui.ui.ui.basic.red.label{background:none #fff;border-color:#db2828;color:#db2828}.ui.basic.labels a.red.label:hover,a.ui.ui.ui.basic.red.label:hover{background:none #fff;border-color:#d01919;color:#d01919}.ui.inverted.labels .red.label,.ui.ui.ui.inverted.red.label{background-color:#ff695e;border-color:#ff695e;color:#1b1c1d}.ui.inverted.labels a.red.label:hover,a.ui.ui.ui.inverted.red.label:hover{background-color:#ff392b;border-color:#ff392b;color:#1b1c1d}.ui.ui.ui.inverted.red.ribbon.label{border-color:#ff392b}.ui.inverted.basic.labels .red.label,.ui.ui.ui.inverted.basic.red.label{background-color:#1b1c1d;border-color:#ff695e;color:#ff695e}.ui.inverted.basic.labels a.red.label:hover,a.ui.ui.ui.inverted.basic.red.label:hover{border-color:#ff392b;background-color:#1b1c1d;color:#ff392b}.ui.inverted.basic.tag.labels .red.label,.ui.ui.ui.inverted.red.basic.tag.label{border:1px solid #ff695e}.ui.inverted.basic.tag.labels .red.label:before,.ui.ui.ui.inverted.red.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.orange.labels .label,.ui.ui.ui.orange.label{background-color:#f2711c;border-color:#f2711c;color:#fff}.ui.orange.labels a.label:hover,a.ui.ui.ui.orange.label:hover{background-color:#f26202;border-color:#f26202;color:#fff}.ui.ui.ui.orange.ribbon.label{border-color:#cf590c}.ui.basic.labels .orange.label,.ui.ui.ui.basic.orange.label{background:none #fff;border-color:#f2711c;color:#f2711c}.ui.basic.labels a.orange.label:hover,a.ui.ui.ui.basic.orange.label:hover{background:none #fff;border-color:#f26202;color:#f26202}.ui.inverted.labels .orange.label,.ui.ui.ui.inverted.orange.label{background-color:#ff851b;border-color:#ff851b;color:#1b1c1d}.ui.inverted.labels a.orange.label:hover,a.ui.ui.ui.inverted.orange.label:hover{background-color:#e76b00;border-color:#e76b00;color:#1b1c1d}.ui.ui.ui.inverted.orange.ribbon.label{border-color:#e76b00}.ui.inverted.basic.labels .orange.label,.ui.ui.ui.inverted.basic.orange.label{background-color:#1b1c1d;border-color:#ff851b;color:#ff851b}.ui.inverted.basic.labels a.orange.label:hover,a.ui.ui.ui.inverted.basic.orange.label:hover{border-color:#e76b00;background-color:#1b1c1d;color:#e76b00}.ui.inverted.basic.tag.labels .orange.label,.ui.ui.ui.inverted.orange.basic.tag.label{border:1px solid #ff851b}.ui.inverted.basic.tag.labels .orange.label:before,.ui.ui.ui.inverted.orange.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.ui.ui.yellow.label,.ui.yellow.labels .label{background-color:#fbbd08;border-color:#fbbd08;color:#fff}.ui.yellow.labels a.label:hover,a.ui.ui.ui.yellow.label:hover{background-color:#eaae00;border-color:#eaae00;color:#fff}.ui.ui.ui.yellow.ribbon.label{border-color:#cd9903}.ui.basic.labels .yellow.label,.ui.ui.ui.basic.yellow.label{background:none #fff;border-color:#fbbd08;color:#fbbd08}.ui.basic.labels a.yellow.label:hover,a.ui.ui.ui.basic.yellow.label:hover{background:none #fff;border-color:#eaae00;color:#eaae00}.ui.inverted.labels .yellow.label,.ui.ui.ui.inverted.yellow.label{background-color:#ffe21f;border-color:#ffe21f;color:#1b1c1d}.ui.inverted.labels a.yellow.label:hover,a.ui.ui.ui.inverted.yellow.label:hover{background-color:#ebcd00;border-color:#ebcd00;color:#1b1c1d}.ui.ui.ui.inverted.yellow.ribbon.label{border-color:#ebcd00}.ui.inverted.basic.labels .yellow.label,.ui.ui.ui.inverted.basic.yellow.label{background-color:#1b1c1d;border-color:#ffe21f;color:#ffe21f}.ui.inverted.basic.labels a.yellow.label:hover,a.ui.ui.ui.inverted.basic.yellow.label:hover{border-color:#ebcd00;background-color:#1b1c1d;color:#ebcd00}.ui.inverted.basic.tag.labels .yellow.label,.ui.ui.ui.inverted.yellow.basic.tag.label{border:1px solid #ffe21f}.ui.inverted.basic.tag.labels .yellow.label:before,.ui.ui.ui.inverted.yellow.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.olive.labels .label,.ui.ui.ui.olive.label{background-color:#b5cc18;border-color:#b5cc18;color:#fff}.ui.olive.labels a.label:hover,a.ui.ui.ui.olive.label:hover{background-color:#a7bd0d;border-color:#a7bd0d;color:#fff}.ui.ui.ui.olive.ribbon.label{border-color:#8d9e13}.ui.basic.labels .olive.label,.ui.ui.ui.basic.olive.label{background:none #fff;border-color:#b5cc18;color:#b5cc18}.ui.basic.labels a.olive.label:hover,a.ui.ui.ui.basic.olive.label:hover{background:none #fff;border-color:#a7bd0d;color:#a7bd0d}.ui.inverted.labels .olive.label,.ui.ui.ui.inverted.olive.label{background-color:#d9e778;border-color:#d9e778;color:#1b1c1d}.ui.inverted.labels a.olive.label:hover,a.ui.ui.ui.inverted.olive.label:hover{background-color:#d2e745;border-color:#d2e745;color:#1b1c1d}.ui.ui.ui.inverted.olive.ribbon.label{border-color:#cddf4d}.ui.inverted.basic.labels .olive.label,.ui.ui.ui.inverted.basic.olive.label{background-color:#1b1c1d;border-color:#d9e778;color:#d9e778}.ui.inverted.basic.labels a.olive.label:hover,a.ui.ui.ui.inverted.basic.olive.label:hover{border-color:#d2e745;background-color:#1b1c1d;color:#d2e745}.ui.inverted.basic.tag.labels .olive.label,.ui.ui.ui.inverted.olive.basic.tag.label{border:1px solid #d9e778}.ui.inverted.basic.tag.labels .olive.label:before,.ui.ui.ui.inverted.olive.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.green.labels .label,.ui.ui.ui.green.label{background-color:#21ba45;border-color:#21ba45;color:#fff}.ui.green.labels a.label:hover,a.ui.ui.ui.green.label:hover{background-color:#16ab39;border-color:#16ab39;color:#fff}.ui.ui.ui.green.ribbon.label{border-color:#198f35}.ui.basic.labels .green.label,.ui.ui.ui.basic.green.label{background:none #fff;border-color:#21ba45;color:#21ba45}.ui.basic.labels a.green.label:hover,a.ui.ui.ui.basic.green.label:hover{background:none #fff;border-color:#16ab39;color:#16ab39}.ui.inverted.labels .green.label,.ui.ui.ui.inverted.green.label{background-color:#2ecc40;border-color:#2ecc40;color:#1b1c1d}.ui.inverted.labels a.green.label:hover,a.ui.ui.ui.inverted.green.label:hover{background-color:#1ea92e;border-color:#1ea92e;color:#1b1c1d}.ui.ui.ui.inverted.green.ribbon.label{border-color:#25a233}.ui.inverted.basic.labels .green.label,.ui.ui.ui.inverted.basic.green.label{background-color:#1b1c1d;border-color:#2ecc40;color:#2ecc40}.ui.inverted.basic.labels a.green.label:hover,a.ui.ui.ui.inverted.basic.green.label:hover{border-color:#1ea92e;background-color:#1b1c1d;color:#1ea92e}.ui.inverted.basic.tag.labels .green.label,.ui.ui.ui.inverted.green.basic.tag.label{border:1px solid #2ecc40}.ui.inverted.basic.tag.labels .green.label:before,.ui.ui.ui.inverted.green.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.teal.labels .label,.ui.ui.ui.teal.label{background-color:#00b5ad;border-color:#00b5ad;color:#fff}.ui.teal.labels a.label:hover,a.ui.ui.ui.teal.label:hover{background-color:#009c95;border-color:#009c95;color:#fff}.ui.ui.ui.teal.ribbon.label{border-color:#00827c}.ui.basic.labels .teal.label,.ui.ui.ui.basic.teal.label{background:none #fff;border-color:#00b5ad;color:#00b5ad}.ui.basic.labels a.teal.label:hover,a.ui.ui.ui.basic.teal.label:hover{background:none #fff;border-color:#009c95;color:#009c95}.ui.inverted.labels .teal.label,.ui.ui.ui.inverted.teal.label{background-color:#6dffff;border-color:#6dffff;color:#1b1c1d}.ui.inverted.labels a.teal.label:hover,a.ui.ui.ui.inverted.teal.label:hover{background-color:#3affff;border-color:#3affff;color:#1b1c1d}.ui.ui.ui.inverted.teal.ribbon.label{border-color:#3affff}.ui.inverted.basic.labels .teal.label,.ui.ui.ui.inverted.basic.teal.label{background-color:#1b1c1d;border-color:#6dffff;color:#6dffff}.ui.inverted.basic.labels a.teal.label:hover,a.ui.ui.ui.inverted.basic.teal.label:hover{border-color:#3affff;background-color:#1b1c1d;color:#3affff}.ui.inverted.basic.tag.labels .teal.label,.ui.ui.ui.inverted.teal.basic.tag.label{border:1px solid #6dffff}.ui.inverted.basic.tag.labels .teal.label:before,.ui.ui.ui.inverted.teal.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.blue.labels .label,.ui.ui.ui.blue.label{background-color:#2185d0;border-color:#2185d0;color:#fff}.ui.blue.labels a.label:hover,a.ui.ui.ui.blue.label:hover{background-color:#1678c2;border-color:#1678c2;color:#fff}.ui.ui.ui.blue.ribbon.label{border-color:#1a69a4}.ui.basic.labels .blue.label,.ui.ui.ui.basic.blue.label{background:none #fff;border-color:#2185d0;color:#2185d0}.ui.basic.labels a.blue.label:hover,a.ui.ui.ui.basic.blue.label:hover{background:none #fff;border-color:#1678c2;color:#1678c2}.ui.inverted.labels .blue.label,.ui.ui.ui.inverted.blue.label{background-color:#54c8ff;border-color:#54c8ff;color:#1b1c1d}.ui.inverted.labels a.blue.label:hover,a.ui.ui.ui.inverted.blue.label:hover{background-color:#21b8ff;border-color:#21b8ff;color:#1b1c1d}.ui.ui.ui.inverted.blue.ribbon.label{border-color:#21b8ff}.ui.inverted.basic.labels .blue.label,.ui.ui.ui.inverted.basic.blue.label{background-color:#1b1c1d;border-color:#54c8ff;color:#54c8ff}.ui.inverted.basic.labels a.blue.label:hover,a.ui.ui.ui.inverted.basic.blue.label:hover{border-color:#21b8ff;background-color:#1b1c1d;color:#21b8ff}.ui.inverted.basic.tag.labels .blue.label,.ui.ui.ui.inverted.blue.basic.tag.label{border:1px solid #54c8ff}.ui.inverted.basic.tag.labels .blue.label:before,.ui.ui.ui.inverted.blue.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.ui.ui.violet.label,.ui.violet.labels .label{background-color:#6435c9;border-color:#6435c9;color:#fff}.ui.violet.labels a.label:hover,a.ui.ui.ui.violet.label:hover{background-color:#5829bb;border-color:#5829bb;color:#fff}.ui.ui.ui.violet.ribbon.label{border-color:#502aa1}.ui.basic.labels .violet.label,.ui.ui.ui.basic.violet.label{background:none #fff;border-color:#6435c9;color:#6435c9}.ui.basic.labels a.violet.label:hover,a.ui.ui.ui.basic.violet.label:hover{background:none #fff;border-color:#5829bb;color:#5829bb}.ui.inverted.labels .violet.label,.ui.ui.ui.inverted.violet.label{background-color:#a291fb;border-color:#a291fb;color:#1b1c1d}.ui.inverted.labels a.violet.label:hover,a.ui.ui.ui.inverted.violet.label:hover{background-color:#745aff;border-color:#745aff;color:#1b1c1d}.ui.ui.ui.inverted.violet.ribbon.label{border-color:#7860f9}.ui.inverted.basic.labels .violet.label,.ui.ui.ui.inverted.basic.violet.label{background-color:#1b1c1d;border-color:#a291fb;color:#a291fb}.ui.inverted.basic.labels a.violet.label:hover,a.ui.ui.ui.inverted.basic.violet.label:hover{border-color:#745aff;background-color:#1b1c1d;color:#745aff}.ui.inverted.basic.tag.labels .violet.label,.ui.ui.ui.inverted.violet.basic.tag.label{border:1px solid #a291fb}.ui.inverted.basic.tag.labels .violet.label:before,.ui.ui.ui.inverted.violet.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.purple.labels .label,.ui.ui.ui.purple.label{background-color:#a333c8;border-color:#a333c8;color:#fff}.ui.purple.labels a.label:hover,a.ui.ui.ui.purple.label:hover{background-color:#9627ba;border-color:#9627ba;color:#fff}.ui.ui.ui.purple.ribbon.label{border-color:#82299f}.ui.basic.labels .purple.label,.ui.ui.ui.basic.purple.label{background:none #fff;border-color:#a333c8;color:#a333c8}.ui.basic.labels a.purple.label:hover,a.ui.ui.ui.basic.purple.label:hover{background:none #fff;border-color:#9627ba;color:#9627ba}.ui.inverted.labels .purple.label,.ui.ui.ui.inverted.purple.label{background-color:#dc73ff;border-color:#dc73ff;color:#1b1c1d}.ui.inverted.labels a.purple.label:hover,a.ui.ui.ui.inverted.purple.label:hover{background-color:#cf40ff;border-color:#cf40ff;color:#1b1c1d}.ui.ui.ui.inverted.purple.ribbon.label{border-color:#cf40ff}.ui.inverted.basic.labels .purple.label,.ui.ui.ui.inverted.basic.purple.label{background-color:#1b1c1d;border-color:#dc73ff;color:#dc73ff}.ui.inverted.basic.labels a.purple.label:hover,a.ui.ui.ui.inverted.basic.purple.label:hover{border-color:#cf40ff;background-color:#1b1c1d;color:#cf40ff}.ui.inverted.basic.tag.labels .purple.label,.ui.ui.ui.inverted.purple.basic.tag.label{border:1px solid #dc73ff}.ui.inverted.basic.tag.labels .purple.label:before,.ui.ui.ui.inverted.purple.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.pink.labels .label,.ui.ui.ui.pink.label{background-color:#e03997;border-color:#e03997;color:#fff}.ui.pink.labels a.label:hover,a.ui.ui.ui.pink.label:hover{background-color:#e61a8d;border-color:#e61a8d;color:#fff}.ui.ui.ui.pink.ribbon.label{border-color:#c71f7e}.ui.basic.labels .pink.label,.ui.ui.ui.basic.pink.label{background:none #fff;border-color:#e03997;color:#e03997}.ui.basic.labels a.pink.label:hover,a.ui.ui.ui.basic.pink.label:hover{background:none #fff;border-color:#e61a8d;color:#e61a8d}.ui.inverted.labels .pink.label,.ui.ui.ui.inverted.pink.label{background-color:#ff8edf;border-color:#ff8edf;color:#1b1c1d}.ui.inverted.labels a.pink.label:hover,a.ui.ui.ui.inverted.pink.label:hover{background-color:#ff5bd1;border-color:#ff5bd1;color:#1b1c1d}.ui.ui.ui.inverted.pink.ribbon.label{border-color:#ff5bd1}.ui.inverted.basic.labels .pink.label,.ui.ui.ui.inverted.basic.pink.label{background-color:#1b1c1d;border-color:#ff8edf;color:#ff8edf}.ui.inverted.basic.labels a.pink.label:hover,a.ui.ui.ui.inverted.basic.pink.label:hover{border-color:#ff5bd1;background-color:#1b1c1d;color:#ff5bd1}.ui.inverted.basic.tag.labels .pink.label,.ui.ui.ui.inverted.pink.basic.tag.label{border:1px solid #ff8edf}.ui.inverted.basic.tag.labels .pink.label:before,.ui.ui.ui.inverted.pink.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.brown.labels .label,.ui.ui.ui.brown.label{background-color:#a5673f;border-color:#a5673f;color:#fff}.ui.brown.labels a.label:hover,a.ui.ui.ui.brown.label:hover{background-color:#975b33;border-color:#975b33;color:#fff}.ui.ui.ui.brown.ribbon.label{border-color:#805031}.ui.basic.labels .brown.label,.ui.ui.ui.basic.brown.label{background:none #fff;border-color:#a5673f;color:#a5673f}.ui.basic.labels a.brown.label:hover,a.ui.ui.ui.basic.brown.label:hover{background:none #fff;border-color:#975b33;color:#975b33}.ui.inverted.labels .brown.label,.ui.ui.ui.inverted.brown.label{background-color:#d67c1c;border-color:#d67c1c;color:#1b1c1d}.ui.inverted.labels a.brown.label:hover,a.ui.ui.ui.inverted.brown.label:hover{background-color:#b0620f;border-color:#b0620f;color:#1b1c1d}.ui.ui.ui.inverted.brown.ribbon.label{border-color:#a96216}.ui.inverted.basic.labels .brown.label,.ui.ui.ui.inverted.basic.brown.label{background-color:#1b1c1d;border-color:#d67c1c;color:#d67c1c}.ui.inverted.basic.labels a.brown.label:hover,a.ui.ui.ui.inverted.basic.brown.label:hover{border-color:#b0620f;background-color:#1b1c1d;color:#b0620f}.ui.inverted.basic.tag.labels .brown.label,.ui.ui.ui.inverted.brown.basic.tag.label{border:1px solid #d67c1c}.ui.inverted.basic.tag.labels .brown.label:before,.ui.ui.ui.inverted.brown.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.grey.labels .label,.ui.ui.ui.grey.label{background-color:#767676;border-color:#767676;color:#fff}.ui.grey.labels a.label:hover,a.ui.ui.ui.grey.label:hover{background-color:#838383;border-color:#838383;color:#fff}.ui.ui.ui.grey.ribbon.label{border-color:#5d5d5d}.ui.basic.labels .grey.label,.ui.ui.ui.basic.grey.label{background:none #fff;border-color:#767676;color:#767676}.ui.basic.labels a.grey.label:hover,a.ui.ui.ui.basic.grey.label:hover{background:none #fff;border-color:#838383;color:#838383}.ui.inverted.labels .grey.label,.ui.ui.ui.inverted.grey.label{background-color:#dcddde;border-color:#dcddde;color:#1b1c1d}.ui.inverted.labels a.grey.label:hover,a.ui.ui.ui.inverted.grey.label:hover{background-color:#c2c4c5;border-color:#c2c4c5;color:#fff}.ui.ui.ui.inverted.grey.ribbon.label{border-color:#e9eaea}.ui.inverted.basic.labels .grey.label,.ui.ui.ui.inverted.basic.grey.label{background-color:#1b1c1d;border-color:#dcddde;color:hsla(0,0%,100%,.9)}.ui.inverted.basic.labels a.grey.label:hover,a.ui.ui.ui.inverted.basic.grey.label:hover{border-color:#c2c4c5;background-color:#1b1c1d}.ui.inverted.basic.tag.labels .grey.label,.ui.ui.ui.inverted.grey.basic.tag.label{border:1px solid #dcddde}.ui.inverted.basic.tag.labels .grey.label:before,.ui.ui.ui.inverted.grey.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.black.labels .label,.ui.ui.ui.black.label{background-color:#1b1c1d;border-color:#1b1c1d;color:#fff}.ui.black.labels a.label:hover,a.ui.ui.ui.black.label:hover{background-color:#27292a;border-color:#27292a;color:#fff}.ui.ui.ui.black.ribbon.label{border-color:#020203}.ui.basic.labels .black.label,.ui.ui.ui.basic.black.label{background:none #fff;border-color:#1b1c1d;color:#1b1c1d}.ui.basic.labels a.black.label:hover,a.ui.ui.ui.basic.black.label:hover{background:none #fff;border-color:#27292a;color:#27292a}.ui.inverted.labels .black.label,.ui.ui.ui.inverted.black.label{background-color:#545454;border-color:#545454;color:#1b1c1d}.ui.inverted.labels a.black.label:hover,a.ui.ui.ui.inverted.black.label:hover{background-color:#000;border-color:#000;color:#fff}.ui.ui.ui.inverted.black.ribbon.label{border-color:#616161}.ui.inverted.basic.labels .black.label,.ui.ui.ui.inverted.basic.black.label{background-color:#1b1c1d;border-color:#545454;color:hsla(0,0%,100%,.9)}.ui.inverted.basic.labels a.black.label:hover,a.ui.ui.ui.inverted.basic.black.label:hover{border-color:#000;background-color:#1b1c1d}.ui.inverted.basic.tag.labels .black.label,.ui.ui.ui.inverted.black.basic.tag.label{border:1px solid #545454}.ui.inverted.basic.tag.labels .black.label:before,.ui.ui.ui.inverted.black.basic.tag.label:before{border-color:inherit;border-width:1px 0 0 1px;border-style:inherit;background-color:#1b1c1d;right:calc(100% + 1px)}.ui.horizontal.label,.ui.horizontal.labels .label{margin:0 .5em 0 0;padding:.4em .833em;min-width:3em;text-align:center}.ui.circular.label,.ui.circular.labels .label{min-width:2em;min-height:2em;padding:.5em!important;line-height:1em;text-align:center;border-radius:500rem}.ui.empty.circular.label,.ui.empty.circular.labels .label{min-width:0;min-height:0;overflow:hidden;width:.5em;height:.5em;vertical-align:baseline}.ui.pointing.label{position:relative}.ui.attached.pointing.label{position:absolute}.ui.pointing.label:before{background-color:inherit;background-image:inherit;border:0 solid;border-color:inherit;position:absolute;content:"";transform:rotate(45deg);background-image:none;z-index:2;width:.6666em;height:.6666em;transition:none}.ui.pointing.label,.ui[class*="pointing above"].label{margin-top:1em}.ui.pointing.label:before,.ui[class*="pointing above"].label:before{border-width:1px 0 0 1px;transform:translateX(-50%) translateY(-50%) rotate(45deg);top:0;left:50%}.ui[class*="bottom pointing"].label,.ui[class*="pointing below"].label{margin-top:0;margin-bottom:1em}.ui[class*="bottom pointing"].label:before,.ui[class*="pointing below"].label:before{border-width:0 1px 1px 0;top:auto;right:auto;transform:translateX(-50%) translateY(-50%) rotate(45deg);top:100%;left:50%}.ui[class*="left pointing"].label{margin-top:0;margin-left:.6666em}.ui[class*="left pointing"].label:before{border-width:0 0 1px 1px;transform:translateX(-50%) translateY(-50%) rotate(45deg);bottom:auto;right:auto;top:50%;left:0}.ui[class*="right pointing"].label{margin-top:0;margin-right:.6666em}.ui[class*="right pointing"].label:before{border-width:1px 1px 0 0;transform:translateX(50%) translateY(-50%) rotate(45deg);top:50%;right:0;bottom:auto;left:auto}.ui.basic.pointing.label:before,.ui.basic[class*="pointing above"].label:before{margin-top:-1px}.ui.basic[class*="bottom pointing"].label:before,.ui.basic[class*="pointing below"].label:before{bottom:auto;top:100%;margin-top:1px}.ui.basic[class*="left pointing"].label:before{top:50%;left:-1px}.ui.basic[class*="right pointing"].label:before{top:50%;right:-1px}.ui.floating.label{position:absolute;z-index:100;top:-1em;right:0;white-space:nowrap;transform:translateX(50%)}.ui.right.aligned.floating.label{transform:translateX(1.2em)}.ui.left.floating.label{left:0;right:auto;transform:translateX(-50%)}.ui.left.aligned.floating.label{transform:translateX(-1.2em)}.ui.bottom.floating.label{top:auto;bottom:-1em}.ui.label,.ui.labels .label{font-size:.85714286rem}.ui.mini.label,.ui.mini.labels .label{font-size:.64285714rem}.ui.tiny.label,.ui.tiny.labels .label{font-size:.71428571rem}.ui.small.label,.ui.small.labels .label{font-size:.78571429rem}.ui.large.label,.ui.large.labels .label{font-size:1rem}.ui.big.label,.ui.big.labels .label{font-size:1.28571429rem}.ui.huge.label,.ui.huge.labels .label{font-size:1.42857143rem}.ui.massive.label,.ui.massive.labels .label{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - List
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.list,ol.ui.list,ul.ui.list{list-style-type:none;margin:1em 0;padding:0}.ui.list:first-child,ol.ui.list:first-child,ul.ui.list:first-child{margin-top:0;padding-top:0}.ui.list:last-child,ol.ui.list:last-child,ul.ui.list:last-child{margin-bottom:0;padding-bottom:0}.ui.list .list>.item,.ui.list>.item,ol.ui.list li,ul.ui.list li{display:list-item;table-layout:fixed;list-style-type:none;list-style-position:outside;padding:.21428571em 0;line-height:1.14285714em}.ui.list>.item:after,.ui.list>.list>.item:after,ol.ui.list>li:first-child:after,ul.ui.list>li:first-child:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.list .list>.item:first-child,.ui.list>.item:first-child,ol.ui.list li:first-child,ul.ui.list li:first-child{padding-top:0}.ui.list .list>.item:last-child,.ui.list>.item:last-child,ol.ui.list li:last-child,ul.ui.list li:last-child{padding-bottom:0}.ui.list .list:not(.icon),ol.ui.list ol,ul.ui.list ul{clear:both;margin:0;padding:.75em 0 .25em .5em}.ui.list .list>.item,ol.ui.list ol li,ul.ui.list ul li{padding:.14285714em 0;line-height:inherit}.ui.list .list>.item>i.icon,.ui.list>.item>i.icon{display:table-cell;min-width:1.55em;margin:0;padding-top:0;transition:color .1s ease}.ui.list .list>.item>i.icon:not(.loading),.ui.list>.item>i.icon:not(.loading){padding-right:.28571429em;vertical-align:top}.ui.list .list>.item>i.icon:only-child,.ui.list>.item>i.icon:only-child{display:inline-block;min-width:auto;vertical-align:top}.ui.list .list>.item>.image,.ui.list>.item>.image{display:table-cell;background-color:transparent;margin:0;vertical-align:top}.ui.list .list>.item>.image:not(:only-child):not(img),.ui.list>.item>.image:not(:only-child):not(img){padding-right:.5em}.ui.list .list>.item>.image img,.ui.list>.item>.image img{vertical-align:top}.ui.list .list>.item>.image:only-child,.ui.list .list>.item>img.image,.ui.list>.item>.image:only-child,.ui.list>.item>img.image{display:inline-block}.ui.list .list>.item>.content,.ui.list>.item>.content{line-height:1.14285714em;color:rgba(0,0,0,.87)}.ui.list .list>.item>.image+.content,.ui.list .list>.item>i.icon+.content,.ui.list>.item>.image+.content,.ui.list>.item>i.icon+.content{display:table-cell;width:100%;padding:0 0 0 .5em;vertical-align:top}.ui.list .list>.item>i.loading.icon+.content,.ui.list>.item>i.loading.icon+.content{padding-left:.78571em}.ui.list .list>.item>img.image+.content,.ui.list>.item>img.image+.content{display:inline-block;width:auto}.ui.list .list>.item>.content>.list,.ui.list>.item>.content>.list{margin-left:0;padding-left:0}.ui.list .list>.item .header,.ui.list>.item .header{display:block;margin:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.87)}.ui.list .list>.item .description,.ui.list>.item .description{display:block;color:rgba(0,0,0,.7)}.ui.list .list>.item a,.ui.list>.item a{cursor:pointer}.ui.list .list>a.item,.ui.list>a.item{cursor:pointer;color:#4183c4}.ui.list .list>a.item:hover,.ui.list>a.item:hover{color:#1e70bf}.ui.list .list>a.item>i.icon,.ui.list .list>a.item>i.icons,.ui.list>a.item>i.icon,.ui.list>a.item>i.icons{color:rgba(0,0,0,.4)}.ui.list .list>.item a.header,.ui.list>.item a.header{cursor:pointer;color:#4183c4!important}.ui.list .list>.item>a.header:hover,.ui.list>.item>a.header:hover{color:#1e70bf!important}.ui[class*="left floated"].list{float:left}.ui[class*="right floated"].list{float:right}.ui.list .list>.item [class*="left floated"],.ui.list>.item [class*="left floated"]{float:left;margin:0 1em 0 0}.ui.list .list>.item [class*="right floated"],.ui.list>.item [class*="right floated"]{float:right;margin:0 0 0 1em}.ui.menu .ui.list .list>.item,.ui.menu .ui.list>.item{display:list-item;table-layout:fixed;background-color:transparent;list-style-type:none;list-style-position:outside;padding:.21428571em 0;line-height:1.14285714em}.ui.menu .ui.list .list>.item:before,.ui.menu .ui.list>.item:before{border:none;background:0 0}.ui.menu .ui.list .list>.item:first-child,.ui.menu .ui.list>.item:first-child{padding-top:0}.ui.menu .ui.list .list>.item:last-child,.ui.menu .ui.list>.item:last-child{padding-bottom:0}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-right:1em;font-size:1rem}.ui.horizontal.list:not(.celled)>.item:last-child{margin-right:0;padding-right:0}.ui.horizontal.list .list:not(.icon){padding-left:0;padding-bottom:0}.ui.horizontal.list .list>.item>.content,.ui.horizontal.list .list>.item>.image,.ui.horizontal.list .list>.item>i.icon,.ui.horizontal.list>.item>.content,.ui.horizontal.list>.item>.image,.ui.horizontal.list>.item>i.icon{vertical-align:middle}.ui.horizontal.list>.item:first-child,.ui.horizontal.list>.item:last-child{padding-top:.21428571em;padding-bottom:.21428571em}.ui.horizontal.list .item>i.icons>i.icon,.ui.horizontal.list>.item>i.icon{margin:0;padding:0 .25em 0 0}.ui.horizontal.list>.item>.image+.content,.ui.horizontal.list>.item>i.icon,.ui.horizontal.list>.item>i.icon+.content{float:none;display:inline-block;width:auto}.ui.horizontal.list>.item>.image{display:inline-block}.ui.list .list>.disabled.item,.ui.list>.disabled.item{pointer-events:none;color:rgba(40,40,40,.3)!important}.ui.inverted.list .list>.disabled.item,.ui.inverted.list>.disabled.item{color:hsla(0,0%,88.2%,.3)!important}.ui.list .list>a.item:hover>.icons,.ui.list .list>a.item:hover>i.icon,.ui.list>a.item:hover>.icons,.ui.list>a.item:hover>i.icon{color:rgba(0,0,0,.87)}.ui.inverted.list .list>a.item>i.icon,.ui.inverted.list>a.item>i.icon{color:hsla(0,0%,100%,.7)}.ui.inverted.list .list>.item .header,.ui.inverted.list>.item .header{color:hsla(0,0%,100%,.9)}.ui.inverted.list .list>.item .description,.ui.inverted.list .list>.item>.content,.ui.inverted.list>.item .description,.ui.inverted.list>.item>.content{color:hsla(0,0%,100%,.7)}.ui.inverted.list .list>a.item,.ui.inverted.list>a.item{cursor:pointer;color:hsla(0,0%,100%,.9)}.ui.inverted.list .list>a.item:hover,.ui.inverted.list>a.item:hover{color:#1e70bf}.ui.inverted.list .item a:not(.ui){color:hsla(0,0%,100%,.9)!important}.ui.inverted.list .item a:not(.ui):hover{color:#1e70bf!important}.ui.list [class*="top aligned"],.ui.list[class*="top aligned"] .content,.ui.list[class*="top aligned"] .image{vertical-align:top!important}.ui.list [class*="middle aligned"],.ui.list[class*="middle aligned"] .content,.ui.list[class*="middle aligned"] .image{vertical-align:middle!important}.ui.list [class*="bottom aligned"],.ui.list[class*="bottom aligned"] .content,.ui.list[class*="bottom aligned"] .image{vertical-align:bottom!important}.ui.link.list .item,.ui.link.list .item a:not(.ui),.ui.link.list a.item{color:rgba(0,0,0,.4);transition:color .1s ease}.ui.link.list.list .item a:not(.ui):hover,.ui.link.list.list a.item:hover{color:rgba(0,0,0,.8)}.ui.link.list.list .item a:not(.ui):active,.ui.link.list.list a.item:active{color:rgba(0,0,0,.9)}.ui.link.list.list .active.item,.ui.link.list.list .active.item a:not(.ui){color:rgba(0,0,0,.95)}.ui.inverted.link.list .item,.ui.inverted.link.list .item a:not(.ui),.ui.inverted.link.list a.item{color:hsla(0,0%,100%,.5)}.ui.inverted.link.list.list .active.item a:not(.ui),.ui.inverted.link.list.list .item a:not(.ui):active,.ui.inverted.link.list.list .item a:not(.ui):hover,.ui.inverted.link.list.list a.active.item,.ui.inverted.link.list.list a.item:active,.ui.inverted.link.list.list a.item:hover{color:#fff}.ui.selection.list .list>.item,.ui.selection.list>.item{cursor:pointer;background:0 0;padding:.5em;margin:0;color:rgba(0,0,0,.4);border-radius:.5em;transition:color .1s ease,padding-left .1s ease,background-color .1s ease}.ui.selection.list .list>.item:last-child,.ui.selection.list>.item:last-child{margin-bottom:0}.ui.selection.list .list>.item:hover,.ui.selection.list>.item:hover{background:rgba(0,0,0,.03);color:rgba(0,0,0,.8)}.ui.selection.list .list>.item:active,.ui.selection.list>.item:active{background:rgba(0,0,0,.05);color:rgba(0,0,0,.9)}.ui.selection.list .list>.item.active,.ui.selection.list>.item.active{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.inverted.selection.list>.item{background:0 0;color:hsla(0,0%,100%,.5)}.ui.inverted.selection.list>.item:hover{background:hsla(0,0%,100%,.02);color:#fff}.ui.inverted.selection.list>.item.active,.ui.inverted.selection.list>.item:active{background:hsla(0,0%,100%,.08);color:#fff}.ui.celled.selection.list .list>.item,.ui.celled.selection.list>.item,.ui.divided.selection.list .list>.item,.ui.divided.selection.list>.item{border-radius:0}.ui.animated.list>.item{transition:color .25s ease .1s,padding-left .25s ease .1s,background-color .25s ease .1s}.ui.animated.list:not(.horizontal)>.item:hover{padding-left:1em}.ui.fitted.list:not(.selection) .list>.item,.ui.fitted.list:not(.selection)>.item{padding-left:0;padding-right:0}.ui.fitted.selection.list .list>.item,.ui.fitted.selection.list>.item{margin-left:-.5em;margin-right:-.5em}.ui.bulleted.list,ul.ui.list{margin-left:1.25rem}.ui.bulleted.list .list>.item,.ui.bulleted.list>.item,ul.ui.list li{position:relative}.ui.bulleted.list .list>.item:before,.ui.bulleted.list>.item:before,ul.ui.list li:before{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;position:absolute;top:auto;left:auto;font-weight:400;margin-left:-1.25rem;content:"\2022";opacity:1;color:inherit;vertical-align:top}.ui.bulleted.list .list>a.item:before,.ui.bulleted.list>a.item:before,ul.ui.list li:before{color:rgba(0,0,0,.87)}.ui.bulleted.list .list:not(.icon),ul.ui.list ul{padding-left:1.25rem}.ui.horizontal.bulleted.list,ul.ui.horizontal.bulleted.list{margin-left:0}.ui.horizontal.bulleted.list>.item,ul.ui.horizontal.bulleted.list li{margin-left:1.75rem}.ui.horizontal.bulleted.list>.item:first-child,ul.ui.horizontal.bulleted.list li:first-child{margin-left:0}.ui.horizontal.bulleted.list>.item:before,ul.ui.horizontal.bulleted.list li:before{color:rgba(0,0,0,.87)}.ui.horizontal.bulleted.list>.item:first-child:before,ul.ui.horizontal.bulleted.list li:first-child:before{display:none}.ui.ordered.list,.ui.ordered.list .list:not(.icon),ol.ui.list,ol.ui.list ol{counter-reset:ordered;margin-left:1.25rem;list-style-type:none}.ui.ordered.list .list>.item,.ui.ordered.list>.item,ol.ui.list li{list-style-type:none;position:relative}.ui.ordered.list .list>.item:before,.ui.ordered.list>.item:before,ol.ui.list li:before{position:absolute;top:auto;left:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;margin-left:-1.25rem;counter-increment:ordered;content:counters(ordered,".") " ";text-align:right;color:rgba(0,0,0,.87);vertical-align:middle;opacity:.8}.ui.ordered.inverted.list .list>.item:before,.ui.ordered.inverted.list>.item:before,ol.ui.inverted.list li:before{color:hsla(0,0%,100%,.7)}.ui.ordered.list .list>.item[data-value]:before,.ui.ordered.list>.item[data-value]:before{content:attr(data-value)}ol.ui.list li[value]:before{content:attr(value)}.ui.ordered.list .list:not(.icon),ol.ui.list ol{margin-left:1em}.ui.ordered.list .list>.item:before,ol.ui.list ol li:before{margin-left:-2em}.ui.ordered.horizontal.list,ol.ui.horizontal.list{margin-left:0}.ui.ordered.horizontal.list .list>.item:before,.ui.ordered.horizontal.list>.item:before,ol.ui.horizontal.list li:before{position:static;margin:0 .5em 0 0}.ui.suffixed.ordered.list .list>.item:before,.ui.suffixed.ordered.list>.item:before,ol.ui.suffixed.list li:before{content:counters(ordered,".") "."}.ui.divided.list>.item{border-top:1px solid rgba(34,36,38,.15)}.ui.divided.list .item .list>.item,.ui.divided.list .list>.item,.ui.divided.list .list>.item:first-child,.ui.divided.list>.item:first-child{border-top:none}.ui.divided.list:not(.horizontal) .list>.item:first-child{border-top-width:1px}.ui.divided.bulleted.list .list:not(.icon),.ui.divided.bulleted.list:not(.horizontal){margin-left:0;padding-left:0}.ui.divided.bulleted.list>.item:not(.horizontal){padding-left:1.25rem}.ui.divided.ordered.list{margin-left:0}.ui.divided.ordered.list .list>.item,.ui.divided.ordered.list>.item{padding-left:1.25rem}.ui.divided.ordered.list .item .list:not(.icon){margin-left:0;margin-right:0;padding-bottom:.21428571em}.ui.divided.ordered.list .item .list>.item{padding-left:1em}.ui.divided.selection.list .list>.item,.ui.divided.selection.list>.item{margin:0;border-radius:0}.ui.divided.horizontal.list{margin-left:0}.ui.divided.horizontal.list>.item{padding-left:.5em}.ui.divided.horizontal.list>.item:not(:last-child){padding-right:.5em}.ui.divided.horizontal.list>.item{border-top:none;border-right:1px solid rgba(34,36,38,.15);margin:0;line-height:.6}.ui.horizontal.divided.list>.item:last-child{border-right:none}.ui.divided.inverted.horizontal.list>.item,.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:hsla(0,0%,100%,.1)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(34,36,38,.15);padding-left:.5em;padding-right:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(34,36,38,.15)}.ui.celled.list>.item:first-child,.ui.celled.list>.item:last-child{padding-top:.21428571em;padding-bottom:.21428571em}.ui.celled.list .item .list>.item{border-width:0}.ui.celled.list .list>.item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-left:0}.ui.celled.bulleted.list .list>.item,.ui.celled.bulleted.list>.item{padding-left:1.25rem}.ui.celled.bulleted.list .item .list:not(.icon){margin-left:-1.25rem;margin-right:-1.25rem;padding-bottom:.21428571em}.ui.celled.ordered.list{margin-left:0}.ui.celled.ordered.list .list>.item,.ui.celled.ordered.list>.item{padding-left:1.25rem}.ui.celled.ordered.list .item .list:not(.icon){margin-left:0;margin-right:0;padding-bottom:.21428571em}.ui.celled.ordered.list .list>.item{padding-left:1em}.ui.horizontal.celled.list{margin-left:0}.ui.horizontal.celled.list .list>.item,.ui.horizontal.celled.list>.item{border-top:none;border-left:1px solid rgba(34,36,38,.15);margin:0;padding-left:.5em;padding-right:.5em;line-height:.6}.ui.horizontal.celled.list .list>.item:last-child,.ui.horizontal.celled.list>.item:last-child{border-bottom:none;border-right:1px solid rgba(34,36,38,.15)}.ui.celled.inverted.horizontal.list .list>.item,.ui.celled.inverted.horizontal.list>.item,.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:hsla(0,0%,100%,.1)}.ui.relaxed.list:not(.horizontal)>.item:not(:first-child){padding-top:.42857143em}.ui.relaxed.list:not(.horizontal)>.item:not(:last-child){padding-bottom:.42857143em}.ui.horizontal.relaxed.list .list>.item:not(:first-child),.ui.horizontal.relaxed.list>.item:not(:first-child){padding-left:1rem}.ui.horizontal.relaxed.list .list>.item:not(:last-child),.ui.horizontal.relaxed.list>.item:not(:last-child){padding-right:1rem}.ui[class*="very relaxed"].list:not(.horizontal)>.item:not(:first-child){padding-top:.85714286em}.ui[class*="very relaxed"].list:not(.horizontal)>.item:not(:last-child){padding-bottom:.85714286em}.ui.horizontal[class*="very relaxed"].list .list>.item:not(:first-child),.ui.horizontal[class*="very relaxed"].list>.item:not(:first-child){padding-left:1.5rem}.ui.horizontal[class*="very relaxed"].list .list>.item:not(:last-child),.ui.horizontal[class*="very relaxed"].list>.item:not(:last-child){padding-right:1.5rem}.ui.list{font-size:1em}.ui.mini.list{font-size:.78571429em}.ui.mini.horizontal.list .list>.item,.ui.mini.horizontal.list>.item{font-size:.78571429rem}.ui.tiny.list{font-size:.85714286em}.ui.tiny.horizontal.list .list>.item,.ui.tiny.horizontal.list>.item{font-size:.85714286rem}.ui.small.list{font-size:.92857143em}.ui.small.horizontal.list .list>.item,.ui.small.horizontal.list>.item{font-size:.92857143rem}.ui.large.list{font-size:1.14285714em}.ui.large.horizontal.list .list>.item,.ui.large.horizontal.list>.item{font-size:1.14285714rem}.ui.big.list{font-size:1.28571429em}.ui.big.horizontal.list .list>.item,.ui.big.horizontal.list>.item{font-size:1.28571429rem}.ui.huge.list{font-size:1.42857143em}.ui.huge.horizontal.list .list>.item,.ui.huge.horizontal.list>.item{font-size:1.42857143rem}.ui.massive.list{font-size:1.71428571em}.ui.massive.horizontal.list .list>.item,.ui.massive.horizontal.list>.item{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Loader
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;transform:translateX(-50%) translateY(-50%)}.ui.loader:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after,.ui.loader:before{position:absolute;content:"";top:0;left:50%;width:100%;height:100%}.ui.loader:after{-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent}.ui.fast.loader:after,.ui.fast.loading.loading .input>i.icon:after,.ui.fast.loading.loading:after,.ui.fast.loading.loading>i.icon:after{-webkit-animation-duration:.3s;animation-duration:.3s}.ui.slow.loader:after,.ui.slow.loading.loading .input>i.icon:after,.ui.slow.loading.loading:after,.ui.slow.loading.loading>i.icon:after{-webkit-animation-duration:.9s;animation-duration:.9s}@-webkit-keyframes loader{to{transform:rotate(1turn)}}@keyframes loader{to{transform:rotate(1turn)}}.ui.dimmer>.loader{display:block}.ui.dimmer>.ui.loader{color:hsla(0,0%,100%,.9)}.ui.dimmer>.ui.loader:not(.elastic):before{border-color:hsla(0,0%,100%,.15)}.ui.inverted.dimmer>.ui.loader{color:rgba(0,0,0,.87)}.ui.inverted.dimmer>.ui.loader:not(.elastic):before{border-color:rgba(0,0,0,.1)}.ui.ui.ui.ui.text.loader{width:auto;height:auto;text-align:center;font-style:normal}.ui.indeterminate.loader:after{animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.loader{width:2.28571429rem;height:2.28571429rem;font-size:1em}.ui.loader:after,.ui.loader:before{width:2.28571429rem;height:2.28571429rem;margin:0 0 0 -1.14285714rem}.ui.text.loader{min-width:2.28571429rem;padding-top:3.07142857rem}.ui.mini.loader{width:1rem;height:1rem;font-size:.78571429em}.ui.mini.loader:after,.ui.mini.loader:before{width:1rem;height:1rem;margin:0 0 0 -.5rem}.ui.mini.text.loader{min-width:1rem;padding-top:1.78571429rem}.ui.tiny.loader{width:1.14285714rem;height:1.14285714rem;font-size:.85714286em}.ui.tiny.loader:after,.ui.tiny.loader:before{width:1.14285714rem;height:1.14285714rem;margin:0 0 0 -.57142857rem}.ui.tiny.text.loader{min-width:1.14285714rem;padding-top:1.92857143rem}.ui.small.loader{width:1.71428571rem;height:1.71428571rem;font-size:.92857143em}.ui.small.loader:after,.ui.small.loader:before{width:1.71428571rem;height:1.71428571rem;margin:0 0 0 -.85714286rem}.ui.small.text.loader{min-width:1.71428571rem;padding-top:2.5rem}.ui.large.loader{width:3.42857143rem;height:3.42857143rem;font-size:1.14285714em}.ui.large.loader:after,.ui.large.loader:before{width:3.42857143rem;height:3.42857143rem;margin:0 0 0 -1.71428571rem}.ui.large.text.loader{min-width:3.42857143rem;padding-top:4.21428571rem}.ui.big.loader{width:3.71428571rem;height:3.71428571rem;font-size:1.28571429em}.ui.big.loader:after,.ui.big.loader:before{width:3.71428571rem;height:3.71428571rem;margin:0 0 0 -1.85714286rem}.ui.big.text.loader{min-width:3.71428571rem;padding-top:4.5rem}.ui.huge.loader{width:4.14285714rem;height:4.14285714rem;font-size:1.42857143em}.ui.huge.loader:after,.ui.huge.loader:before{width:4.14285714rem;height:4.14285714rem;margin:0 0 0 -2.07142857rem}.ui.huge.text.loader{min-width:4.14285714rem;padding-top:4.92857143rem}.ui.massive.loader{width:4.57142857rem;height:4.57142857rem;font-size:1.71428571em}.ui.massive.loader:after,.ui.massive.loader:before{width:4.57142857rem;height:4.57142857rem;margin:0 0 0 -2.28571429rem}.ui.massive.text.loader{min-width:4.57142857rem;padding-top:5.35714286rem}.ui.primary.basic.elastic.loading.button:after,.ui.primary.basic.elastic.loading.button:before,.ui.primary.elastic.loader.loader:before,.ui.primary.elastic.loading.loading.loading .input>i.icon:before,.ui.primary.elastic.loading.loading.loading.loading>i.icon:before,.ui.primary.elastic.loading.loading.loading:not(.segment):before,.ui.primary.loader.loader.loader:after,.ui.primary.loading.loading.loading.loading .input>i.icon:after,.ui.primary.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.primary.loading.loading.loading.loading>i.icon:after{color:#2185d0}.ui.inverted.primary.elastic.loader:before,.ui.inverted.primary.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.primary.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.primary.elastic.loading.loading.loading>i.icon:before,.ui.inverted.primary.loader.loader.loader:after,.ui.inverted.primary.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.primary.loading.loading.loading.loading:not(.usual):after,.ui.inverted.primary.loading.loading.loading.loading>i.icon:after{color:#54c8ff}.ui.secondary.basic.elastic.loading.button:after,.ui.secondary.basic.elastic.loading.button:before,.ui.secondary.elastic.loader.loader:before,.ui.secondary.elastic.loading.loading.loading .input>i.icon:before,.ui.secondary.elastic.loading.loading.loading.loading>i.icon:before,.ui.secondary.elastic.loading.loading.loading:not(.segment):before,.ui.secondary.loader.loader.loader:after,.ui.secondary.loading.loading.loading.loading .input>i.icon:after,.ui.secondary.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.secondary.loading.loading.loading.loading>i.icon:after{color:#1b1c1d}.ui.inverted.secondary.elastic.loader:before,.ui.inverted.secondary.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.secondary.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.secondary.elastic.loading.loading.loading>i.icon:before,.ui.inverted.secondary.loader.loader.loader:after,.ui.inverted.secondary.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.secondary.loading.loading.loading.loading:not(.usual):after,.ui.inverted.secondary.loading.loading.loading.loading>i.icon:after{color:#545454}.ui.red.basic.elastic.loading.button:after,.ui.red.basic.elastic.loading.button:before,.ui.red.elastic.loader.loader:before,.ui.red.elastic.loading.loading.loading .input>i.icon:before,.ui.red.elastic.loading.loading.loading.loading>i.icon:before,.ui.red.elastic.loading.loading.loading:not(.segment):before,.ui.red.loader.loader.loader:after,.ui.red.loading.loading.loading.loading .input>i.icon:after,.ui.red.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.red.loading.loading.loading.loading>i.icon:after{color:#db2828}.ui.inverted.red.elastic.loader:before,.ui.inverted.red.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.red.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.red.elastic.loading.loading.loading>i.icon:before,.ui.inverted.red.loader.loader.loader:after,.ui.inverted.red.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.red.loading.loading.loading.loading:not(.usual):after,.ui.inverted.red.loading.loading.loading.loading>i.icon:after{color:#ff695e}.ui.orange.basic.elastic.loading.button:after,.ui.orange.basic.elastic.loading.button:before,.ui.orange.elastic.loader.loader:before,.ui.orange.elastic.loading.loading.loading .input>i.icon:before,.ui.orange.elastic.loading.loading.loading.loading>i.icon:before,.ui.orange.elastic.loading.loading.loading:not(.segment):before,.ui.orange.loader.loader.loader:after,.ui.orange.loading.loading.loading.loading .input>i.icon:after,.ui.orange.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.orange.loading.loading.loading.loading>i.icon:after{color:#f2711c}.ui.inverted.orange.elastic.loader:before,.ui.inverted.orange.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.orange.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.orange.elastic.loading.loading.loading>i.icon:before,.ui.inverted.orange.loader.loader.loader:after,.ui.inverted.orange.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.orange.loading.loading.loading.loading:not(.usual):after,.ui.inverted.orange.loading.loading.loading.loading>i.icon:after{color:#ff851b}.ui.yellow.basic.elastic.loading.button:after,.ui.yellow.basic.elastic.loading.button:before,.ui.yellow.elastic.loader.loader:before,.ui.yellow.elastic.loading.loading.loading .input>i.icon:before,.ui.yellow.elastic.loading.loading.loading.loading>i.icon:before,.ui.yellow.elastic.loading.loading.loading:not(.segment):before,.ui.yellow.loader.loader.loader:after,.ui.yellow.loading.loading.loading.loading .input>i.icon:after,.ui.yellow.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.yellow.loading.loading.loading.loading>i.icon:after{color:#fbbd08}.ui.inverted.yellow.elastic.loader:before,.ui.inverted.yellow.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.yellow.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.yellow.elastic.loading.loading.loading>i.icon:before,.ui.inverted.yellow.loader.loader.loader:after,.ui.inverted.yellow.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.yellow.loading.loading.loading.loading:not(.usual):after,.ui.inverted.yellow.loading.loading.loading.loading>i.icon:after{color:#ffe21f}.ui.olive.basic.elastic.loading.button:after,.ui.olive.basic.elastic.loading.button:before,.ui.olive.elastic.loader.loader:before,.ui.olive.elastic.loading.loading.loading .input>i.icon:before,.ui.olive.elastic.loading.loading.loading.loading>i.icon:before,.ui.olive.elastic.loading.loading.loading:not(.segment):before,.ui.olive.loader.loader.loader:after,.ui.olive.loading.loading.loading.loading .input>i.icon:after,.ui.olive.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.olive.loading.loading.loading.loading>i.icon:after{color:#b5cc18}.ui.inverted.olive.elastic.loader:before,.ui.inverted.olive.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.olive.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.olive.elastic.loading.loading.loading>i.icon:before,.ui.inverted.olive.loader.loader.loader:after,.ui.inverted.olive.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.olive.loading.loading.loading.loading:not(.usual):after,.ui.inverted.olive.loading.loading.loading.loading>i.icon:after{color:#d9e778}.ui.green.basic.elastic.loading.button:after,.ui.green.basic.elastic.loading.button:before,.ui.green.elastic.loader.loader:before,.ui.green.elastic.loading.loading.loading .input>i.icon:before,.ui.green.elastic.loading.loading.loading.loading>i.icon:before,.ui.green.elastic.loading.loading.loading:not(.segment):before,.ui.green.loader.loader.loader:after,.ui.green.loading.loading.loading.loading .input>i.icon:after,.ui.green.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.green.loading.loading.loading.loading>i.icon:after{color:#21ba45}.ui.inverted.green.elastic.loader:before,.ui.inverted.green.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.green.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.green.elastic.loading.loading.loading>i.icon:before,.ui.inverted.green.loader.loader.loader:after,.ui.inverted.green.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.green.loading.loading.loading.loading:not(.usual):after,.ui.inverted.green.loading.loading.loading.loading>i.icon:after{color:#2ecc40}.ui.teal.basic.elastic.loading.button:after,.ui.teal.basic.elastic.loading.button:before,.ui.teal.elastic.loader.loader:before,.ui.teal.elastic.loading.loading.loading .input>i.icon:before,.ui.teal.elastic.loading.loading.loading.loading>i.icon:before,.ui.teal.elastic.loading.loading.loading:not(.segment):before,.ui.teal.loader.loader.loader:after,.ui.teal.loading.loading.loading.loading .input>i.icon:after,.ui.teal.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.teal.loading.loading.loading.loading>i.icon:after{color:#00b5ad}.ui.inverted.teal.elastic.loader:before,.ui.inverted.teal.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.teal.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.teal.elastic.loading.loading.loading>i.icon:before,.ui.inverted.teal.loader.loader.loader:after,.ui.inverted.teal.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.teal.loading.loading.loading.loading:not(.usual):after,.ui.inverted.teal.loading.loading.loading.loading>i.icon:after{color:#6dffff}.ui.blue.basic.elastic.loading.button:after,.ui.blue.basic.elastic.loading.button:before,.ui.blue.elastic.loader.loader:before,.ui.blue.elastic.loading.loading.loading .input>i.icon:before,.ui.blue.elastic.loading.loading.loading.loading>i.icon:before,.ui.blue.elastic.loading.loading.loading:not(.segment):before,.ui.blue.loader.loader.loader:after,.ui.blue.loading.loading.loading.loading .input>i.icon:after,.ui.blue.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.blue.loading.loading.loading.loading>i.icon:after{color:#2185d0}.ui.inverted.blue.elastic.loader:before,.ui.inverted.blue.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.blue.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.blue.elastic.loading.loading.loading>i.icon:before,.ui.inverted.blue.loader.loader.loader:after,.ui.inverted.blue.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.blue.loading.loading.loading.loading:not(.usual):after,.ui.inverted.blue.loading.loading.loading.loading>i.icon:after{color:#54c8ff}.ui.violet.basic.elastic.loading.button:after,.ui.violet.basic.elastic.loading.button:before,.ui.violet.elastic.loader.loader:before,.ui.violet.elastic.loading.loading.loading .input>i.icon:before,.ui.violet.elastic.loading.loading.loading.loading>i.icon:before,.ui.violet.elastic.loading.loading.loading:not(.segment):before,.ui.violet.loader.loader.loader:after,.ui.violet.loading.loading.loading.loading .input>i.icon:after,.ui.violet.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.violet.loading.loading.loading.loading>i.icon:after{color:#6435c9}.ui.inverted.violet.elastic.loader:before,.ui.inverted.violet.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.violet.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.violet.elastic.loading.loading.loading>i.icon:before,.ui.inverted.violet.loader.loader.loader:after,.ui.inverted.violet.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.violet.loading.loading.loading.loading:not(.usual):after,.ui.inverted.violet.loading.loading.loading.loading>i.icon:after{color:#a291fb}.ui.purple.basic.elastic.loading.button:after,.ui.purple.basic.elastic.loading.button:before,.ui.purple.elastic.loader.loader:before,.ui.purple.elastic.loading.loading.loading .input>i.icon:before,.ui.purple.elastic.loading.loading.loading.loading>i.icon:before,.ui.purple.elastic.loading.loading.loading:not(.segment):before,.ui.purple.loader.loader.loader:after,.ui.purple.loading.loading.loading.loading .input>i.icon:after,.ui.purple.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.purple.loading.loading.loading.loading>i.icon:after{color:#a333c8}.ui.inverted.purple.elastic.loader:before,.ui.inverted.purple.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.purple.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.purple.elastic.loading.loading.loading>i.icon:before,.ui.inverted.purple.loader.loader.loader:after,.ui.inverted.purple.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.purple.loading.loading.loading.loading:not(.usual):after,.ui.inverted.purple.loading.loading.loading.loading>i.icon:after{color:#dc73ff}.ui.pink.basic.elastic.loading.button:after,.ui.pink.basic.elastic.loading.button:before,.ui.pink.elastic.loader.loader:before,.ui.pink.elastic.loading.loading.loading .input>i.icon:before,.ui.pink.elastic.loading.loading.loading.loading>i.icon:before,.ui.pink.elastic.loading.loading.loading:not(.segment):before,.ui.pink.loader.loader.loader:after,.ui.pink.loading.loading.loading.loading .input>i.icon:after,.ui.pink.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.pink.loading.loading.loading.loading>i.icon:after{color:#e03997}.ui.inverted.pink.elastic.loader:before,.ui.inverted.pink.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.pink.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.pink.elastic.loading.loading.loading>i.icon:before,.ui.inverted.pink.loader.loader.loader:after,.ui.inverted.pink.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.pink.loading.loading.loading.loading:not(.usual):after,.ui.inverted.pink.loading.loading.loading.loading>i.icon:after{color:#ff8edf}.ui.brown.basic.elastic.loading.button:after,.ui.brown.basic.elastic.loading.button:before,.ui.brown.elastic.loader.loader:before,.ui.brown.elastic.loading.loading.loading .input>i.icon:before,.ui.brown.elastic.loading.loading.loading.loading>i.icon:before,.ui.brown.elastic.loading.loading.loading:not(.segment):before,.ui.brown.loader.loader.loader:after,.ui.brown.loading.loading.loading.loading .input>i.icon:after,.ui.brown.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.brown.loading.loading.loading.loading>i.icon:after{color:#a5673f}.ui.inverted.brown.elastic.loader:before,.ui.inverted.brown.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.brown.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.brown.elastic.loading.loading.loading>i.icon:before,.ui.inverted.brown.loader.loader.loader:after,.ui.inverted.brown.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.brown.loading.loading.loading.loading:not(.usual):after,.ui.inverted.brown.loading.loading.loading.loading>i.icon:after{color:#d67c1c}.ui.grey.basic.elastic.loading.button:after,.ui.grey.basic.elastic.loading.button:before,.ui.grey.elastic.loader.loader:before,.ui.grey.elastic.loading.loading.loading .input>i.icon:before,.ui.grey.elastic.loading.loading.loading.loading>i.icon:before,.ui.grey.elastic.loading.loading.loading:not(.segment):before,.ui.grey.loader.loader.loader:after,.ui.grey.loading.loading.loading.loading .input>i.icon:after,.ui.grey.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.grey.loading.loading.loading.loading>i.icon:after{color:#767676}.ui.inverted.grey.elastic.loader:before,.ui.inverted.grey.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.grey.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.grey.elastic.loading.loading.loading>i.icon:before,.ui.inverted.grey.loader.loader.loader:after,.ui.inverted.grey.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.grey.loading.loading.loading.loading:not(.usual):after,.ui.inverted.grey.loading.loading.loading.loading>i.icon:after{color:#dcddde}.ui.black.basic.elastic.loading.button:after,.ui.black.basic.elastic.loading.button:before,.ui.black.elastic.loader.loader:before,.ui.black.elastic.loading.loading.loading .input>i.icon:before,.ui.black.elastic.loading.loading.loading.loading>i.icon:before,.ui.black.elastic.loading.loading.loading:not(.segment):before,.ui.black.loader.loader.loader:after,.ui.black.loading.loading.loading.loading .input>i.icon:after,.ui.black.loading.loading.loading.loading:not(.usual):not(.button):after,.ui.black.loading.loading.loading.loading>i.icon:after{color:#1b1c1d}.ui.inverted.black.elastic.loader:before,.ui.inverted.black.elastic.loading.loading.loading .input>i.icon:before,.ui.inverted.black.elastic.loading.loading.loading:not(.segment):before,.ui.inverted.black.elastic.loading.loading.loading>i.icon:before,.ui.inverted.black.loader.loader.loader:after,.ui.inverted.black.loading.loading.loading.loading .input>i.icon:after,.ui.inverted.black.loading.loading.loading.loading:not(.usual):after,.ui.inverted.black.loading.loading.loading.loading>i.icon:after{color:#545454}.ui.elastic.loader.loader:before,.ui.elastic.loading.loading.loading .input>i.icon:before,.ui.elastic.loading.loading.loading:before,.ui.elastic.loading.loading.loading>i.icon:before,.ui.loader.loader.loader:after,.ui.loading.loading.loading.loading .input>i.icon:after,.ui.loading.loading.loading.loading:not(.usual):after,.ui.loading.loading.loading.loading>i.icon:after{border-color:currentColor}.ui.elastic.loading.loading.loading.loading.button:not(.inverted):not(.basic):before{color:#fff}.ui.elastic.basic.loading.button:after,.ui.elastic.basic.loading.button:before{color:#767676}.ui.double.loading.loading.loading.loading.button:after{border-bottom-color:currentColor}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.centered.inline.loader.active,.ui.centered.inline.loader.visible{display:block;margin-left:auto;margin-right:auto}.ui.loader.loader.loader.loader.loader:after,.ui.loading.loading.loading.loading.loading.loading .input>i.icon:after,.ui.loading.loading.loading.loading.loading.loading:after,.ui.loading.loading.loading.loading.loading.loading>i.icon:after{border-left-color:transparent;border-right-color:transparent}.ui.loader.loader.loader.loader.loader.loader:not(.double):after,.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) .input>i.icon:after,.ui.loading.loading.loading.loading.loading.loading.loading:not(.double):after,.ui.loading.loading.loading.loading.loading.loading.loading:not(.double)>i.icon:after{border-bottom-color:transparent}.ui.loading.loading.loading.loading.loading.loading.form:after,.ui.loading.loading.loading.loading.loading.loading.segment:after{border-left-color:rgba(0,0,0,.1);border-right-color:rgba(0,0,0,.1)}.ui.loading.loading.loading.loading.loading.loading.form:not(.double):after,.ui.loading.loading.loading.loading.loading.loading.segment:not(.double):after{border-bottom-color:rgba(0,0,0,.1)}.ui.dimmer>.ui.elastic.loader{color:#fff}.ui.inverted.dimmer>.ui.elastic.loader{color:#767676}.ui.elastic.loader.loader:after,.ui.elastic.loading.loading .input>i.icon:after,.ui.elastic.loading.loading:not(.form):not(.segment):after,.ui.elastic.loading.loading>i.icon:after{-webkit-animation:loader 1s cubic-bezier(.27,1.05,.92,.61) infinite;animation:loader 1s cubic-bezier(.27,1.05,.92,.61) infinite;-webkit-animation-delay:.3s;animation-delay:.3s}.ui.elastic.loader.loader:before,.ui.elastic.loading.loading.loading .input>i.icon:before,.ui.elastic.loading.loading.loading:not(.form):not(.segment):before,.ui.elastic.loading.loading.loading>i.icon:before{-webkit-animation:elastic-loader 1s cubic-bezier(.27,1.05,.92,.61) infinite;animation:elastic-loader 1s cubic-bezier(.27,1.05,.92,.61) infinite;-moz-animation:currentcolor-elastic-loader 1s infinite cubic-bezier(.27,1.05,.92,.61);border-right-color:transparent}.ui.elastic.inline.loader:empty{-webkit-animation:loader 8s linear infinite;animation:loader 8s linear infinite}.ui.slow.elastic.loader.loader:after,.ui.slow.elastic.loading.loading .input>i.icon:after,.ui.slow.elastic.loading.loading:not(.form):not(.segment):after,.ui.slow.elastic.loading.loading>i.icon:after{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-delay:.45s;animation-delay:.45s}.ui.slow.elastic.loader.loader:before,.ui.slow.elastic.loading.loading.loading .input>i.icon:before,.ui.slow.elastic.loading.loading.loading:not(.form):not(.segment):before,.ui.slow.elastic.loading.loading.loading>i.icon:before{-webkit-animation-duration:1.5s;animation-duration:1.5s}.ui.fast.elastic.loader.loader:after,.ui.fast.elastic.loading.loading .input>i.icon:after,.ui.fast.elastic.loading.loading:not(.form):not(.segment):after,.ui.fast.elastic.loading.loading>i.icon:after{-webkit-animation-duration:.66s;animation-duration:.66s;-webkit-animation-delay:.2s;animation-delay:.2s}.ui.fast.elastic.loader.loader:before,.ui.fast.elastic.loading.loading.loading .input>i.icon:before,.ui.fast.elastic.loading.loading.loading:not(.form):not(.segment):before,.ui.fast.elastic.loading.loading.loading>i.icon:before{-webkit-animation-duration:.66s;animation-duration:.66s}@-webkit-keyframes elastic-loader{0%,1%{border-left-color:transparent;border-bottom-color:transparent}1.1%,50%{border-left-color:inherit}10%,35.1%{border-bottom-color:transparent}10.1%,35%{border-bottom-color:inherit}50.1%{border-left-color:transparent}to{border-left-color:transparent;border-bottom-color:transparent;transform:rotate(1turn)}}@keyframes elastic-loader{0%,1%{border-left-color:transparent;border-bottom-color:transparent}1.1%,50%{border-left-color:inherit}10%,35.1%{border-bottom-color:transparent}10.1%,35%{border-bottom-color:inherit}50.1%{border-left-color:transparent}to{border-left-color:transparent;border-bottom-color:transparent;transform:rotate(1turn)}}@-webkit-keyframes currentcolor-elastic-loader{0%,1%{border-left-color:transparent;border-bottom-color:transparent}1.1%,50%{border-left-color:currentColor}10%,35.1%{border-bottom-color:transparent}10.1%,35%{border-bottom-color:currentColor}50.1%{border-left-color:transparent}to{border-left-color:transparent;border-bottom-color:transparent;transform:rotate(1turn)}}@keyframes currentcolor-elastic-loader{0%,1%{border-left-color:transparent;border-bottom-color:transparent}1.1%,50%{border-left-color:currentColor}10%,35.1%{border-bottom-color:transparent}10.1%,35%{border-bottom-color:currentColor}50.1%{border-left-color:transparent}to{border-left-color:transparent;border-bottom-color:transparent;transform:rotate(1turn)}}/*!
+ * # Fomantic-UI - Rail
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%}.ui.left.internal.rail,.ui.right.rail{right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.rail{font-size:1rem}.ui.mini.rail{font-size:.78571429rem}.ui.tiny.rail{font-size:.85714286rem}.ui.small.rail{font-size:.92857143rem}.ui.large.rail{font-size:1.14285714rem}.ui.big.rail{font-size:1.28571429rem}.ui.huge.rail{font-size:1.42857143rem}.ui.massive.rail{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Reveal
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.reveal{display:inherit;position:relative!important;font-size:0}.ui.reveal>.visible.content{position:absolute!important;top:0!important;left:0!important;z-index:3!important;transition:all .5s ease .1s}.ui.reveal>.hidden.content{position:relative!important;z-index:2!important}.ui.active.reveal .visible.content,.ui.reveal:hover .visible.content{z-index:4!important}.ui.slide.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;width:100%;white-space:normal;float:left;margin:0;transition:transform .5s ease .1s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important;transform:translateX(100%)!important}.ui.slide.active.reveal>.visible.content,.ui.slide.reveal:hover>.visible.content{transform:translateX(-100%)!important}.ui.slide.active.reveal>.hidden.content,.ui.slide.reveal:hover>.hidden.content,.ui.slide.right.reveal>.visible.content{transform:translateX(0)!important}.ui.slide.right.reveal>.hidden.content{transform:translateX(-100%)!important}.ui.slide.right.active.reveal>.visible.content,.ui.slide.right.reveal:hover>.visible.content{transform:translateX(100%)!important}.ui.slide.right.active.reveal>.hidden.content,.ui.slide.right.reveal:hover>.hidden.content{transform:translateX(0)!important}.ui.slide.up.reveal>.hidden.content{transform:translateY(100%)!important}.ui.slide.up.active.reveal>.visible.content,.ui.slide.up.reveal:hover>.visible.content{transform:translateY(-100%)!important}.ui.slide.up.active.reveal>.hidden.content,.ui.slide.up.reveal:hover>.hidden.content{transform:translateY(0)!important}.ui.slide.down.reveal>.hidden.content{transform:translateY(-100%)!important}.ui.slide.down.active.reveal>.visible.content,.ui.slide.down.reveal:hover>.visible.content{transform:translateY(100%)!important}.ui.slide.down.active.reveal>.hidden.content,.ui.slide.down.reveal:hover>.hidden.content{transform:translateY(0)!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.active.reveal>.visible.content,.ui.fade.reveal:hover>.visible.content{opacity:0}.ui.move.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.move.reveal>.content{display:block;float:left;white-space:normal;margin:0;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s}.ui.move.reveal>.visible.content{position:relative!important}.ui.move.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important}.ui.move.active.reveal>.visible.content,.ui.move.reveal:hover>.visible.content{transform:translateX(-100%)!important}.ui.move.right.active.reveal>.visible.content,.ui.move.right.reveal:hover>.visible.content{transform:translateX(100%)!important}.ui.move.up.active.reveal>.visible.content,.ui.move.up.reveal:hover>.visible.content{transform:translateY(-100%)!important}.ui.move.down.active.reveal>.visible.content,.ui.move.down.reveal:hover>.visible.content{transform:translateY(100%)!important}.ui.rotate.reveal>.visible.content{transition-duration:.5s;transform:rotate(0)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{transform-origin:bottom right}.ui.rotate.active.reveal>.visible.content,.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.active.reveal>.visible.content,.ui.rotate.right.reveal:hover>.visible.content{transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{transform-origin:bottom left}.ui.rotate.left.active.reveal>.visible.content,.ui.rotate.left.reveal:hover>.visible.content{transform:rotate(-110deg)}.ui.disabled.reveal:hover>.visible.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.hidden.content{display:none!important}.ui.reveal>.ui.ribbon.label{z-index:5}.ui.visible.reveal{overflow:visible}.ui.instant.reveal>.content{transition-delay:0s!important}.ui.reveal>.content{font-size:1rem}.ui.mini.reveal>.content{font-size:.78571429rem}.ui.tiny.reveal>.content{font-size:.85714286rem}.ui.small.reveal>.content{font-size:.92857143rem}.ui.large.reveal>.content{font-size:1.14285714rem}.ui.big.reveal>.content{font-size:1.28571429rem}.ui.huge.reveal>.content{font-size:1.42857143rem}.ui.massive.reveal>.content{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Segment
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.segment{position:relative;background:#fff;box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;padding:1em;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background:none transparent;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.segment:last-child{border-bottom:none}.ui.inverted.segment>.ui.header,.ui.inverted.segment>.ui.header .sub.header{color:#fff}.ui[class*="bottom attached"].segment>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="top attached"].segment>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.grid>.row>.ui.segment.column,.ui.grid>.ui.segment.column,.ui.page.grid.segment{padding-top:2em;padding-bottom:2em}.ui.grid.segment{margin:1rem 0;border-radius:.28571429rem}.ui.basic.table.segment{background:#fff;border:1px solid rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.ui[class*="very basic"].table.segment{padding:1em}.ui.segment.tab:last-child{margin-bottom:1rem}.ui.placeholder.segment{display:flex;flex-direction:column;justify-content:center;align-items:stretch;max-width:none;-webkit-animation:none;animation:none;overflow:visible;padding:1em;min-height:18rem;background:#f9fafb;border-color:rgba(34,36,38,.15);box-shadow:inset 0 2px 25px 0 rgba(34,36,38,.05)}.ui.placeholder.segment .button,.ui.placeholder.segment textarea{display:block}.ui.placeholder.segment .button,.ui.placeholder.segment .column .button,.ui.placeholder.segment .column .field,.ui.placeholder.segment .column>.ui.input,.ui.placeholder.segment .column textarea,.ui.placeholder.segment .field,.ui.placeholder.segment>.ui.input,.ui.placeholder.segment textarea{max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment>.inline{align-self:center}.ui.placeholder.segment>.inline>.button{display:inline-block;width:auto;margin:0 .35714286rem 0 0}.ui.placeholder.segment>.inline>.button:last-child{margin-right:0}.ui.piled.segment,.ui.piled.segments{margin:3em 0;box-shadow:"";z-index:auto}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before,.ui.piled.segments:after,.ui.piled.segments:before{background-color:#fff;visibility:visible;content:"";display:block;height:100%;left:0;position:absolute;width:100%;border:1px solid rgba(34,36,38,.15);box-shadow:""}.ui.piled.segment:before,.ui.piled.segments:before{transform:rotate(-1.2deg);top:0;z-index:-2}.ui.piled.segment:after,.ui.piled.segments:after{transform:rotate(1.2deg);top:0;z-index:-1}.ui[class*="top attached"].piled.segment{margin-top:3em;margin-bottom:0}.ui.piled.segment[class*="top attached"]:first-child{margin-top:0}.ui.piled.segment[class*="bottom attached"]{margin-top:0;margin-bottom:3em}.ui.piled.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.stacked.segment{padding-bottom:1.4em}.ui.stacked.segment:after,.ui.stacked.segment:before,.ui.stacked.segments:after,.ui.stacked.segments:before{content:"";position:absolute;bottom:-3px;left:0;border-top:1px solid rgba(34,36,38,.15);background:rgba(0,0,0,.03);width:100%;height:6px;visibility:visible}.ui.stacked.segment:before,.ui.stacked.segments:before{display:none}.ui.tall.stacked.segment:before,.ui.tall.stacked.segments:before{display:block;bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before,.ui.stacked.inverted.segments:after,.ui.stacked.inverted.segments:before{background-color:rgba(0,0,0,.03);border-top:1px solid rgba(34,36,38,.35)}.ui.padded.segment{padding:1.5em}.ui[class*="very padded"].segment{padding:3em}.ui.padded.segment.vertical.segment,.ui[class*="very padded"].vertical.segment{padding-left:0;padding-right:0}.ui.compact.segment{display:table}.ui.compact.segments{display:inline-flex}.ui.compact.segments .segment,.ui.segments .compact.segment{display:block;flex:0 1 auto}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.raised.segment,.ui.raised.raised.segments{box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.segments{flex-direction:column;position:relative;margin:1rem 0;border:1px solid rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem}.ui.segments:first-child{margin-top:0}.ui.segments:last-child{margin-bottom:0}.ui.segments>.segment{top:0;bottom:0;border-radius:0;margin:0;width:auto;box-shadow:none;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.segments:not(.horizontal)>.segment:first-child{top:0;bottom:0;border-top:none;margin-top:0;margin-bottom:0;border-radius:.28571429rem .28571429rem 0 0}.ui.segments:not(.horizontal)>.segment:last-child{top:0;bottom:0;margin-top:0;margin-bottom:0;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui.segments:not(.horizontal)>.segment:only-child{border-radius:.28571429rem}.ui.segments>.ui.segments{border-top:1px solid rgba(34,36,38,.15);margin:1rem}.ui.segments>.segments:first-child{border-top:none}.ui.segments>.segment+.segments:not(.horizontal){margin-top:0}.ui.horizontal.segments{display:flex;flex-direction:row;background-color:transparent;padding:0;box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.stackable.horizontal.segments{flex-wrap:wrap}.ui.segments>.horizontal.segments{margin:0;background-color:transparent;border-radius:0;box-shadow:none;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.horizontal.segments:not(.compact)>.segment:not(.compact){flex:1 1 auto;-ms-flex:1 1 0}.ui.horizontal.segments>.segment{margin:0;min-width:0;border-radius:0;box-shadow:none;border:none;border-left:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments:first-child{border-top:none}.ui.horizontal.segments:not(.stackable)>.segment:first-child{border-left:none}.ui.horizontal.segments>.segment:first-child{border-radius:.28571429rem 0 0 .28571429rem}.ui.horizontal.segments>.segment:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.disabled.segment{opacity:.45;color:rgba(40,40,40,.3)}.ui.loading.segment{position:relative;cursor:default;pointer-events:none;text-shadow:none!important;transition:all 0s linear}.ui.loading.segment:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;border-radius:.28571429rem;z-index:100}.ui.loading.segment:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.ui.basic.segment,.ui.basic.segments,.ui.segments .ui.basic.segment{background:none transparent;box-shadow:none;border:none;border-radius:0}.ui.clearing.segment:after{content:"";display:block;clear:both}.ui.red.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #db2828}.ui.inverted.red.segment.segment.segment.segment.segment{background-color:#db2828;color:#fff}.ui.orange.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #f2711c}.ui.inverted.orange.segment.segment.segment.segment.segment{background-color:#f2711c;color:#fff}.ui.yellow.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #fbbd08}.ui.inverted.yellow.segment.segment.segment.segment.segment{background-color:#fbbd08;color:#fff}.ui.olive.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #b5cc18}.ui.inverted.olive.segment.segment.segment.segment.segment{background-color:#b5cc18;color:#fff}.ui.green.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #21ba45}.ui.inverted.green.segment.segment.segment.segment.segment{background-color:#21ba45;color:#fff}.ui.teal.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #00b5ad}.ui.inverted.teal.segment.segment.segment.segment.segment{background-color:#00b5ad;color:#fff}.ui.blue.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #2185d0}.ui.inverted.blue.segment.segment.segment.segment.segment{background-color:#2185d0;color:#fff}.ui.violet.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #6435c9}.ui.inverted.violet.segment.segment.segment.segment.segment{background-color:#6435c9;color:#fff}.ui.purple.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #a333c8}.ui.inverted.purple.segment.segment.segment.segment.segment{background-color:#a333c8;color:#fff}.ui.pink.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #e03997}.ui.inverted.pink.segment.segment.segment.segment.segment{background-color:#e03997;color:#fff}.ui.brown.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #a5673f}.ui.inverted.brown.segment.segment.segment.segment.segment{background-color:#a5673f;color:#fff}.ui.grey.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #767676}.ui.inverted.grey.segment.segment.segment.segment.segment{background-color:#767676;color:#fff}.ui.black.segment.segment.segment.segment.segment:not(.inverted){border-top:2px solid #1b1c1d}.ui.inverted.black.segment.segment.segment.segment.segment{background-color:#1b1c1d;color:#fff}.ui[class*="left aligned"].segment{text-align:left}.ui[class*="right aligned"].segment{text-align:right}.ui[class*="center aligned"].segment{text-align:center}.ui.floated.segment,.ui[class*="left floated"].segment{float:left;margin-right:1em}.ui[class*="right floated"].segment{float:right;margin-left:1em}.ui.inverted.segment{border:none;box-shadow:none}.ui.inverted.segment,.ui.primary.inverted.segment{background:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.segment .segment{color:rgba(0,0,0,.87)}.ui.inverted.segment .inverted.segment{color:hsla(0,0%,100%,.9)}.ui.inverted.attached.segment{border-color:#555}.ui.inverted.loading.segment{color:#fff}.ui.inverted.loading.segment:before{background:rgba(0,0,0,.85)}.ui.secondary.segment{background:#f3f4f5;color:rgba(0,0,0,.6)}.ui.secondary.inverted.segment{background:#4c4f52 linear-gradient(hsla(0,0%,100%,.2),hsla(0,0%,100%,.2));color:hsla(0,0%,100%,.8)}.ui.tertiary.segment{background:#dcddde;color:rgba(0,0,0,.6)}.ui.tertiary.inverted.segment{background:#717579 linear-gradient(hsla(0,0%,100%,.35),hsla(0,0%,100%,.35));color:hsla(0,0%,100%,.8)}.ui.attached.segment{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% + 2px);max-width:calc(100% + 2px);box-shadow:none;border:1px solid #d4d4d5}.ui.attached:not(.message)+.ui.attached.segment:not(.top){border-top:none}.ui[class*="top attached"].segment{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.28571429rem .28571429rem 0 0}.ui.segment[class*="top attached"]:first-child{margin-top:0}.ui.segment[class*="bottom attached"]{bottom:0;margin-top:0;top:0;margin-bottom:1rem;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui.segment[class*="bottom attached"]:last-child{margin-bottom:1rem}.ui.fitted.segment:not(.horizontally){padding-top:0;padding-bottom:0}.ui.fitted.segment:not(.vertically){padding-left:0;padding-right:0}.ui.segment,.ui.segments .segment{font-size:1rem}.ui.mini.segment,.ui.mini.segments .segment{font-size:.78571429rem}.ui.tiny.segment,.ui.tiny.segments .segment{font-size:.85714286rem}.ui.small.segment,.ui.small.segments .segment{font-size:.92857143rem}.ui.large.segment,.ui.large.segments .segment{font-size:1.14285714rem}.ui.big.segment,.ui.big.segments .segment{font-size:1.28571429rem}.ui.huge.segment,.ui.huge.segments .segment{font-size:1.42857143rem}.ui.massive.segment,.ui.massive.segments .segment{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Step
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.steps{display:inline-flex;flex-direction:row;align-items:stretch;margin:1em 0;background:"";box-shadow:none;line-height:1.14285714em;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.steps:not(.unstackable){flex-wrap:wrap}.ui.steps:first-child{margin-top:0}.ui.steps:last-child{margin-bottom:0}.ui.steps .step{position:relative;display:flex;flex:1 0 auto;flex-wrap:wrap;flex-direction:row;vertical-align:middle;align-items:center;justify-content:center;margin:0;padding:1.14285714em 2em;background:#fff;color:rgba(0,0,0,.87);box-shadow:none;border-radius:0;border:none;border-right:1px solid rgba(34,36,38,.15)}.ui.steps .step,.ui.steps .step:after{transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.steps .step:after{display:none;position:absolute;z-index:2;content:"";top:50%;right:0;background-color:#fff;width:1.14285714em;height:1.14285714em;border-color:rgba(34,36,38,.15);border-style:solid;border-width:0 1px 1px 0;transform:translateY(-50%) translateX(50%) rotate(-45deg)}.ui.steps .step:first-child{padding-left:2em;border-radius:.28571429rem 0 0 .28571429rem}.ui.steps .step:last-child{border-radius:0 .28571429rem .28571429rem 0;border-right:none;margin-right:0}.ui.steps .step:only-child{border-radius:.28571429rem}.ui.steps .step .title{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.14285714em;font-weight:700}.ui.steps .step>.title{width:100%}.ui.steps .step .description{font-weight:400;font-size:.92857143em;color:rgba(0,0,0,.87)}.ui.steps .step>.description{width:100%}.ui.steps .step .title~.description{margin-top:.25em}.ui.steps .step>i.icon{line-height:1;font-size:2.5em;margin:0 1rem 0 0}.ui.steps .step>i.icon,.ui.steps .step>i.icon~.content{display:block;flex:0 1 auto;align-self:middle}.ui.steps:not(.vertical) .step>i.icon{width:auto}.ui.steps .link.step,.ui.steps a.step{cursor:pointer}.ui.ordered.steps{counter-reset:ordered}.ui.ordered.steps .step:before{position:static;text-align:center;content:counter(ordered);margin-right:1rem;font-size:2.5em;counter-increment:ordered;font-family:inherit;font-weight:700}.ui.ordered.steps .step:before,.ui.ordered.steps .step>*{display:block;align-self:middle}.ui.vertical.steps{display:inline-flex;flex-direction:column;overflow:visible}.ui.vertical.steps .step{justify-content:flex-start;border-radius:0;padding:1.14285714em 2em;border-right:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.steps .step:first-child{padding:1.14285714em 2em;border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.steps .step:last-child{border-bottom:none;border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.steps .step:only-child{border-radius:.28571429rem}.ui.vertical.steps .step:after{top:50%;right:0;border-width:0 1px 1px 0;display:none}.ui.right.vertical.steps .step:after{border-width:1px 0 0 1px;left:0;right:100%;transform:translateY(-50%) translateX(-50%) rotate(-45deg)}.ui.vertical.steps .active.step:after{display:block}.ui.vertical.steps .step:last-child:after{display:none}.ui.vertical.steps .active.step:last-child:after{display:block}@media only screen and (max-width:767.98px){.ui.steps:not(.unstackable){display:inline-flex;overflow:visible;flex-direction:column}.ui.steps:not(.unstackable) .step{width:100%!important;flex-direction:column;border-radius:0;padding:1.14285714em 2em;border-right:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.steps:not(.unstackable) .step:first-child{padding:1.14285714em 2em;border-radius:.28571429rem .28571429rem 0 0}.ui.steps:not(.unstackable) .step:last-child{border-radius:0 0 .28571429rem .28571429rem;border-bottom:none}.ui.steps:not(.unstackable) .step:after{top:unset;bottom:-1.14285714em;right:50%;transform:translateY(-50%) translateX(50%) rotate(45deg)}.ui.vertical.steps .active.step:last-child:after{display:none}.ui.steps:not(.unstackable) .step .content{text-align:center}.ui.ordered.steps:not(.unstackable) .step:before,.ui.steps:not(.unstackable) .step>i.icon{margin:0 0 1rem}}.ui.steps .link.step:hover,.ui.steps .link.step:hover:after,.ui.steps a.step:hover,.ui.steps a.step:hover:after{background:#f9fafb;color:rgba(0,0,0,.8)}.ui.steps .link.step:active,.ui.steps .link.step:active:after,.ui.steps a.step:active,.ui.steps a.step:active:after{background:#f3f4f5;color:rgba(0,0,0,.9)}.ui.steps .step.active{cursor:auto;background:#f3f4f5}.ui.steps .step.active:after{background:#f3f4f5}.ui.steps .step.active .title{color:#4183c4}.ui.ordered.steps .step.active:before,.ui.steps .active.step i.icon{color:rgba(0,0,0,.85)}.ui.steps .active.step:after,.ui.steps .step:after{display:block}.ui.steps .active.step:last-child:after,.ui.steps .step:last-child:after{display:none}.ui.steps .link.active.step:hover,.ui.steps .link.active.step:hover:after,.ui.steps a.active.step:hover,.ui.steps a.active.step:hover:after{cursor:pointer;background:#dcddde;color:rgba(0,0,0,.87)}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>i.icon:before{color:#21ba45}.ui.steps .disabled.step{cursor:auto;background:#fff;pointer-events:none}.ui.steps .disabled.step,.ui.steps .disabled.step .description,.ui.steps .disabled.step .title{color:rgba(40,40,40,.3)}.ui.steps .disabled.step:after{background:#fff}@media only screen and (max-width:991.98px){.ui[class*="tablet stackable"].steps{display:inline-flex;overflow:visible;flex-direction:column}.ui[class*="tablet stackable"].steps .step{flex-direction:column;border-radius:0;padding:1.14285714em 2em;border-right:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui[class*="tablet stackable"].steps .step:first-child{padding:1.14285714em 2em;border-radius:.28571429rem .28571429rem 0 0}.ui[class*="tablet stackable"].steps .step:last-child{border-radius:0 0 .28571429rem .28571429rem;border-bottom:none}.ui[class*="tablet stackable"].steps .step:after{top:unset;bottom:-1.14285714em;right:50%;transform:translateY(-50%) translateX(50%) rotate(45deg)}.ui[class*="tablet stackable"].steps .step .content{text-align:center}.ui[class*="tablet stackable"].ordered.steps .step:before,.ui[class*="tablet stackable"].steps .step>i.icon{margin:0 0 1rem}}.ui.fluid.steps{display:flex;width:100%}.ui.attached.steps{width:calc(100% + 2px)!important;margin:0 -1px;max-width:calc(100% + 2px);border-radius:.28571429rem .28571429rem 0 0}.ui.attached.steps .step:first-child{border-radius:.28571429rem 0 0 0}.ui.attached.steps .step:last-child{border-radius:0 .28571429rem 0 0}.ui.bottom.attached.steps{margin:0 -1px;border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.attached.steps .step:first-child{border-radius:0 0 0 .28571429rem}.ui.bottom.attached.steps .step:last-child{border-radius:0 0 .28571429rem 0}.ui.eight.steps,.ui.five.steps,.ui.four.steps,.ui.one.steps,.ui.seven.steps,.ui.six.steps,.ui.three.steps,.ui.two.steps{width:100%}.ui.eight.steps>.step,.ui.five.steps>.step,.ui.four.steps>.step,.ui.one.steps>.step,.ui.seven.steps>.step,.ui.six.steps>.step,.ui.three.steps>.step,.ui.two.steps>.step{flex-wrap:nowrap}.ui.one.steps>.step{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.step,.ui.steps .step{font-size:1rem}.ui.mini.step,.ui.mini.steps .step{font-size:.78571429rem}.ui.tiny.step,.ui.tiny.steps .step{font-size:.85714286rem}.ui.small.step,.ui.small.steps .step{font-size:.92857143rem}.ui.large.step,.ui.large.steps .step{font-size:1.14285714rem}.ui.big.step,.ui.big.steps .step{font-size:1.28571429rem}.ui.huge.step,.ui.huge.steps .step{font-size:1.42857143rem}.ui.massive.step,.ui.massive.steps .step{font-size:1.71428571rem}.ui.inverted.steps{border:1px solid #555}.ui.inverted.steps .step{color:hsla(0,0%,100%,.9);background:#1b1c1d;border-color:#555}.ui.inverted.steps .step:after{background-color:#1b1c1d;border-color:#555}.ui.inverted.steps .step .description{color:hsla(0,0%,100%,.9)}.ui.inverted.steps .step.active,.ui.inverted.steps .step.active:after{background:#333}.ui.inverted.ordered.steps .step.active:before,.ui.inverted.steps .active.step i.icon{color:#fff}.ui.inverted.steps .disabled.step,.ui.inverted.steps .disabled.step:after{background:#222}.ui.inverted.steps .disabled.step,.ui.inverted.steps .disabled.step .description,.ui.inverted.steps .disabled.step .title{color:hsla(0,0%,88.2%,.3)}.ui.inverted.steps .link.step:hover,.ui.inverted.steps .link.step:hover:after,.ui.inverted.steps a.step:hover,.ui.inverted.steps a.step:hover:after{background:#3f3f3f;color:#fff}.ui.inverted.steps .link.step:active,.ui.inverted.steps .link.step:active:after,.ui.inverted.steps a.step:active,.ui.inverted.steps a.step:active:after{background:#444;color:#fff}@font-face{font-family:Step;src:url(data:application/x-font-ttf;charset=utf-8;;base64,AAEAAAAOAIAAAwBgT1MvMj3hSQEAAADsAAAAVmNtYXDQEhm3AAABRAAAAUpjdnQgBkn/lAAABuwAAAAcZnBnbYoKeDsAAAcIAAAJkWdhc3AAAAAQAAAG5AAAAAhnbHlm32cEdgAAApAAAAC2aGVhZAErPHsAAANIAAAANmhoZWEHUwNNAAADgAAAACRobXR4CykAAAAAA6QAAAAMbG9jYQA4AFsAAAOwAAAACG1heHAApgm8AAADuAAAACBuYW1lzJ0aHAAAA9gAAALNcG9zdK69QJgAAAaoAAAAO3ByZXCSoZr/AAAQnAAAAFYAAQO4AZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADoAQNS/2oAWgMLAE8AAAABAAAAAAAAAAAAAwAAAAMAAAAcAAEAAAAAAEQAAwABAAAAHAAEACgAAAAGAAQAAQACAADoAf//AAAAAOgA//8AABgBAAEAAAAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADpAKYABUAHEAZDwEAAQFCAAIBAmoAAQABagAAAGEUFxQDEisBFAcBBiInASY0PwE2Mh8BATYyHwEWA6QP/iAQLBD+6g8PTBAsEKQBbhAsEEwPAhYWEP4gDw8BFhAsEEwQEKUBbxAQTBAAAAH//f+xA18DCwAMABJADwABAQpDAAAACwBEFRMCESsBFA4BIi4CPgEyHgEDWXLG6MhuBnq89Lp+AV51xHR0xOrEdHTEAAAAAAEAAAABAADDeRpdXw889QALA+gAAAAAzzWYjQAAAADPNWBN//3/sQOkAwsAAAAIAAIAAAAAAAAAAQAAA1L/agBaA+gAAP/3A6QAAQAAAAAAAAAAAAAAAAAAAAMD6AAAA+gAAANZAAAAAAAAADgAWwABAAAAAwAWAAEAAAAAAAIABgATAG4AAAAtCZEAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE0IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA0ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAQIBAwljaGVja21hcmsGY2lyY2xlAAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAADIAMgML/7EDC/+xsAAssCBgZi2wASwgZCCwwFCwBCZasARFW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCwCkVhZLAoUFghsApFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwACtZWSOwAFBYZVlZLbACLCBFILAEJWFkILAFQ1BYsAUjQrAGI0IbISFZsAFgLbADLCMhIyEgZLEFYkIgsAYjQrIKAAIqISCwBkMgiiCKsAArsTAFJYpRWGBQG2FSWVgjWSEgsEBTWLAAKxshsEBZI7AAUFhlWS2wBCywB0MrsgACAENgQi2wBSywByNCIyCwACNCYbCAYrABYLAEKi2wBiwgIEUgsAJFY7ABRWJgRLABYC2wBywgIEUgsAArI7ECBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAgssQUFRbABYUQtsAkssAFgICCwCUNKsABQWCCwCSNCWbAKQ0qwAFJYILAKI0JZLbAKLCC4BABiILgEAGOKI2GwC0NgIIpgILALI0IjLbALLEtUWLEHAURZJLANZSN4LbAMLEtRWEtTWLEHAURZGyFZJLATZSN4LbANLLEADENVWLEMDEOwAWFCsAorWbAAQ7ACJUKxCQIlQrEKAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAJKiEjsAFhIIojYbAJKiEbsQEAQ2CwAiVCsAIlYbAJKiFZsAlDR7AKQ0dgsIBiILACRWOwAUViYLEAABMjRLABQ7AAPrIBAQFDYEItsA4ssQAFRVRYALAMI0IgYLABYbUNDQEACwBCQopgsQ0FK7BtKxsiWS2wDyyxAA4rLbAQLLEBDistsBEssQIOKy2wEiyxAw4rLbATLLEEDistsBQssQUOKy2wFSyxBg4rLbAWLLEHDistsBcssQgOKy2wGCyxCQ4rLbAZLLAIK7EABUVUWACwDCNCIGCwAWG1DQ0BAAsAQkKKYLENBSuwbSsbIlktsBossQAZKy2wGyyxARkrLbAcLLECGSstsB0ssQMZKy2wHiyxBBkrLbAfLLEFGSstsCAssQYZKy2wISyxBxkrLbAiLLEIGSstsCMssQkZKy2wJCwgPLABYC2wJSwgYLANYCBDI7ABYEOwAiVhsAFgsCQqIS2wJiywJSuwJSotsCcsICBHICCwAkVjsAFFYmAjYTgjIIpVWCBHICCwAkVjsAFFYmAjYTgbIVktsCgssQAFRVRYALABFrAnKrABFTAbIlktsCkssAgrsQAFRVRYALABFrAnKrABFTAbIlktsCosIDWwAWAtsCssALADRWOwAUVisAArsAJFY7ABRWKwACuwABa0AAAAAABEPiM4sSoBFSotsCwsIDwgRyCwAkVjsAFFYmCwAENhOC2wLSwuFzwtsC4sIDwgRyCwAkVjsAFFYmCwAENhsAFDYzgtsC8ssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrIuAQEVFCotsDAssAAWsAQlsAQlRyNHI2GwBkUrZYouIyAgPIo4LbAxLLAAFrAEJbAEJSAuRyNHI2EgsAQjQrAGRSsgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsIBiYCCwACsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsIBiYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsIBiYCMgsAArI7AEQ2CwACuwBSVhsAUlsIBisAQmYSCwBCVgZCOwAyVgZFBYIRsjIVkjICCwBCYjRmE4WS2wMiywABYgICCwBSYgLkcjRyNhIzw4LbAzLLAAFiCwCCNCICAgRiNHsAArI2E4LbA0LLAAFrADJbACJUcjRyNhsABUWC4gPCMhG7ACJbACJUcjRyNhILAFJbAEJUcjRyNhsAYlsAUlSbACJWGwAUVjIyBYYhshWWOwAUViYCMuIyAgPIo4IyFZLbA1LLAAFiCwCEMgLkcjRyNhIGCwIGBmsIBiIyAgPIo4LbA2LCMgLkawAiVGUlggPFkusSYBFCstsDcsIyAuRrACJUZQWCA8WS6xJgEUKy2wOCwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xJgEUKy2wOSywMCsjIC5GsAIlRlJYIDxZLrEmARQrLbA6LLAxK4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrEmARQrsARDLrAmKy2wOyywABawBCWwBCYgLkcjRyNhsAZFKyMgPCAuIzixJgEUKy2wPCyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAGRSsgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwgGJgILAAKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwgGJhsAIlRmE4IyA8IzgbISAgRiNHsAArI2E4IVmxJgEUKy2wPSywMCsusSYBFCstsD4ssDErISMgIDywBCNCIzixJgEUK7AEQy6wJistsD8ssAAVIEewACNCsgABARUUEy6wLCotsEAssAAVIEewACNCsgABARUUEy6wLCotsEEssQABFBOwLSotsEIssC8qLbBDLLAAFkUjIC4gRoojYTixJgEUKy2wRCywCCNCsEMrLbBFLLIAADwrLbBGLLIAATwrLbBHLLIBADwrLbBILLIBATwrLbBJLLIAAD0rLbBKLLIAAT0rLbBLLLIBAD0rLbBMLLIBAT0rLbBNLLIAADkrLbBOLLIAATkrLbBPLLIBADkrLbBQLLIBATkrLbBRLLIAADsrLbBSLLIAATsrLbBTLLIBADsrLbBULLIBATsrLbBVLLIAAD4rLbBWLLIAAT4rLbBXLLIBAD4rLbBYLLIBAT4rLbBZLLIAADorLbBaLLIAATorLbBbLLIBADorLbBcLLIBATorLbBdLLAyKy6xJgEUKy2wXiywMiuwNistsF8ssDIrsDcrLbBgLLAAFrAyK7A4Ky2wYSywMysusSYBFCstsGIssDMrsDYrLbBjLLAzK7A3Ky2wZCywMyuwOCstsGUssDQrLrEmARQrLbBmLLA0K7A2Ky2wZyywNCuwNystsGgssDQrsDgrLbBpLLA1Ky6xJgEUKy2waiywNSuwNistsGsssDUrsDcrLbBsLLA1K7A4Ky2wbSwrsAhlsAMkUHiwARUwLQAAAEu4AMhSWLEBAY5ZuQgACABjILABI0SwAyNwsgQoCUVSRLIKAgcqsQYBRLEkAYhRWLBAiFixBgNEsSYBiFFYuAQAiFixBgFEWVlZWbgB/4WwBI2xBQBEAAA=) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAoUAA4AAAAAEPQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPeFJAWNtYXAAAAGIAAAAOgAAAUrQEhm3Y3Z0IAAAAcQAAAAUAAAAHAZJ/5RmcGdtAAAB2AAABPkAAAmRigp4O2dhc3AAAAbUAAAACAAAAAgAAAAQZ2x5ZgAABtwAAACuAAAAtt9nBHZoZWFkAAAHjAAAADUAAAA2ASs8e2hoZWEAAAfEAAAAIAAAACQHUwNNaG10eAAAB+QAAAAMAAAADAspAABsb2NhAAAH8AAAAAgAAAAIADgAW21heHAAAAf4AAAAIAAAACAApgm8bmFtZQAACBgAAAF3AAACzcydGhxwb3N0AAAJkAAAACoAAAA7rr1AmHByZXAAAAm8AAAAVgAAAFaSoZr/eJxjYGTewTiBgZWBg6mKaQ8DA0MPhGZ8wGDIyMTAwMTAysyAFQSkuaYwOLxgeMHIHPQ/iyGKmZvBHyjMCJIDAPe9C2B4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF4w/v8PUvCCAURLMELVAwEjG8OIBwBk5AavAAB4nGNgQANGDEbM3P83gjAAELQD4XicnVXZdtNWFJU8ZHASOmSgoA7X3DhQ68qEKRgwaSrFdiEdHAitBB2kDHTkncc+62uOQrtWH/m07n09JLR0rbYsls++R1tn2DrnRhwjKn0aiGvUoZKXA6msPZZK90lc13Uvj5UMBnFdthJPSZuonSRKat3sUC7xWOsqWSdYJ+PlIFZPVZ5noAziFB5lSUQbRBuplyZJ4onjJ4kWZxAfJUkgJaMQp9LIUEI1GsRS1aFM6dCr1xNx00DKRqMedVhU90PFJ8c1p9SsA0YqVznCFevVRr4bpwMve5DEOsGzrYcxHnisfpQqkIqR6cg/dkpOlIaBVHHUoVbi6DCTX/eRTCrNQKaMYkWl7oG43f102xYxPXQ6vi5KlUaqurnOKJrt0fGogygP2cbppNzQ2fbw5RlTVKtdcbPtQGYNXErJbHSfRAAdJlLj6QFONZwCqRn1R8XZ588BEslclKo8VTKHegOZMzt7cTHtbiersnCknwcyb3Z2452HQ6dXh3/R+hdM4cxHj+Jifj5C+lBqfiJOJKVGWMzyp4YfcVcgQrkxiAsXyuBThDl0RdrZZl3jtTH2hs/5SqlhPQna6KP4fgr9TiQrHGdRo/VInM1j13Wt3GdQS7W7Fzsyr0OVIu7vCwuuM+eEYZ4WC1VfnvneBTT/Bohn/EDeNIVL+5YpSrRvm6JMu2iKCu0SVKVdNsUU7YoppmnPmmKG9h1TzNKeMzLj/8vc55H7HN7xkJv2XeSmfQ+5ad9HbtoPkJtWITdtHblpLyA3rUZu2lWjOnYEGgZpF1IVQdA0svph3Fab9UDWjDR8aWDyLmLI+upER521tcofxX914gsHcmmip7siF5viLq/bFj483e6rj5pG3bDV+MaR8jAeRnocmtBZ+c3hv+1N3S6a7jKqMugBFUwKwABl7UAC0zrbCaT1mqf48gdgXIZ4zkpDtVSfO4am7+V5X/exOfG+x+3GLrdcd3kJWdYNcmP28N9SZKrrH+UtrVQnR6wrJ49VaxhDKrwour6SlHu0tRu/KKmy8l6U1srnk5CbPYMbQlu27mGwI0xpyiUeXlOlKD3UUo6yQyxvKco84JSLC1qGxLgOdQ9qa8TpoXoYGwshhqG0vRBwSCldFd+0ynfxHqtr2Oj4xRXh6XpyEhGf4ir7UfBU10b96A7avGbdMoMpVaqn+4xPsa/b9lFZaaSOsxe3VAfXNOsaORXTT+Rr4HRvOGjdAz1UfDRBI1U1x+jGKGM0ljXl3wR0MVZ+w2jVYvs93E+dpFWsuUuY7JsT9+C0u/0q+7WcW0bW/dcGvW3kip8jMb8tCvw7B2K3ZA3UO5OBGAvIWdAYxhYmdxiug23EbfY/Jqf/34aFRXJXOxq7eerD1ZNRJXfZ8rjLTXZZ16M2R9VOGvsIjS0PN+bY4XIstsRgQbb+wf8x7gF3aVEC4NDIZZiI2nShnurh6h6rsW04VxIBds2x43QAegAuQd8cu9bzCYD13CPnLsB9cgh2yCH4lByCz8i5BfA5OQRfkEMwIIdgl5w7AA/IIXhIDsEeOQSPyNkE+JIcgq/IIYjJIUjIuQ3wmByCJ+QQfE0OwTdGrk5k/pYH2QD6zqKbQKmdGhzaOGRGrk3Y+zxY9oFFZB9aROqRkesT6lMeLPV7i0j9wSJSfzRyY0L9iQdL/dkiUn+xiNRnxpeZIymvDp7zjg7+BJfqrV4AAAAAAQAB//8AD3icY2BkAALmJUwzGEQZZBwk+RkZGBmdGJgYmbIYgMwsoGSiiLgIs5A2owg7I5uSOqOaiT2jmZE8I5gQY17C/09BQEfg3yt+fh8gvYQxD0j68DOJiQn8U+DnZxQDcQUEljLmCwBpBgbG/3//b2SOZ+Zm4GEQcuAH2sblDLSEm8FFVJhJEGgLH6OSHpMdo5EcI3Nk0bEXJ/LYqvZ82VXHGFd6pKTkyCsQwQAAq+QkqAAAeJxjYGRgYADiw5VSsfH8Nl8ZuJlfAEUYzpvO6IXQCb7///7fyLyEmRvI5WBgAokCAFb/DJAAAAB4nGNgZGBgDvqfxRDF/IKB4f935iUMQBEUwAwAi5YFpgPoAAAD6AAAA1kAAAAAAAAAOABbAAEAAAADABYAAQAAAAAAAgAGABMAbgAAAC0JkQAAAAB4nHWQy2rCQBSG//HSi0JbWui2sypKabxgN4IgWHTTbqS4LTHGJBIzMhkFX6Pv0IfpS/RZ+puMpShNmMx3vjlz5mQAXOMbAvnzxJGzwBmjnAs4Rc9ykf7Zcon8YrmMKt4sn9C/W67gAYHlKm7wwQqidM5ogU/LAlfi0nIBF+LOcpH+0XKJ3LNcxq14tXxC71muYCJSy1Xci6+BWm11FIRG1gZ12W62OnK6lYoqStxYumsTKp3KvpyrxPhxrBxPLfc89oN17Op9uJ8nvk4jlciW09yrkZ/42jX+bFc93QRtY+ZyrtVSDm2GXGm18D3jhMasuo3G3/MwgMIKW2hEvKoQBhI12jrnNppooUOaMkMyM8+KkMBFTONizR1htpIy7nPMGSW0PjNisgOP3+WRH5MC7o9ZRR+tHsYT0u6MKPOSfTns7jBrREqyTDezs9/eU2x4WpvWcNeuS511JTE8qCF5H7u1BY1H72S3Ymi7aPD95/9+AN1fhEsAeJxjYGKAAC4G7ICZgYGRiZGZMzkjNTk7N7Eomy05syg5J5WBAQBE1QZBAABLuADIUlixAQGOWbkIAAgAYyCwASNEsAMjcLIEKAlFUkSyCgIHKrEGAUSxJAGIUViwQIhYsQYDRLEmAYhRWLgEAIhYsQYBRFlZWVm4Af+FsASNsQUARAAA) format("woff")}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{font-family:Step;content:"\e800"}/*!
+ * # Fomantic-UI - Breadcrumb
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.breadcrumb{line-height:1.4285em;display:inline-block;margin:0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183c4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.inverted.breadcrumb{color:#dcddde}.ui.inverted.breadcrumb>.active.section{color:#fff}.ui.inverted.breadcrumb>.divider{color:hsla(0,0%,100%,.7)}.ui.breadcrumb .active.section{font-weight:700}.ui.breadcrumb{font-size:1rem}.ui.mini.breadcrumb{font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Form
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.form{position:relative;max-width:100%}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field:last-child,.ui.form .fields .fields,.ui.form .fields:last-child .field{margin-bottom:0}.ui.form .fields .field{clear:both;margin:0}.ui.form .field>label{display:block;margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url],.ui.form textarea{width:100%;vertical-align:top}.ui.form ::-webkit-datetime-edit,.ui.form ::-webkit-inner-spin-button{height:1.21428571em}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0;outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease}.ui.form textarea,.ui.input textarea{margin:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);padding:.78571429em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);outline:0;color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease;font-size:1em;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;line-height:1.2857;resize:vertical}.ui.form textarea:not([rows]){height:12em;min-height:8em;max-height:24em}.ui.form input[type=checkbox],.ui.form textarea{vertical-align:top}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) label+.ui.ui.checkbox{margin-top:.7em}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.checkbox{margin-top:2.41428571em}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.toggle.checkbox{margin-top:2.21428571em}.ui.form .fields:not(.grouped):not(.inline) .field:not(:only-child) .ui.slider.checkbox{margin-top:2.61428571em}.ui.ui.form .field .fields .field:not(:only-child) .ui.checkbox{margin-top:.6em}.ui.ui.form .field .fields .field:not(:only-child) .ui.toggle.checkbox{margin-top:.5em}.ui.ui.form .field .fields .field:not(:only-child) .ui.slider.checkbox{margin-top:.7em}.ui.form .field .transparent.input:not(.icon) input,.ui.form .field input.transparent,.ui.form .field textarea.transparent{padding:.67857143em 1em}.ui.form .field input.transparent,.ui.form .field textarea.transparent{border-color:transparent!important;background-color:transparent!important;box-shadow:none!important}.ui.form input.attached{width:auto}.ui.form select{display:block;height:auto;width:100%;background:#fff;border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem;box-shadow:inset 0 0 0 0 transparent;padding:.62em 1em;color:rgba(0,0,0,.87);transition:color .1s ease,border-color .1s ease}.ui.form .field>.selection.dropdown{min-width:auto;width:100%}.ui.form .field>.selection.dropdown>.dropdown.icon{float:right}.ui.form .inline.field>.selection.dropdown,.ui.form .inline.fields .field>.selection.dropdown{width:auto}.ui.form .inline.field>.selection.dropdown>.dropdown.icon,.ui.form .inline.fields .field>.selection.dropdown>.dropdown.icon{float:none}.ui.form .field .ui.input,.ui.form .fields .field .ui.input,.ui.form .wide.field .ui.input{width:100%}.ui.form .inline.field:not(.wide) .ui.input,.ui.form .inline.fields .field:not(.wide) .ui.input{width:auto;vertical-align:middle}.ui.form .field .ui.input input,.ui.form .fields .field .ui.input input{width:auto}.ui.form .eight.fields .ui.input input,.ui.form .five.fields .ui.input input,.ui.form .four.fields .ui.input input,.ui.form .nine.fields .ui.input input,.ui.form .seven.fields .ui.input input,.ui.form .six.fields .ui.input input,.ui.form .ten.fields .ui.input input,.ui.form .three.fields .ui.input input,.ui.form .two.fields .ui.input input,.ui.form .wide.field .ui.input input{flex:1 0 auto;width:0}.ui.form .error.message,.ui.form .error.message:empty,.ui.form .info.message,.ui.form .info.message:empty,.ui.form .success.message,.ui.form .success.message:empty,.ui.form .warning.message,.ui.form .warning.message:empty{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:normal;background:#fff!important;border:1px solid #e0b4b4!important;color:#9f3a38!important}.ui.form .inline.field .prompt,.ui.form .inline.fields .field .prompt{vertical-align:top;margin:-.25em 0 -.5em .5em}.ui.form .inline.field .prompt:before,.ui.form .inline.fields .field .prompt:before{border-width:0 0 1px 1px;bottom:auto;right:auto;top:50%;left:0}.ui.form .field.field input:-webkit-autofill{box-shadow:inset 0 0 0 100px ivory!important;border-color:#e5dfa1!important}.ui.form .field.field input:-webkit-autofill:focus{box-shadow:inset 0 0 0 100px ivory!important;border-color:#d5c315!important}.ui.form ::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)!important}.ui.form ::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form :focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)!important}.ui.form :focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form input:not([type]):focus,.ui.form input[type=date]:focus,.ui.form input[type=datetime-local]:focus,.ui.form input[type=email]:focus,.ui.form input[type=file]:focus,.ui.form input[type=number]:focus,.ui.form input[type=password]:focus,.ui.form input[type=search]:focus,.ui.form input[type=tel]:focus,.ui.form input[type=text]:focus,.ui.form input[type=time]:focus,.ui.form input[type=url]:focus{color:rgba(0,0,0,.95);border-color:#85b7d9;border-radius:.28571429rem;background:#fff;box-shadow:inset 0 0 0 0 rgba(34,36,38,.35)}.ui.form .ui.action.input:not([class*="left action"]) input:not([type]):focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=date]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=datetime-local]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=email]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=file]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=number]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=password]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=search]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=tel]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=text]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=time]:focus,.ui.form .ui.action.input:not([class*="left action"]) input[type=url]:focus{border-top-right-radius:0;border-bottom-right-radius:0}.ui.form .ui[class*="left action"].input input:not([type]),.ui.form .ui[class*="left action"].input input[type=date],.ui.form .ui[class*="left action"].input input[type=datetime-local],.ui.form .ui[class*="left action"].input input[type=email],.ui.form .ui[class*="left action"].input input[type=file],.ui.form .ui[class*="left action"].input input[type=number],.ui.form .ui[class*="left action"].input input[type=password],.ui.form .ui[class*="left action"].input input[type=search],.ui.form .ui[class*="left action"].input input[type=tel],.ui.form .ui[class*="left action"].input input[type=text],.ui.form .ui[class*="left action"].input input[type=time],.ui.form .ui[class*="left action"].input input[type=url]{border-bottom-left-radius:0;border-top-left-radius:0}.ui.form textarea:focus{color:rgba(0,0,0,.95);border-color:#85b7d9;border-radius:.28571429rem;background:#fff;box-shadow:inset 0 0 0 0 rgba(34,36,38,.35);-webkit-appearance:none}.ui.form.error .error.message:not(:empty){display:block}.ui.form.error .compact.error.message:not(:empty){display:inline-block}.ui.form.error .icon.error.message:not(:empty){display:flex}.ui.form .field.error .error.message:not(:empty),.ui.form .fields.error .error.message:not(:empty){display:block}.ui.form .field.error .compact.error.message:not(:empty),.ui.form .fields.error .compact.error.message:not(:empty){display:inline-block}.ui.form .field.error .icon.error.message:not(:empty),.ui.form .fields.error .icon.error.message:not(:empty){display:flex}.ui.ui.form .field.error .input,.ui.ui.form .field.error label,.ui.ui.form .fields.error .field .input,.ui.ui.form .fields.error .field label{color:#9f3a38}.ui.form .field.error .corner.label,.ui.form .fields.error .field .corner.label{border-color:#9f3a38;color:#fff}.ui.form .field.error input:not([type]),.ui.form .field.error input[type=date],.ui.form .field.error input[type=datetime-local],.ui.form .field.error input[type=email],.ui.form .field.error input[type=file],.ui.form .field.error input[type=number],.ui.form .field.error input[type=password],.ui.form .field.error input[type=search],.ui.form .field.error input[type=tel],.ui.form .field.error input[type=text],.ui.form .field.error input[type=time],.ui.form .field.error input[type=url],.ui.form .field.error select,.ui.form .field.error textarea,.ui.form .fields.error .field input:not([type]),.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=datetime-local],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=file],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=search],.ui.form .fields.error .field input[type=tel],.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=time],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field select,.ui.form .fields.error .field textarea{color:#9f3a38;background:#fff6f6;border-color:#e0b4b4;border-radius:"";box-shadow:none}.ui.form .field.error input:not([type]):focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=datetime-local]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=file]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=search]:focus,.ui.form .field.error input[type=tel]:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=time]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error select:focus,.ui.form .field.error textarea:focus{background:#fff6f6;border-color:#e0b4b4;color:#9f3a38;box-shadow:none}.ui.form .field.error select{-webkit-appearance:menulist-button}.ui.form .field.error .transparent.input input,.ui.form .field.error .transparent.input textarea,.ui.form .field.error input.transparent,.ui.form .field.error textarea.transparent{background-color:#fff6f6!important;color:#9f3a38!important}.ui.form .error.error input:-webkit-autofill{box-shadow:inset 0 0 0 100px #fffaf0!important;border-color:#e0b4b4!important}.ui.form .error ::-webkit-input-placeholder{color:#e7bdbc}.ui.form .error :-ms-input-placeholder{color:#e7bdbc!important}.ui.form .error ::-moz-placeholder{color:#e7bdbc}.ui.form .error :focus::-webkit-input-placeholder{color:#da9796}.ui.form .error :focus:-ms-input-placeholder{color:#da9796!important}.ui.form .error :focus::-moz-placeholder{color:#da9796}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item,.ui.form .field.error .ui.dropdown .text,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item{background:#fff6f6;color:#9f3a38}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown:hover,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown:hover{border-color:#e0b4b4!important}.ui.form .field.error .ui.dropdown:hover .menu,.ui.form .fields.error .field .ui.dropdown:hover .menu{border-color:#e0b4b4}.ui.form .field.error .ui.multiple.selection.dropdown>.label,.ui.form .fields.error .field .ui.multiple.selection.dropdown>.label{background-color:#eacbcb;color:#9f3a38}.ui.form .field.error .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .selected.item,.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .fields.error .field .ui.dropdown .menu .selected.item{background-color:#fbe7e7}.ui.form .field.error .ui.dropdown .menu .active.item,.ui.form .fields.error .field .ui.dropdown .menu .active.item{background-color:#fdcfcf!important}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label{color:#9f3a38}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before{background:#fff6f6;border-color:#e0b4b4}.ui.form .field.error .checkbox .box:after,.ui.form .field.error .checkbox label:after,.ui.form .fields.error .field .checkbox .box:after,.ui.form .fields.error .field .checkbox label:after{color:#9f3a38}.ui.form.info .info.message:not(:empty){display:block}.ui.form.info .compact.info.message:not(:empty){display:inline-block}.ui.form.info .icon.info.message:not(:empty){display:flex}.ui.form .field.info .info.message:not(:empty),.ui.form .fields.info .info.message:not(:empty){display:block}.ui.form .field.info .compact.info.message:not(:empty),.ui.form .fields.info .compact.info.message:not(:empty){display:inline-block}.ui.form .field.info .icon.info.message:not(:empty),.ui.form .fields.info .icon.info.message:not(:empty){display:flex}.ui.ui.form .field.info .input,.ui.ui.form .field.info label,.ui.ui.form .fields.info .field .input,.ui.ui.form .fields.info .field label{color:#276f86}.ui.form .field.info .corner.label,.ui.form .fields.info .field .corner.label{border-color:#276f86;color:#fff}.ui.form .field.info input:not([type]),.ui.form .field.info input[type=date],.ui.form .field.info input[type=datetime-local],.ui.form .field.info input[type=email],.ui.form .field.info input[type=file],.ui.form .field.info input[type=number],.ui.form .field.info input[type=password],.ui.form .field.info input[type=search],.ui.form .field.info input[type=tel],.ui.form .field.info input[type=text],.ui.form .field.info input[type=time],.ui.form .field.info input[type=url],.ui.form .field.info select,.ui.form .field.info textarea,.ui.form .fields.info .field input:not([type]),.ui.form .fields.info .field input[type=date],.ui.form .fields.info .field input[type=datetime-local],.ui.form .fields.info .field input[type=email],.ui.form .fields.info .field input[type=file],.ui.form .fields.info .field input[type=number],.ui.form .fields.info .field input[type=password],.ui.form .fields.info .field input[type=search],.ui.form .fields.info .field input[type=tel],.ui.form .fields.info .field input[type=text],.ui.form .fields.info .field input[type=time],.ui.form .fields.info .field input[type=url],.ui.form .fields.info .field select,.ui.form .fields.info .field textarea{color:#276f86;background:#f8ffff;border-color:#a9d5de;border-radius:"";box-shadow:none}.ui.form .field.info input:not([type]):focus,.ui.form .field.info input[type=date]:focus,.ui.form .field.info input[type=datetime-local]:focus,.ui.form .field.info input[type=email]:focus,.ui.form .field.info input[type=file]:focus,.ui.form .field.info input[type=number]:focus,.ui.form .field.info input[type=password]:focus,.ui.form .field.info input[type=search]:focus,.ui.form .field.info input[type=tel]:focus,.ui.form .field.info input[type=text]:focus,.ui.form .field.info input[type=time]:focus,.ui.form .field.info input[type=url]:focus,.ui.form .field.info select:focus,.ui.form .field.info textarea:focus{background:#f8ffff;border-color:#a9d5de;color:#276f86;box-shadow:none}.ui.form .field.info select{-webkit-appearance:menulist-button}.ui.form .field.info .transparent.input input,.ui.form .field.info .transparent.input textarea,.ui.form .field.info input.transparent,.ui.form .field.info textarea.transparent{background-color:#f8ffff!important;color:#276f86!important}.ui.form .info.info input:-webkit-autofill{box-shadow:inset 0 0 0 100px #f0faff!important;border-color:#b3e0e0!important}.ui.form .info ::-webkit-input-placeholder{color:#98cfe1}.ui.form .info :-ms-input-placeholder{color:#98cfe1!important}.ui.form .info ::-moz-placeholder{color:#98cfe1}.ui.form .info :focus::-webkit-input-placeholder{color:#70bdd6}.ui.form .info :focus:-ms-input-placeholder{color:#70bdd6!important}.ui.form .info :focus::-moz-placeholder{color:#70bdd6}.ui.form .field.info .ui.dropdown,.ui.form .field.info .ui.dropdown .item,.ui.form .field.info .ui.dropdown .text,.ui.form .fields.info .field .ui.dropdown,.ui.form .fields.info .field .ui.dropdown .item{background:#f8ffff;color:#276f86}.ui.form .field.info .ui.dropdown,.ui.form .field.info .ui.dropdown:hover,.ui.form .fields.info .field .ui.dropdown,.ui.form .fields.info .field .ui.dropdown:hover{border-color:#a9d5de!important}.ui.form .field.info .ui.dropdown:hover .menu,.ui.form .fields.info .field .ui.dropdown:hover .menu{border-color:#a9d5de}.ui.form .field.info .ui.multiple.selection.dropdown>.label,.ui.form .fields.info .field .ui.multiple.selection.dropdown>.label{background-color:#cce3ea;color:#276f86}.ui.form .field.info .ui.dropdown .menu .item:hover,.ui.form .field.info .ui.dropdown .menu .selected.item,.ui.form .fields.info .field .ui.dropdown .menu .item:hover,.ui.form .fields.info .field .ui.dropdown .menu .selected.item{background-color:#e9f2fb}.ui.form .field.info .ui.dropdown .menu .active.item,.ui.form .fields.info .field .ui.dropdown .menu .active.item{background-color:#cef1fd!important}.ui.form .field.info .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.info .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) label{color:#276f86}.ui.form .field.info .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.info .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.info .field .checkbox:not(.toggle):not(.slider) label:before{background:#f8ffff;border-color:#a9d5de}.ui.form .field.info .checkbox .box:after,.ui.form .field.info .checkbox label:after,.ui.form .fields.info .field .checkbox .box:after,.ui.form .fields.info .field .checkbox label:after{color:#276f86}.ui.form.success .success.message:not(:empty){display:block}.ui.form.success .compact.success.message:not(:empty){display:inline-block}.ui.form.success .icon.success.message:not(:empty){display:flex}.ui.form .field.success .success.message:not(:empty),.ui.form .fields.success .success.message:not(:empty){display:block}.ui.form .field.success .compact.success.message:not(:empty),.ui.form .fields.success .compact.success.message:not(:empty){display:inline-block}.ui.form .field.success .icon.success.message:not(:empty),.ui.form .fields.success .icon.success.message:not(:empty){display:flex}.ui.ui.form .field.success .input,.ui.ui.form .field.success label,.ui.ui.form .fields.success .field .input,.ui.ui.form .fields.success .field label{color:#2c662d}.ui.form .field.success .corner.label,.ui.form .fields.success .field .corner.label{border-color:#2c662d;color:#fff}.ui.form .field.success input:not([type]),.ui.form .field.success input[type=date],.ui.form .field.success input[type=datetime-local],.ui.form .field.success input[type=email],.ui.form .field.success input[type=file],.ui.form .field.success input[type=number],.ui.form .field.success input[type=password],.ui.form .field.success input[type=search],.ui.form .field.success input[type=tel],.ui.form .field.success input[type=text],.ui.form .field.success input[type=time],.ui.form .field.success input[type=url],.ui.form .field.success select,.ui.form .field.success textarea,.ui.form .fields.success .field input:not([type]),.ui.form .fields.success .field input[type=date],.ui.form .fields.success .field input[type=datetime-local],.ui.form .fields.success .field input[type=email],.ui.form .fields.success .field input[type=file],.ui.form .fields.success .field input[type=number],.ui.form .fields.success .field input[type=password],.ui.form .fields.success .field input[type=search],.ui.form .fields.success .field input[type=tel],.ui.form .fields.success .field input[type=text],.ui.form .fields.success .field input[type=time],.ui.form .fields.success .field input[type=url],.ui.form .fields.success .field select,.ui.form .fields.success .field textarea{color:#2c662d;background:#fcfff5;border-color:#a3c293;border-radius:"";box-shadow:none}.ui.form .field.success input:not([type]):focus,.ui.form .field.success input[type=date]:focus,.ui.form .field.success input[type=datetime-local]:focus,.ui.form .field.success input[type=email]:focus,.ui.form .field.success input[type=file]:focus,.ui.form .field.success input[type=number]:focus,.ui.form .field.success input[type=password]:focus,.ui.form .field.success input[type=search]:focus,.ui.form .field.success input[type=tel]:focus,.ui.form .field.success input[type=text]:focus,.ui.form .field.success input[type=time]:focus,.ui.form .field.success input[type=url]:focus,.ui.form .field.success select:focus,.ui.form .field.success textarea:focus{background:#fcfff5;border-color:#a3c293;color:#2c662d;box-shadow:none}.ui.form .field.success select{-webkit-appearance:menulist-button}.ui.form .field.success .transparent.input input,.ui.form .field.success .transparent.input textarea,.ui.form .field.success input.transparent,.ui.form .field.success textarea.transparent{background-color:#fcfff5!important;color:#2c662d!important}.ui.form .success.success input:-webkit-autofill{box-shadow:inset 0 0 0 100px #f0fff0!important;border-color:#bee0b3!important}.ui.form .success ::-webkit-input-placeholder{color:#8fcf90}.ui.form .success :-ms-input-placeholder{color:#8fcf90!important}.ui.form .success ::-moz-placeholder{color:#8fcf90}.ui.form .success :focus::-webkit-input-placeholder{color:#6cbf6d}.ui.form .success :focus:-ms-input-placeholder{color:#6cbf6d!important}.ui.form .success :focus::-moz-placeholder{color:#6cbf6d}.ui.form .field.success .ui.dropdown,.ui.form .field.success .ui.dropdown .item,.ui.form .field.success .ui.dropdown .text,.ui.form .fields.success .field .ui.dropdown,.ui.form .fields.success .field .ui.dropdown .item{background:#fcfff5;color:#2c662d}.ui.form .field.success .ui.dropdown,.ui.form .field.success .ui.dropdown:hover,.ui.form .fields.success .field .ui.dropdown,.ui.form .fields.success .field .ui.dropdown:hover{border-color:#a3c293!important}.ui.form .field.success .ui.dropdown:hover .menu,.ui.form .fields.success .field .ui.dropdown:hover .menu{border-color:#a3c293}.ui.form .field.success .ui.multiple.selection.dropdown>.label,.ui.form .fields.success .field .ui.multiple.selection.dropdown>.label{background-color:#cceacc;color:#2c662d}.ui.form .field.success .ui.dropdown .menu .item:hover,.ui.form .field.success .ui.dropdown .menu .selected.item,.ui.form .fields.success .field .ui.dropdown .menu .item:hover,.ui.form .fields.success .field .ui.dropdown .menu .selected.item{background-color:#e9fbe9}.ui.form .field.success .ui.dropdown .menu .active.item,.ui.form .fields.success .field .ui.dropdown .menu .active.item{background-color:#dafdce!important}.ui.form .field.success .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.success .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) label{color:#2c662d}.ui.form .field.success .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.success .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.success .field .checkbox:not(.toggle):not(.slider) label:before{background:#fcfff5;border-color:#a3c293}.ui.form .field.success .checkbox .box:after,.ui.form .field.success .checkbox label:after,.ui.form .fields.success .field .checkbox .box:after,.ui.form .fields.success .field .checkbox label:after{color:#2c662d}.ui.form.warning .warning.message:not(:empty){display:block}.ui.form.warning .compact.warning.message:not(:empty){display:inline-block}.ui.form.warning .icon.warning.message:not(:empty){display:flex}.ui.form .field.warning .warning.message:not(:empty),.ui.form .fields.warning .warning.message:not(:empty){display:block}.ui.form .field.warning .compact.warning.message:not(:empty),.ui.form .fields.warning .compact.warning.message:not(:empty){display:inline-block}.ui.form .field.warning .icon.warning.message:not(:empty),.ui.form .fields.warning .icon.warning.message:not(:empty){display:flex}.ui.ui.form .field.warning .input,.ui.ui.form .field.warning label,.ui.ui.form .fields.warning .field .input,.ui.ui.form .fields.warning .field label{color:#573a08}.ui.form .field.warning .corner.label,.ui.form .fields.warning .field .corner.label{border-color:#573a08;color:#fff}.ui.form .field.warning input:not([type]),.ui.form .field.warning input[type=date],.ui.form .field.warning input[type=datetime-local],.ui.form .field.warning input[type=email],.ui.form .field.warning input[type=file],.ui.form .field.warning input[type=number],.ui.form .field.warning input[type=password],.ui.form .field.warning input[type=search],.ui.form .field.warning input[type=tel],.ui.form .field.warning input[type=text],.ui.form .field.warning input[type=time],.ui.form .field.warning input[type=url],.ui.form .field.warning select,.ui.form .field.warning textarea,.ui.form .fields.warning .field input:not([type]),.ui.form .fields.warning .field input[type=date],.ui.form .fields.warning .field input[type=datetime-local],.ui.form .fields.warning .field input[type=email],.ui.form .fields.warning .field input[type=file],.ui.form .fields.warning .field input[type=number],.ui.form .fields.warning .field input[type=password],.ui.form .fields.warning .field input[type=search],.ui.form .fields.warning .field input[type=tel],.ui.form .fields.warning .field input[type=text],.ui.form .fields.warning .field input[type=time],.ui.form .fields.warning .field input[type=url],.ui.form .fields.warning .field select,.ui.form .fields.warning .field textarea{color:#573a08;background:#fffaf3;border-color:#c9ba9b;border-radius:"";box-shadow:none}.ui.form .field.warning input:not([type]):focus,.ui.form .field.warning input[type=date]:focus,.ui.form .field.warning input[type=datetime-local]:focus,.ui.form .field.warning input[type=email]:focus,.ui.form .field.warning input[type=file]:focus,.ui.form .field.warning input[type=number]:focus,.ui.form .field.warning input[type=password]:focus,.ui.form .field.warning input[type=search]:focus,.ui.form .field.warning input[type=tel]:focus,.ui.form .field.warning input[type=text]:focus,.ui.form .field.warning input[type=time]:focus,.ui.form .field.warning input[type=url]:focus,.ui.form .field.warning select:focus,.ui.form .field.warning textarea:focus{background:#fffaf3;border-color:#c9ba9b;color:#573a08;box-shadow:none}.ui.form .field.warning select{-webkit-appearance:menulist-button}.ui.form .field.warning .transparent.input input,.ui.form .field.warning .transparent.input textarea,.ui.form .field.warning input.transparent,.ui.form .field.warning textarea.transparent{background-color:#fffaf3!important;color:#573a08!important}.ui.form .warning.warning input:-webkit-autofill{box-shadow:inset 0 0 0 100px #ffffe0!important;border-color:#e0e0b3!important}.ui.form .warning ::-webkit-input-placeholder{color:#edad3e}.ui.form .warning :-ms-input-placeholder{color:#edad3e!important}.ui.form .warning ::-moz-placeholder{color:#edad3e}.ui.form .warning :focus::-webkit-input-placeholder{color:#e39715}.ui.form .warning :focus:-ms-input-placeholder{color:#e39715!important}.ui.form .warning :focus::-moz-placeholder{color:#e39715}.ui.form .field.warning .ui.dropdown,.ui.form .field.warning .ui.dropdown .item,.ui.form .field.warning .ui.dropdown .text,.ui.form .fields.warning .field .ui.dropdown,.ui.form .fields.warning .field .ui.dropdown .item{background:#fffaf3;color:#573a08}.ui.form .field.warning .ui.dropdown,.ui.form .field.warning .ui.dropdown:hover,.ui.form .fields.warning .field .ui.dropdown,.ui.form .fields.warning .field .ui.dropdown:hover{border-color:#c9ba9b!important}.ui.form .field.warning .ui.dropdown:hover .menu,.ui.form .fields.warning .field .ui.dropdown:hover .menu{border-color:#c9ba9b}.ui.form .field.warning .ui.multiple.selection.dropdown>.label,.ui.form .fields.warning .field .ui.multiple.selection.dropdown>.label{background-color:#eaeacc;color:#573a08}.ui.form .field.warning .ui.dropdown .menu .item:hover,.ui.form .field.warning .ui.dropdown .menu .selected.item,.ui.form .fields.warning .field .ui.dropdown .menu .item:hover,.ui.form .fields.warning .field .ui.dropdown .menu .selected.item{background-color:#fbfbe9}.ui.form .field.warning .ui.dropdown .menu .active.item,.ui.form .fields.warning .field .ui.dropdown .menu .active.item{background-color:#fdfdce!important}.ui.form .field.warning .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.warning .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) label{color:#573a08}.ui.form .field.warning .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.warning .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.warning .field .checkbox:not(.toggle):not(.slider) label:before{background:#fffaf3;border-color:#c9ba9b}.ui.form .field.warning .checkbox .box:after,.ui.form .field.warning .checkbox label:after,.ui.form .fields.warning .field .checkbox .box:after,.ui.form .fields.warning .field .checkbox label:after{color:#573a08}.ui.form .disabled.field,.ui.form .disabled.fields .field,.ui.form .field :disabled{pointer-events:none;opacity:.45}.ui.form .field.disabled>label,.ui.form .fields.disabled>label{opacity:.45}.ui.form .field.disabled :disabled{opacity:1}.ui.loading.form{position:relative;cursor:default;pointer-events:none}.ui.loading.form:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;z-index:100}.ui.loading.form.segments:before{border-radius:.28571429rem}.ui.loading.form:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.ui.form .required.field>.checkbox:after,.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>label:after,.ui.form label.required:after{margin:-.2em 0 0 .2em;content:"*";color:#db2828}.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>label:after,.ui.form label.required:after{display:inline-block;vertical-align:top}.ui.form .required.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after{position:absolute;top:0;left:100%}.ui.form .inverted.segment .ui.checkbox .box,.ui.form .inverted.segment .ui.checkbox label,.ui.form .inverted.segment label,.ui.inverted.form .inline.field>label,.ui.inverted.form .inline.field>p,.ui.inverted.form .inline.fields .field>label,.ui.inverted.form .inline.fields .field>p,.ui.inverted.form .inline.fields>label,.ui.inverted.form .ui.checkbox .box,.ui.inverted.form .ui.checkbox label,.ui.inverted.form label{color:hsla(0,0%,100%,.9)}.ui.inverted.loading.form{color:#fff}.ui.inverted.loading.form:before{background:rgba(0,0,0,.85)}.ui.inverted.form input:not([type]),.ui.inverted.form input[type=date],.ui.inverted.form input[type=datetime-local],.ui.inverted.form input[type=email],.ui.inverted.form input[type=file],.ui.inverted.form input[type=number],.ui.inverted.form input[type=password],.ui.inverted.form input[type=search],.ui.inverted.form input[type=tel],.ui.inverted.form input[type=text],.ui.inverted.form input[type=time],.ui.inverted.form input[type=url]{background:#fff;border-color:hsla(0,0%,100%,.1);color:rgba(0,0,0,.87);box-shadow:none}.ui.form .grouped.fields{display:block;margin:0 0 1em}.ui.form .grouped.fields:last-child{margin-bottom:0}.ui.form .grouped.fields>label{margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form .grouped.fields .field,.ui.form .grouped.inline.fields .field{display:block;margin:.5em 0;padding:0}.ui.form .grouped.inline.fields .ui.checkbox{margin-bottom:.4em}.ui.form .fields{display:flex;flex-direction:row;margin:0 -.5em 1em}.ui.form .fields>.field{flex:0 1 auto;padding-left:.5em;padding-right:.5em}.ui.form .fields>.field:first-child{border-left:none;box-shadow:none}.ui.form .two.fields>.field,.ui.form .two.fields>.fields{width:50%}.ui.form .three.fields>.field,.ui.form .three.fields>.fields{width:33.33333333%}.ui.form .four.fields>.field,.ui.form .four.fields>.fields{width:25%}.ui.form .five.fields>.field,.ui.form .five.fields>.fields{width:20%}.ui.form .six.fields>.field,.ui.form .six.fields>.fields{width:16.66666667%}.ui.form .seven.fields>.field,.ui.form .seven.fields>.fields{width:14.28571429%}.ui.form .eight.fields>.field,.ui.form .eight.fields>.fields{width:12.5%}.ui.form .nine.fields>.field,.ui.form .nine.fields>.fields{width:11.11111111%}.ui.form .ten.fields>.field,.ui.form .ten.fields>.fields{width:10%}@media only screen and (max-width:767.98px){.ui.form .fields{flex-wrap:wrap;margin-bottom:0}.ui.form:not(.unstackable) .fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.fields{width:100%;margin:0 0 1em}}.ui.form .fields .wide.field{width:6.25%;padding-left:.5em;padding-right:.5em}.ui.form .one.wide.field{width:6.25%}.ui.form .two.wide.field{width:12.5%}.ui.form .three.wide.field{width:18.75%}.ui.form .four.wide.field{width:25%}.ui.form .five.wide.field{width:31.25%}.ui.form .six.wide.field{width:37.5%}.ui.form .seven.wide.field{width:43.75%}.ui.form .eight.wide.field{width:50%}.ui.form .nine.wide.field{width:56.25%}.ui.form .ten.wide.field{width:62.5%}.ui.form .eleven.wide.field{width:68.75%}.ui.form .twelve.wide.field{width:75%}.ui.form .thirteen.wide.field{width:81.25%}.ui.form .fourteen.wide.field{width:87.5%}.ui.form .fifteen.wide.field{width:93.75%}.ui.form .sixteen.wide.field{width:100%}.ui.form [class*="equal width"].fields>.field,.ui[class*="equal width"].form .fields>.field{width:100%;flex:1 1 auto}.ui.form .inline.fields{margin:0 0 1em;align-items:center}.ui.form .inline.fields .field{margin:0;padding:0 1em 0 0}.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields>label{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:baseline;font-size:.92857143em;font-weight:700;color:rgba(0,0,0,.87);text-transform:none}.ui.form .inline.fields>label{margin:.035714em 1em 0 0}.ui.form .inline.field>input,.ui.form .inline.field>select,.ui.form .inline.fields .field>input,.ui.form .inline.fields .field>select{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.field .calendar:not(.popup),.ui.form .inline.fields .field .calendar:not(.popup){display:inline-block}.ui.form .inline.field .calendar:not(.popup)>.input>input,.ui.form .inline.fields .field .calendar:not(.popup)>.input>input{width:13.11em}.ui.form .inline.field>:first-child,.ui.form .inline.fields .field>:first-child{margin:0 .85714286em 0 0}.ui.form .inline.field>:only-child,.ui.form .inline.fields .field>:only-child{margin:0}.ui.form .inline.fields .wide.field{display:flex;align-items:center}.ui.form .inline.fields .wide.field>input,.ui.form .inline.fields .wide.field>select{width:100%}.ui.form,.ui.form .field .dropdown,.ui.form .field .dropdown .menu>.item{font-size:1rem}.ui.mini.form,.ui.mini.form .field .dropdown,.ui.mini.form .field .dropdown .menu>.item{font-size:.78571429rem}.ui.tiny.form,.ui.tiny.form .field .dropdown,.ui.tiny.form .field .dropdown .menu>.item{font-size:.85714286rem}.ui.small.form,.ui.small.form .field .dropdown,.ui.small.form .field .dropdown .menu>.item{font-size:.92857143rem}.ui.large.form,.ui.large.form .field .dropdown,.ui.large.form .field .dropdown .menu>.item{font-size:1.14285714rem}.ui.big.form,.ui.big.form .field .dropdown,.ui.big.form .field .dropdown .menu>.item{font-size:1.28571429rem}.ui.huge.form,.ui.huge.form .field .dropdown,.ui.huge.form .field .dropdown .menu>.item{font-size:1.42857143rem}.ui.massive.form,.ui.massive.form .field .dropdown,.ui.massive.form .field .dropdown .menu>.item{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Grid
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.grid{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch;padding:0;margin:-1rem}.ui.relaxed.grid{margin-left:-1.5rem;margin-right:-1.5rem}.ui[class*="very relaxed"].grid{margin-left:-2.5rem;margin-right:-2.5rem}.ui.grid+.grid{margin-top:1rem}.ui.grid>.column:not(.row),.ui.grid>.row>.column{position:relative;display:inline-block;width:6.25%;padding-left:1rem;padding-right:1rem;vertical-align:top}.ui.grid>*{padding-left:1rem;padding-right:1rem}.ui.grid>.row{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:inherit;align-items:stretch;width:100%!important;padding:1rem 0}.ui.grid>.column:not(.row){padding-top:1rem;padding-bottom:1rem}.ui.grid>.row>.column{margin-top:0;margin-bottom:0}.ui.grid>.row>.column>img,.ui.grid>.row>img{max-width:100%}.ui.grid>.ui.grid:first-child{margin-top:0}.ui.grid>.ui.grid:last-child{margin-bottom:0}.ui.aligned.grid .column>.segment:not(.compact):not(.attached),.ui.grid .aligned.row>.column>.segment:not(.compact):not(.attached){width:100%}.ui.grid .row+.ui.divider{flex-grow:1;margin:1rem}.ui.grid .column+.ui.vertical.divider{height:calc(50% - 1rem)}.ui.grid>.column:last-child>.horizontal.segment,.ui.grid>.row>.column:last-child>.horizontal.segment{box-shadow:none}@media only screen and (max-width:767.98px){.ui.page.grid{width:auto;padding-left:0;padding-right:0;margin-left:0;margin-right:0}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:2em;padding-right:2em}}@media only screen and (min-width:992px) and (max-width:1199.98px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:3%;padding-right:3%}}@media only screen and (min-width:1200px) and (max-width:1919.98px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:15%;padding-right:15%}}@media only screen and (min-width:1920px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:23%;padding-right:23%}}.ui.grid>.column:only-child,.ui.grid>.row>.column:only-child,.ui[class*="one column"].grid>.column:not(.row),.ui[class*="one column"].grid>.row>.column{width:100%}.ui[class*="two column"].grid>.column:not(.row),.ui[class*="two column"].grid>.row>.column{width:50%}.ui[class*="three column"].grid>.column:not(.row),.ui[class*="three column"].grid>.row>.column{width:33.33333333%}.ui[class*="four column"].grid>.column:not(.row),.ui[class*="four column"].grid>.row>.column{width:25%}.ui[class*="five column"].grid>.column:not(.row),.ui[class*="five column"].grid>.row>.column{width:20%}.ui[class*="six column"].grid>.column:not(.row),.ui[class*="six column"].grid>.row>.column{width:16.66666667%}.ui[class*="seven column"].grid>.column:not(.row),.ui[class*="seven column"].grid>.row>.column{width:14.28571429%}.ui[class*="eight column"].grid>.column:not(.row),.ui[class*="eight column"].grid>.row>.column{width:12.5%}.ui[class*="nine column"].grid>.column:not(.row),.ui[class*="nine column"].grid>.row>.column{width:11.11111111%}.ui[class*="ten column"].grid>.column:not(.row),.ui[class*="ten column"].grid>.row>.column{width:10%}.ui[class*="eleven column"].grid>.column:not(.row),.ui[class*="eleven column"].grid>.row>.column{width:9.09090909%}.ui[class*="twelve column"].grid>.column:not(.row),.ui[class*="twelve column"].grid>.row>.column{width:8.33333333%}.ui[class*="thirteen column"].grid>.column:not(.row),.ui[class*="thirteen column"].grid>.row>.column{width:7.69230769%}.ui[class*="fourteen column"].grid>.column:not(.row),.ui[class*="fourteen column"].grid>.row>.column{width:7.14285714%}.ui[class*="fifteen column"].grid>.column:not(.row),.ui[class*="fifteen column"].grid>.row>.column{width:6.66666667%}.ui[class*="sixteen column"].grid>.column:not(.row),.ui[class*="sixteen column"].grid>.row>.column{width:6.25%}.ui.grid>[class*="one column"].row>.column{width:100%!important}.ui.grid>[class*="two column"].row>.column{width:50%!important}.ui.grid>[class*="three column"].row>.column{width:33.33333333%!important}.ui.grid>[class*="four column"].row>.column{width:25%!important}.ui.grid>[class*="five column"].row>.column{width:20%!important}.ui.grid>[class*="six column"].row>.column{width:16.66666667%!important}.ui.grid>[class*="seven column"].row>.column{width:14.28571429%!important}.ui.grid>[class*="eight column"].row>.column{width:12.5%!important}.ui.grid>[class*="nine column"].row>.column{width:11.11111111%!important}.ui.grid>[class*="ten column"].row>.column{width:10%!important}.ui.grid>[class*="eleven column"].row>.column{width:9.09090909%!important}.ui.grid>[class*="twelve column"].row>.column{width:8.33333333%!important}.ui.grid>[class*="thirteen column"].row>.column{width:7.69230769%!important}.ui.grid>[class*="fourteen column"].row>.column{width:7.14285714%!important}.ui.grid>[class*="fifteen column"].row>.column{width:6.66666667%!important}.ui.grid>[class*="sixteen column"].row>.column{width:6.25%!important}.ui.celled.page.grid{box-shadow:none}.ui.column.grid>[class*="one wide"].column,.ui.grid>.column.row>[class*="one wide"].column,.ui.grid>.row>[class*="one wide"].column,.ui.grid>[class*="one wide"].column{width:6.25%!important}.ui.column.grid>[class*="two wide"].column,.ui.grid>.column.row>[class*="two wide"].column,.ui.grid>.row>[class*="two wide"].column,.ui.grid>[class*="two wide"].column{width:12.5%!important}.ui.column.grid>[class*="three wide"].column,.ui.grid>.column.row>[class*="three wide"].column,.ui.grid>.row>[class*="three wide"].column,.ui.grid>[class*="three wide"].column{width:18.75%!important}.ui.column.grid>[class*="four wide"].column,.ui.grid>.column.row>[class*="four wide"].column,.ui.grid>.row>[class*="four wide"].column,.ui.grid>[class*="four wide"].column{width:25%!important}.ui.column.grid>[class*="five wide"].column,.ui.grid>.column.row>[class*="five wide"].column,.ui.grid>.row>[class*="five wide"].column,.ui.grid>[class*="five wide"].column{width:31.25%!important}.ui.column.grid>[class*="six wide"].column,.ui.grid>.column.row>[class*="six wide"].column,.ui.grid>.row>[class*="six wide"].column,.ui.grid>[class*="six wide"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide"].column,.ui.grid>.column.row>[class*="seven wide"].column,.ui.grid>.row>[class*="seven wide"].column,.ui.grid>[class*="seven wide"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide"].column,.ui.grid>.column.row>[class*="eight wide"].column,.ui.grid>.row>[class*="eight wide"].column,.ui.grid>[class*="eight wide"].column{width:50%!important}.ui.column.grid>[class*="nine wide"].column,.ui.grid>.column.row>[class*="nine wide"].column,.ui.grid>.row>[class*="nine wide"].column,.ui.grid>[class*="nine wide"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide"].column,.ui.grid>.column.row>[class*="ten wide"].column,.ui.grid>.row>[class*="ten wide"].column,.ui.grid>[class*="ten wide"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide"].column,.ui.grid>.column.row>[class*="eleven wide"].column,.ui.grid>.row>[class*="eleven wide"].column,.ui.grid>[class*="eleven wide"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide"].column,.ui.grid>.column.row>[class*="twelve wide"].column,.ui.grid>.row>[class*="twelve wide"].column,.ui.grid>[class*="twelve wide"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide"].column,.ui.grid>.column.row>[class*="thirteen wide"].column,.ui.grid>.row>[class*="thirteen wide"].column,.ui.grid>[class*="thirteen wide"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide"].column,.ui.grid>.column.row>[class*="fourteen wide"].column,.ui.grid>.row>[class*="fourteen wide"].column,.ui.grid>[class*="fourteen wide"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide"].column,.ui.grid>.column.row>[class*="fifteen wide"].column,.ui.grid>.row>[class*="fifteen wide"].column,.ui.grid>[class*="fifteen wide"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide"].column,.ui.grid>.column.row>[class*="sixteen wide"].column,.ui.grid>.row>[class*="sixteen wide"].column,.ui.grid>[class*="sixteen wide"].column{width:100%!important}@media only screen and (min-width:320px) and (max-width:767.98px){.ui.column.grid>[class*="one wide mobile"].column,.ui.grid>.column.row>[class*="one wide mobile"].column,.ui.grid>.row>[class*="one wide mobile"].column,.ui.grid>[class*="one wide mobile"].column{width:6.25%!important}.ui.column.grid>[class*="two wide mobile"].column,.ui.grid>.column.row>[class*="two wide mobile"].column,.ui.grid>.row>[class*="two wide mobile"].column,.ui.grid>[class*="two wide mobile"].column{width:12.5%!important}.ui.column.grid>[class*="three wide mobile"].column,.ui.grid>.column.row>[class*="three wide mobile"].column,.ui.grid>.row>[class*="three wide mobile"].column,.ui.grid>[class*="three wide mobile"].column{width:18.75%!important}.ui.column.grid>[class*="four wide mobile"].column,.ui.grid>.column.row>[class*="four wide mobile"].column,.ui.grid>.row>[class*="four wide mobile"].column,.ui.grid>[class*="four wide mobile"].column{width:25%!important}.ui.column.grid>[class*="five wide mobile"].column,.ui.grid>.column.row>[class*="five wide mobile"].column,.ui.grid>.row>[class*="five wide mobile"].column,.ui.grid>[class*="five wide mobile"].column{width:31.25%!important}.ui.column.grid>[class*="six wide mobile"].column,.ui.grid>.column.row>[class*="six wide mobile"].column,.ui.grid>.row>[class*="six wide mobile"].column,.ui.grid>[class*="six wide mobile"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide mobile"].column,.ui.grid>.column.row>[class*="seven wide mobile"].column,.ui.grid>.row>[class*="seven wide mobile"].column,.ui.grid>[class*="seven wide mobile"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide mobile"].column,.ui.grid>.column.row>[class*="eight wide mobile"].column,.ui.grid>.row>[class*="eight wide mobile"].column,.ui.grid>[class*="eight wide mobile"].column{width:50%!important}.ui.column.grid>[class*="nine wide mobile"].column,.ui.grid>.column.row>[class*="nine wide mobile"].column,.ui.grid>.row>[class*="nine wide mobile"].column,.ui.grid>[class*="nine wide mobile"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide mobile"].column,.ui.grid>.column.row>[class*="ten wide mobile"].column,.ui.grid>.row>[class*="ten wide mobile"].column,.ui.grid>[class*="ten wide mobile"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide mobile"].column,.ui.grid>.column.row>[class*="eleven wide mobile"].column,.ui.grid>.row>[class*="eleven wide mobile"].column,.ui.grid>[class*="eleven wide mobile"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide mobile"].column,.ui.grid>.column.row>[class*="twelve wide mobile"].column,.ui.grid>.row>[class*="twelve wide mobile"].column,.ui.grid>[class*="twelve wide mobile"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide mobile"].column,.ui.grid>.column.row>[class*="thirteen wide mobile"].column,.ui.grid>.row>[class*="thirteen wide mobile"].column,.ui.grid>[class*="thirteen wide mobile"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide mobile"].column,.ui.grid>.column.row>[class*="fourteen wide mobile"].column,.ui.grid>.row>[class*="fourteen wide mobile"].column,.ui.grid>[class*="fourteen wide mobile"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide mobile"].column,.ui.grid>.column.row>[class*="fifteen wide mobile"].column,.ui.grid>.row>[class*="fifteen wide mobile"].column,.ui.grid>[class*="fifteen wide mobile"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide mobile"].column,.ui.grid>.column.row>[class*="sixteen wide mobile"].column,.ui.grid>.row>[class*="sixteen wide mobile"].column,.ui.grid>[class*="sixteen wide mobile"].column{width:100%!important}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.column.grid>[class*="one wide tablet"].column,.ui.grid>.column.row>[class*="one wide tablet"].column,.ui.grid>.row>[class*="one wide tablet"].column,.ui.grid>[class*="one wide tablet"].column{width:6.25%!important}.ui.column.grid>[class*="two wide tablet"].column,.ui.grid>.column.row>[class*="two wide tablet"].column,.ui.grid>.row>[class*="two wide tablet"].column,.ui.grid>[class*="two wide tablet"].column{width:12.5%!important}.ui.column.grid>[class*="three wide tablet"].column,.ui.grid>.column.row>[class*="three wide tablet"].column,.ui.grid>.row>[class*="three wide tablet"].column,.ui.grid>[class*="three wide tablet"].column{width:18.75%!important}.ui.column.grid>[class*="four wide tablet"].column,.ui.grid>.column.row>[class*="four wide tablet"].column,.ui.grid>.row>[class*="four wide tablet"].column,.ui.grid>[class*="four wide tablet"].column{width:25%!important}.ui.column.grid>[class*="five wide tablet"].column,.ui.grid>.column.row>[class*="five wide tablet"].column,.ui.grid>.row>[class*="five wide tablet"].column,.ui.grid>[class*="five wide tablet"].column{width:31.25%!important}.ui.column.grid>[class*="six wide tablet"].column,.ui.grid>.column.row>[class*="six wide tablet"].column,.ui.grid>.row>[class*="six wide tablet"].column,.ui.grid>[class*="six wide tablet"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide tablet"].column,.ui.grid>.column.row>[class*="seven wide tablet"].column,.ui.grid>.row>[class*="seven wide tablet"].column,.ui.grid>[class*="seven wide tablet"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide tablet"].column,.ui.grid>.column.row>[class*="eight wide tablet"].column,.ui.grid>.row>[class*="eight wide tablet"].column,.ui.grid>[class*="eight wide tablet"].column{width:50%!important}.ui.column.grid>[class*="nine wide tablet"].column,.ui.grid>.column.row>[class*="nine wide tablet"].column,.ui.grid>.row>[class*="nine wide tablet"].column,.ui.grid>[class*="nine wide tablet"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide tablet"].column,.ui.grid>.column.row>[class*="ten wide tablet"].column,.ui.grid>.row>[class*="ten wide tablet"].column,.ui.grid>[class*="ten wide tablet"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide tablet"].column,.ui.grid>.column.row>[class*="eleven wide tablet"].column,.ui.grid>.row>[class*="eleven wide tablet"].column,.ui.grid>[class*="eleven wide tablet"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide tablet"].column,.ui.grid>.column.row>[class*="twelve wide tablet"].column,.ui.grid>.row>[class*="twelve wide tablet"].column,.ui.grid>[class*="twelve wide tablet"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide tablet"].column,.ui.grid>.column.row>[class*="thirteen wide tablet"].column,.ui.grid>.row>[class*="thirteen wide tablet"].column,.ui.grid>[class*="thirteen wide tablet"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide tablet"].column,.ui.grid>.column.row>[class*="fourteen wide tablet"].column,.ui.grid>.row>[class*="fourteen wide tablet"].column,.ui.grid>[class*="fourteen wide tablet"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide tablet"].column,.ui.grid>.column.row>[class*="fifteen wide tablet"].column,.ui.grid>.row>[class*="fifteen wide tablet"].column,.ui.grid>[class*="fifteen wide tablet"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide tablet"].column,.ui.grid>.column.row>[class*="sixteen wide tablet"].column,.ui.grid>.row>[class*="sixteen wide tablet"].column,.ui.grid>[class*="sixteen wide tablet"].column{width:100%!important}}@media only screen and (min-width:992px){.ui.column.grid>[class*="one wide computer"].column,.ui.grid>.column.row>[class*="one wide computer"].column,.ui.grid>.row>[class*="one wide computer"].column,.ui.grid>[class*="one wide computer"].column{width:6.25%!important}.ui.column.grid>[class*="two wide computer"].column,.ui.grid>.column.row>[class*="two wide computer"].column,.ui.grid>.row>[class*="two wide computer"].column,.ui.grid>[class*="two wide computer"].column{width:12.5%!important}.ui.column.grid>[class*="three wide computer"].column,.ui.grid>.column.row>[class*="three wide computer"].column,.ui.grid>.row>[class*="three wide computer"].column,.ui.grid>[class*="three wide computer"].column{width:18.75%!important}.ui.column.grid>[class*="four wide computer"].column,.ui.grid>.column.row>[class*="four wide computer"].column,.ui.grid>.row>[class*="four wide computer"].column,.ui.grid>[class*="four wide computer"].column{width:25%!important}.ui.column.grid>[class*="five wide computer"].column,.ui.grid>.column.row>[class*="five wide computer"].column,.ui.grid>.row>[class*="five wide computer"].column,.ui.grid>[class*="five wide computer"].column{width:31.25%!important}.ui.column.grid>[class*="six wide computer"].column,.ui.grid>.column.row>[class*="six wide computer"].column,.ui.grid>.row>[class*="six wide computer"].column,.ui.grid>[class*="six wide computer"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide computer"].column,.ui.grid>.column.row>[class*="seven wide computer"].column,.ui.grid>.row>[class*="seven wide computer"].column,.ui.grid>[class*="seven wide computer"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide computer"].column,.ui.grid>.column.row>[class*="eight wide computer"].column,.ui.grid>.row>[class*="eight wide computer"].column,.ui.grid>[class*="eight wide computer"].column{width:50%!important}.ui.column.grid>[class*="nine wide computer"].column,.ui.grid>.column.row>[class*="nine wide computer"].column,.ui.grid>.row>[class*="nine wide computer"].column,.ui.grid>[class*="nine wide computer"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide computer"].column,.ui.grid>.column.row>[class*="ten wide computer"].column,.ui.grid>.row>[class*="ten wide computer"].column,.ui.grid>[class*="ten wide computer"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide computer"].column,.ui.grid>.column.row>[class*="eleven wide computer"].column,.ui.grid>.row>[class*="eleven wide computer"].column,.ui.grid>[class*="eleven wide computer"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide computer"].column,.ui.grid>.column.row>[class*="twelve wide computer"].column,.ui.grid>.row>[class*="twelve wide computer"].column,.ui.grid>[class*="twelve wide computer"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide computer"].column,.ui.grid>.column.row>[class*="thirteen wide computer"].column,.ui.grid>.row>[class*="thirteen wide computer"].column,.ui.grid>[class*="thirteen wide computer"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide computer"].column,.ui.grid>.column.row>[class*="fourteen wide computer"].column,.ui.grid>.row>[class*="fourteen wide computer"].column,.ui.grid>[class*="fourteen wide computer"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide computer"].column,.ui.grid>.column.row>[class*="fifteen wide computer"].column,.ui.grid>.row>[class*="fifteen wide computer"].column,.ui.grid>[class*="fifteen wide computer"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide computer"].column,.ui.grid>.column.row>[class*="sixteen wide computer"].column,.ui.grid>.row>[class*="sixteen wide computer"].column,.ui.grid>[class*="sixteen wide computer"].column{width:100%!important}}@media only screen and (min-width:1200px) and (max-width:1919.98px){.ui.column.grid>[class*="one wide large screen"].column,.ui.grid>.column.row>[class*="one wide large screen"].column,.ui.grid>.row>[class*="one wide large screen"].column,.ui.grid>[class*="one wide large screen"].column{width:6.25%!important}.ui.column.grid>[class*="two wide large screen"].column,.ui.grid>.column.row>[class*="two wide large screen"].column,.ui.grid>.row>[class*="two wide large screen"].column,.ui.grid>[class*="two wide large screen"].column{width:12.5%!important}.ui.column.grid>[class*="three wide large screen"].column,.ui.grid>.column.row>[class*="three wide large screen"].column,.ui.grid>.row>[class*="three wide large screen"].column,.ui.grid>[class*="three wide large screen"].column{width:18.75%!important}.ui.column.grid>[class*="four wide large screen"].column,.ui.grid>.column.row>[class*="four wide large screen"].column,.ui.grid>.row>[class*="four wide large screen"].column,.ui.grid>[class*="four wide large screen"].column{width:25%!important}.ui.column.grid>[class*="five wide large screen"].column,.ui.grid>.column.row>[class*="five wide large screen"].column,.ui.grid>.row>[class*="five wide large screen"].column,.ui.grid>[class*="five wide large screen"].column{width:31.25%!important}.ui.column.grid>[class*="six wide large screen"].column,.ui.grid>.column.row>[class*="six wide large screen"].column,.ui.grid>.row>[class*="six wide large screen"].column,.ui.grid>[class*="six wide large screen"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide large screen"].column,.ui.grid>.column.row>[class*="seven wide large screen"].column,.ui.grid>.row>[class*="seven wide large screen"].column,.ui.grid>[class*="seven wide large screen"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide large screen"].column,.ui.grid>.column.row>[class*="eight wide large screen"].column,.ui.grid>.row>[class*="eight wide large screen"].column,.ui.grid>[class*="eight wide large screen"].column{width:50%!important}.ui.column.grid>[class*="nine wide large screen"].column,.ui.grid>.column.row>[class*="nine wide large screen"].column,.ui.grid>.row>[class*="nine wide large screen"].column,.ui.grid>[class*="nine wide large screen"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide large screen"].column,.ui.grid>.column.row>[class*="ten wide large screen"].column,.ui.grid>.row>[class*="ten wide large screen"].column,.ui.grid>[class*="ten wide large screen"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide large screen"].column,.ui.grid>.column.row>[class*="eleven wide large screen"].column,.ui.grid>.row>[class*="eleven wide large screen"].column,.ui.grid>[class*="eleven wide large screen"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide large screen"].column,.ui.grid>.column.row>[class*="twelve wide large screen"].column,.ui.grid>.row>[class*="twelve wide large screen"].column,.ui.grid>[class*="twelve wide large screen"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide large screen"].column,.ui.grid>.column.row>[class*="thirteen wide large screen"].column,.ui.grid>.row>[class*="thirteen wide large screen"].column,.ui.grid>[class*="thirteen wide large screen"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide large screen"].column,.ui.grid>.column.row>[class*="fourteen wide large screen"].column,.ui.grid>.row>[class*="fourteen wide large screen"].column,.ui.grid>[class*="fourteen wide large screen"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide large screen"].column,.ui.grid>.column.row>[class*="fifteen wide large screen"].column,.ui.grid>.row>[class*="fifteen wide large screen"].column,.ui.grid>[class*="fifteen wide large screen"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide large screen"].column,.ui.grid>.column.row>[class*="sixteen wide large screen"].column,.ui.grid>.row>[class*="sixteen wide large screen"].column,.ui.grid>[class*="sixteen wide large screen"].column{width:100%!important}}@media only screen and (min-width:1920px){.ui.column.grid>[class*="one wide widescreen"].column,.ui.grid>.column.row>[class*="one wide widescreen"].column,.ui.grid>.row>[class*="one wide widescreen"].column,.ui.grid>[class*="one wide widescreen"].column{width:6.25%!important}.ui.column.grid>[class*="two wide widescreen"].column,.ui.grid>.column.row>[class*="two wide widescreen"].column,.ui.grid>.row>[class*="two wide widescreen"].column,.ui.grid>[class*="two wide widescreen"].column{width:12.5%!important}.ui.column.grid>[class*="three wide widescreen"].column,.ui.grid>.column.row>[class*="three wide widescreen"].column,.ui.grid>.row>[class*="three wide widescreen"].column,.ui.grid>[class*="three wide widescreen"].column{width:18.75%!important}.ui.column.grid>[class*="four wide widescreen"].column,.ui.grid>.column.row>[class*="four wide widescreen"].column,.ui.grid>.row>[class*="four wide widescreen"].column,.ui.grid>[class*="four wide widescreen"].column{width:25%!important}.ui.column.grid>[class*="five wide widescreen"].column,.ui.grid>.column.row>[class*="five wide widescreen"].column,.ui.grid>.row>[class*="five wide widescreen"].column,.ui.grid>[class*="five wide widescreen"].column{width:31.25%!important}.ui.column.grid>[class*="six wide widescreen"].column,.ui.grid>.column.row>[class*="six wide widescreen"].column,.ui.grid>.row>[class*="six wide widescreen"].column,.ui.grid>[class*="six wide widescreen"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide widescreen"].column,.ui.grid>.column.row>[class*="seven wide widescreen"].column,.ui.grid>.row>[class*="seven wide widescreen"].column,.ui.grid>[class*="seven wide widescreen"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide widescreen"].column,.ui.grid>.column.row>[class*="eight wide widescreen"].column,.ui.grid>.row>[class*="eight wide widescreen"].column,.ui.grid>[class*="eight wide widescreen"].column{width:50%!important}.ui.column.grid>[class*="nine wide widescreen"].column,.ui.grid>.column.row>[class*="nine wide widescreen"].column,.ui.grid>.row>[class*="nine wide widescreen"].column,.ui.grid>[class*="nine wide widescreen"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide widescreen"].column,.ui.grid>.column.row>[class*="ten wide widescreen"].column,.ui.grid>.row>[class*="ten wide widescreen"].column,.ui.grid>[class*="ten wide widescreen"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide widescreen"].column,.ui.grid>.column.row>[class*="eleven wide widescreen"].column,.ui.grid>.row>[class*="eleven wide widescreen"].column,.ui.grid>[class*="eleven wide widescreen"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide widescreen"].column,.ui.grid>.column.row>[class*="twelve wide widescreen"].column,.ui.grid>.row>[class*="twelve wide widescreen"].column,.ui.grid>[class*="twelve wide widescreen"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide widescreen"].column,.ui.grid>.column.row>[class*="thirteen wide widescreen"].column,.ui.grid>.row>[class*="thirteen wide widescreen"].column,.ui.grid>[class*="thirteen wide widescreen"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide widescreen"].column,.ui.grid>.column.row>[class*="fourteen wide widescreen"].column,.ui.grid>.row>[class*="fourteen wide widescreen"].column,.ui.grid>[class*="fourteen wide widescreen"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide widescreen"].column,.ui.grid>.column.row>[class*="fifteen wide widescreen"].column,.ui.grid>.row>[class*="fifteen wide widescreen"].column,.ui.grid>[class*="fifteen wide widescreen"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide widescreen"].column,.ui.grid>.column.row>[class*="sixteen wide widescreen"].column,.ui.grid>.row>[class*="sixteen wide widescreen"].column,.ui.grid>[class*="sixteen wide widescreen"].column{width:100%!important}}.ui.centered.grid,.ui.centered.grid>.row,.ui.grid>.centered.row{text-align:center;justify-content:center}.ui.centered.grid>.column:not(.aligned):not(.justified):not(.row),.ui.centered.grid>.row>.column:not(.aligned):not(.justified),.ui.grid .centered.row>.column:not(.aligned):not(.justified){text-align:left}.ui.grid>.centered.column,.ui.grid>.row>.centered.column{display:block;margin-left:auto;margin-right:auto}.ui.grid>.relaxed.row>.column,.ui.relaxed.grid>.column:not(.row),.ui.relaxed.grid>.row>.column{padding-left:1.5rem;padding-right:1.5rem}.ui.grid>[class*="very relaxed"].row>.column,.ui[class*="very relaxed"].grid>.column:not(.row),.ui[class*="very relaxed"].grid>.row>.column{padding-left:2.5rem;padding-right:2.5rem}.ui.grid .relaxed.row+.ui.divider,.ui.relaxed.grid .row+.ui.divider{margin-left:1.5rem;margin-right:1.5rem}.ui.grid [class*="very relaxed"].row+.ui.divider,.ui[class*="very relaxed"].grid .row+.ui.divider{margin-left:2.5rem;margin-right:2.5rem}.ui.padded.grid:not(.vertically):not(.horizontally){margin:0!important}[class*="horizontally padded"].ui.grid{margin-left:0!important;margin-right:0!important}[class*="vertically padded"].ui.grid{margin-top:0!important;margin-bottom:0!important}.ui.grid [class*="left floated"].column{margin-right:auto}.ui.grid [class*="right floated"].column{margin-left:auto}.ui.divided.grid:not([class*="vertically divided"])>.column:not(.row),.ui.divided.grid:not([class*="vertically divided"])>.row>.column{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="vertically divided"].grid>.column:not(.row),.ui[class*="vertically divided"].grid>.row>.column{margin-top:1rem;margin-bottom:1rem;padding-top:0;padding-bottom:0}.ui[class*="vertically divided"].grid>.row{margin-top:0;margin-bottom:0}.ui.divided.grid:not([class*="vertically divided"])>.column:first-child,.ui.divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:none}.ui[class*="vertically divided"].grid>.row:first-child>.column{margin-top:0}.ui.grid>.divided.row>.column{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui.grid>.divided.row>.column:first-child{box-shadow:none}.ui[class*="vertically divided"].grid>.row{position:relative}.ui[class*="vertically divided"].grid>.row:before{position:absolute;content:"";top:0;left:0;width:calc(100% - 2rem);height:1px;margin:0 1rem;box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.padded.divided.grid:not(.vertically):not(.horizontally),[class*="horizontally padded"].ui.divided.grid{width:100%}.ui[class*="vertically divided"].grid>.row:first-child:before{box-shadow:none}.ui.inverted.divided.grid:not([class*="vertically divided"])>.column:not(.row),.ui.inverted.divided.grid:not([class*="vertically divided"])>.row>.column{box-shadow:-1px 0 0 0 hsla(0,0%,100%,.1)}.ui.inverted.divided.grid:not([class*="vertically divided"])>.column:not(.row):first-child,.ui.inverted.divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:none}.ui.inverted[class*="vertically divided"].grid>.row:before{box-shadow:0 -1px 0 0 hsla(0,0%,100%,.1)}.ui.relaxed[class*="vertically divided"].grid>.row:before{margin-left:1.5rem;margin-right:1.5rem;width:calc(100% - 3rem)}.ui[class*="very relaxed"][class*="vertically divided"].grid>.row:before{margin-left:2.5rem;margin-right:2.5rem;width:calc(100% - 5rem)}.ui.celled.grid{width:100%;margin:1em 0;box-shadow:0 0 0 1px #d4d4d5}.ui.celled.grid>.row{width:100%!important;margin:0;padding:0;box-shadow:0 -1px 0 0 #d4d4d5}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{box-shadow:-1px 0 0 0 #d4d4d5}.ui.celled.grid>.column:first-child,.ui.celled.grid>.row>.column:first-child{box-shadow:none}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{padding:1em}.ui.relaxed.celled.grid>.column:not(.row),.ui.relaxed.celled.grid>.row>.column{padding:1.5em}.ui[class*="very relaxed"].celled.grid>.column:not(.row),.ui[class*="very relaxed"].celled.grid>.row>.column{padding:2em}.ui[class*="internally celled"].grid{box-shadow:none;margin:0}.ui[class*="internally celled"].grid>.row:first-child,.ui[class*="internally celled"].grid>.row>.column:first-child{box-shadow:none}.ui.grid>.row>[class*="top aligned"].column,.ui.grid>[class*="top aligned"].column:not(.row),.ui.grid>[class*="top aligned"].row>.column,.ui[class*="top aligned"].grid>.column:not(.row),.ui[class*="top aligned"].grid>.row>.column{flex-direction:column;vertical-align:top;align-self:flex-start!important}.ui.grid>.row>[class*="middle aligned"].column,.ui.grid>[class*="middle aligned"].column:not(.row),.ui.grid>[class*="middle aligned"].row>.column,.ui[class*="middle aligned"].grid>.column:not(.row),.ui[class*="middle aligned"].grid>.row>.column{flex-direction:column;vertical-align:middle;align-self:center!important}.ui.grid>.row>[class*="bottom aligned"].column,.ui.grid>[class*="bottom aligned"].column:not(.row),.ui.grid>[class*="bottom aligned"].row>.column,.ui[class*="bottom aligned"].grid>.column:not(.row),.ui[class*="bottom aligned"].grid>.row>.column{flex-direction:column;vertical-align:bottom;align-self:flex-end!important}.ui.grid>.row>.stretched.column,.ui.grid>.stretched.column:not(.row),.ui.grid>.stretched.row>.column,.ui.stretched.grid>.column,.ui.stretched.grid>.row>.column{display:inline-flex!important;align-self:stretch;flex-direction:column}.ui.grid>.row>.stretched.column>*,.ui.grid>.stretched.column:not(.row)>*,.ui.grid>.stretched.row>.column>*,.ui.stretched.grid>.column>*,.ui.stretched.grid>.row>.column>*{flex-grow:1}.ui.grid>.row>[class*="left aligned"].column.column,.ui.grid>[class*="left aligned"].column.column,.ui.grid>[class*="left aligned"].row>.column,.ui[class*="left aligned"].grid>.column,.ui[class*="left aligned"].grid>.row>.column{text-align:left;align-self:inherit}.ui.grid>.row>[class*="center aligned"].column.column,.ui.grid>[class*="center aligned"].column.column,.ui.grid>[class*="center aligned"].row>.column,.ui[class*="center aligned"].grid>.column,.ui[class*="center aligned"].grid>.row>.column{text-align:center;align-self:inherit}.ui[class*="center aligned"].grid{justify-content:center}.ui.grid>.row>[class*="right aligned"].column.column,.ui.grid>[class*="right aligned"].column.column,.ui.grid>[class*="right aligned"].row>.column,.ui[class*="right aligned"].grid>.column,.ui[class*="right aligned"].grid>.row>.column{text-align:right;align-self:inherit}.ui.grid>.justified.column.column,.ui.grid>.justified.row>.column,.ui.grid>.row>.justified.column.column,.ui.justified.grid>.column,.ui.justified.grid>.row>.column{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.grid>.primary.column,.ui.grid>.primary.row,.ui.grid>.row>.primary.column{background-color:#2185d0;color:#fff}.ui.grid>.row>.secondary.column,.ui.grid>.secondary.column,.ui.grid>.secondary.row{background-color:#1b1c1d;color:#fff}.ui.grid>.red.column,.ui.grid>.red.row,.ui.grid>.row>.red.column{background-color:#db2828;color:#fff}.ui.grid>.orange.column,.ui.grid>.orange.row,.ui.grid>.row>.orange.column{background-color:#f2711c;color:#fff}.ui.grid>.row>.yellow.column,.ui.grid>.yellow.column,.ui.grid>.yellow.row{background-color:#fbbd08;color:#fff}.ui.grid>.olive.column,.ui.grid>.olive.row,.ui.grid>.row>.olive.column{background-color:#b5cc18;color:#fff}.ui.grid>.green.column,.ui.grid>.green.row,.ui.grid>.row>.green.column{background-color:#21ba45;color:#fff}.ui.grid>.row>.teal.column,.ui.grid>.teal.column,.ui.grid>.teal.row{background-color:#00b5ad;color:#fff}.ui.grid>.blue.column,.ui.grid>.blue.row,.ui.grid>.row>.blue.column{background-color:#2185d0;color:#fff}.ui.grid>.row>.violet.column,.ui.grid>.violet.column,.ui.grid>.violet.row{background-color:#6435c9;color:#fff}.ui.grid>.purple.column,.ui.grid>.purple.row,.ui.grid>.row>.purple.column{background-color:#a333c8;color:#fff}.ui.grid>.pink.column,.ui.grid>.pink.row,.ui.grid>.row>.pink.column{background-color:#e03997;color:#fff}.ui.grid>.brown.column,.ui.grid>.brown.row,.ui.grid>.row>.brown.column{background-color:#a5673f;color:#fff}.ui.grid>.grey.column,.ui.grid>.grey.row,.ui.grid>.row>.grey.column{background-color:#767676;color:#fff}.ui.grid>.black.column,.ui.grid>.black.row,.ui.grid>.row>.black.column{background-color:#1b1c1d;color:#fff}.ui.grid>[class*="equal width"].row>.column,.ui[class*="equal width"].grid>.column:not(.row),.ui[class*="equal width"].grid>.row>.column{display:inline-block;flex-grow:1}.ui.grid>[class*="equal width"].row>.wide.column,.ui[class*="equal width"].grid>.row>.wide.column,.ui[class*="equal width"].grid>.wide.column{flex-grow:0}@media only screen and (max-width:767.98px){.ui.grid>[class*="mobile reversed"].row,.ui[class*="mobile reversed"].grid,.ui[class*="mobile reversed"].grid>.row{flex-direction:row-reverse}.ui.stackable[class*="mobile reversed"],.ui[class*="mobile vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="mobile vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="mobile vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="mobile reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="mobile reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.grid>[class*="tablet reversed"].row,.ui[class*="tablet reversed"].grid,.ui[class*="tablet reversed"].grid>.row{flex-direction:row-reverse}.ui[class*="tablet vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="tablet vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="tablet vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="tablet reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="tablet reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:992px){.ui.grid>[class*="computer reversed"].row,.ui[class*="computer reversed"].grid,.ui[class*="computer reversed"].grid>.row{flex-direction:row-reverse}.ui[class*="computer vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="computer vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="computer vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="computer reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="computer reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.doubling.grid{width:auto}.ui.doubling.grid>.row,.ui.grid>.doubling.row{margin:0!important;padding:0!important}.ui.doubling.grid>.row>.column,.ui.grid>.doubling.row>.column{display:inline-block!important;padding-top:1rem!important;padding-bottom:1rem!important;box-shadow:none!important;margin:0}.ui.grid>[class*="two column"].doubling.row.row>.column,.ui[class*="two column"].doubling.grid>.column:not(.row),.ui[class*="two column"].doubling.grid>.row>.column{width:100%!important}.ui.grid>[class*="four column"].doubling.row.row>.column,.ui.grid>[class*="three column"].doubling.row.row>.column,.ui[class*="four column"].doubling.grid>.column:not(.row),.ui[class*="four column"].doubling.grid>.row>.column,.ui[class*="three column"].doubling.grid>.column:not(.row),.ui[class*="three column"].doubling.grid>.row>.column{width:50%!important}.ui.grid>[class*="five column"].doubling.row.row>.column,.ui.grid>[class*="seven column"].doubling.row.row>.column,.ui.grid>[class*="six column"].doubling.row.row>.column,.ui[class*="five column"].doubling.grid>.column:not(.row),.ui[class*="five column"].doubling.grid>.row>.column,.ui[class*="seven column"].doubling.grid>.column:not(.row),.ui[class*="seven column"].doubling.grid>.row>.column,.ui[class*="six column"].doubling.grid>.column:not(.row),.ui[class*="six column"].doubling.grid>.row>.column{width:33.33333333%!important}.ui.grid>[class*="eight column"].doubling.row.row>.column,.ui.grid>[class*="nine column"].doubling.row.row>.column,.ui[class*="eight column"].doubling.grid>.column:not(.row),.ui[class*="eight column"].doubling.grid>.row>.column,.ui[class*="nine column"].doubling.grid>.column:not(.row),.ui[class*="nine column"].doubling.grid>.row>.column{width:25%!important}.ui.grid>[class*="eleven column"].doubling.row.row>.column,.ui.grid>[class*="ten column"].doubling.row.row>.column,.ui[class*="eleven column"].doubling.grid>.column:not(.row),.ui[class*="eleven column"].doubling.grid>.row>.column,.ui[class*="ten column"].doubling.grid>.column:not(.row),.ui[class*="ten column"].doubling.grid>.row>.column{width:20%!important}.ui.grid>[class*="thirteen column"].doubling.row.row>.column,.ui.grid>[class*="twelve column"].doubling.row.row>.column,.ui[class*="thirteen column"].doubling.grid>.column:not(.row),.ui[class*="thirteen column"].doubling.grid>.row>.column,.ui[class*="twelve column"].doubling.grid>.column:not(.row),.ui[class*="twelve column"].doubling.grid>.row>.column{width:16.66666667%!important}.ui.grid>[class*="fifteen column"].doubling.row.row>.column,.ui.grid>[class*="fourteen column"].doubling.row.row>.column,.ui[class*="fifteen column"].doubling.grid>.column:not(.row),.ui[class*="fifteen column"].doubling.grid>.row>.column,.ui[class*="fourteen column"].doubling.grid>.column:not(.row),.ui[class*="fourteen column"].doubling.grid>.row>.column{width:14.28571429%!important}.ui.grid>[class*="sixteen column"].doubling.row.row>.column,.ui[class*="sixteen column"].doubling.grid>.column:not(.row),.ui[class*="sixteen column"].doubling.grid>.row>.column{width:12.5%!important}}@media only screen and (max-width:767.98px){.ui.doubling.grid>.row,.ui.grid>.doubling.row{margin:0!important;padding:0!important}.ui.doubling.grid>.row>.column,.ui.grid>.doubling.row>.column{padding-top:1rem!important;padding-bottom:1rem!important;margin:0!important;box-shadow:none!important}.ui.grid>[class*="two column"].doubling:not(.stackable).row.row>.column,.ui[class*="two column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="two column"].doubling:not(.stackable).grid>.row>.column{width:100%!important}.ui.grid>[class*="eight column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="five column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="four column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="seven column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="six column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="three column"].doubling:not(.stackable).row.row>.column,.ui[class*="eight column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="eight column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="five column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="five column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="four column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="four column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="seven column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="seven column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="six column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="six column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="three column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="three column"].doubling:not(.stackable).grid>.row>.column{width:50%!important}.ui.grid>[class*="eleven column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="nine column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="ten column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="thirteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="twelve column"].doubling:not(.stackable).row.row>.column,.ui[class*="eleven column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="eleven column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="nine column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="nine column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="ten column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="ten column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="thirteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="thirteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="twelve column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="twelve column"].doubling:not(.stackable).grid>.row>.column{width:33.33333333%!important}.ui.grid>[class*="fifteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="fourteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="sixteen column"].doubling:not(.stackable).row.row>.column,.ui[class*="fifteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="fifteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="fourteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="fourteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="sixteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="sixteen column"].doubling:not(.stackable).grid>.row>.column{width:25%!important}}@media only screen and (max-width:767.98px){.ui.stackable.grid{width:auto;margin-left:0!important;margin-right:0!important}.ui.grid>.stackable.stackable.stackable.row>.column,.ui.stackable.grid>.column.grid>.column,.ui.stackable.grid>.column.row>.column,.ui.stackable.grid>.column:not(.row),.ui.stackable.grid>.row>.column,.ui.stackable.grid>.row>.wide.column,.ui.stackable.grid>.wide.column{width:100%!important;margin:0!important;box-shadow:none!important;padding:1rem}.ui.stackable.grid:not(.vertically)>.row{margin:0;padding:0}.ui.container>.ui.stackable.grid>.column,.ui.container>.ui.stackable.grid>.row>.column{padding-left:0!important;padding-right:0!important}.ui.grid .ui.stackable.grid,.ui.segment:not(.vertical) .ui.stackable.page.grid{margin-left:-1rem!important;margin-right:-1rem!important}.ui.stackable.celled.grid>.column:not(.row):first-child,.ui.stackable.celled.grid>.row:first-child>.column:first-child,.ui.stackable.divided.grid>.column:not(.row):first-child,.ui.stackable.divided.grid>.row:first-child>.column:first-child{border-top:none!important}.ui.inverted.stackable.celled.grid>.column:not(.row),.ui.inverted.stackable.celled.grid>.row>.column,.ui.inverted.stackable.divided.grid>.column:not(.row),.ui.inverted.stackable.divided.grid>.row>.column{border-top:1px solid hsla(0,0%,100%,.1)}.ui.stackable.celled.grid>.column:not(.row),.ui.stackable.celled.grid>.row>.column,.ui.stackable.divided:not(.vertically).grid>.column:not(.row),.ui.stackable.divided:not(.vertically).grid>.row>.column{border-top:1px solid rgba(34,36,38,.15);box-shadow:none!important;padding-top:2rem!important;padding-bottom:2rem!important}.ui.stackable.celled.grid>.row{box-shadow:none!important}.ui.stackable.divided:not(.vertically).grid>.column:not(.row),.ui.stackable.divided:not(.vertically).grid>.row>.column{padding-left:0!important;padding-right:0!important}}@media only screen and (max-width:767.98px){.ui.grid.grid.grid>.row>[class*="computer only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].row:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="tablet only"].column:not(.mobile),.ui.grid.grid.grid>[class*="tablet only"].row:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="computer only"].grid.grid.grid:not(.mobile),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="tablet only"].grid.grid.grid:not(.mobile),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.grid.grid.grid>.row>[class*="computer only"].column:not(.tablet),.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.tablet),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].column:not(.tablet),.ui.grid.grid.grid>[class*="computer only"].row:not(.tablet),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.tablet),.ui.grid.grid.grid>[class*="mobile only"].row:not(.tablet),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="computer only"].grid.grid.grid:not(.tablet),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.tablet),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:992px) and (max-width:1199.98px){.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919.98px){.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:1920px){.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer){display:none!important}}.ui.ui.ui.compact.grid>*,.ui.ui.ui.compact.grid>.column:not(.row),.ui.ui.ui.compact.grid>.row>.column{padding-left:.5rem;padding-right:.5rem}.ui.ui.ui.compact.grid>.column:not(.row),.ui.ui.ui.compact.grid>.row{padding-top:.5rem;padding-bottom:.5rem}.ui.compact.relaxed.celled.grid>.column:not(.row),.ui.compact.relaxed.celled.grid>.row>.column{padding:.75em}.ui.compact[class*="very relaxed"].celled.grid>.column:not(.row),.ui.compact[class*="very relaxed"].celled.grid>.row>.column{padding:1em}.ui.ui.ui[class*="very compact"].grid>*,.ui.ui.ui[class*="very compact"].grid>.column:not(.row),.ui.ui.ui[class*="very compact"].grid>.row>.column{padding-left:.25rem;padding-right:.25rem}.ui.ui.ui[class*="very compact"].grid>.row{padding:.25rem .75rem}.ui.ui.ui[class*="very compact"].grid>.column:not(.row){padding-top:.25rem;padding-bottom:.25rem}.ui[class*="very compact"].relaxed.celled.grid>.column:not(.row),.ui[class*="very compact"].relaxed.celled.grid>.row>.column{padding:.375em}.ui[class*="very compact"][class*="very relaxed"].celled.grid>.column:not(.row),.ui[class*="very compact"][class*="very relaxed"].celled.grid>.row>.column{padding:.5em}.ui.menu{display:flex;margin:1rem 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;font-weight:400;border:1px solid rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem;min-height:2.85714286em}.ui.menu:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.menu:first-child{margin-top:0}.ui.menu:last-child{margin-bottom:0}.ui.menu .menu{margin:0}.ui.menu:not(.vertical)>.menu{display:flex}.ui.menu:not(.vertical) .item{display:flex;align-items:center}.ui.menu .item{position:relative;vertical-align:middle;line-height:1;text-decoration:none;-webkit-tap-highlight-color:transparent;flex:0 0 auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:0 0;padding:.92857143em 1.14285714em;text-transform:none;color:rgba(0,0,0,.87);font-weight:400;transition:background .1s ease,box-shadow .1s ease,color .1s ease}.ui.menu>.item:first-child{border-radius:.28571429rem 0 0 .28571429rem}.ui.menu .item:before{position:absolute;content:"";top:0;right:0;height:100%;width:1px;background:rgba(34,36,38,.1)}.ui.menu .item>a:not(.ui),.ui.menu .item>p:only-child,.ui.menu .text.item>*{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu .item>i.icon{opacity:.9;float:none;margin:0 .35714286em 0 0}.ui.menu:not(.vertical) .item>.button{position:relative;top:0;margin:-.5em 0;padding-bottom:.78571429em;padding-top:.78571429em;font-size:1em}.ui.menu>.container,.ui.menu>.grid{display:flex;align-items:inherit;flex-direction:inherit}.ui.menu .item>.input{width:100%}.ui.menu:not(.vertical) .item>.input{position:relative;top:0;margin:-.5em 0}.ui.menu .item>.input input{font-size:1em;padding-top:.57142857em;padding-bottom:.57142857em}.ui.menu .header.item,.ui.vertical.menu .header.item{margin:0;background:"";text-transform:normal;font-weight:700}.ui.vertical.menu .item>.header:not(.ui){margin:0 0 .5em;font-size:1em;font-weight:700}.ui.menu .item>i.dropdown.icon{padding:0;float:right;margin:0 0 0 1em}.ui.menu .dropdown.item .menu{min-width:calc(100% - 1px);border-radius:0 0 .28571429rem .28571429rem;background:#fff;margin:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.08);flex-direction:column!important}.ui.menu .ui.dropdown .menu>.item{margin:0;text-align:left;font-size:1em!important;padding:.78571429em 1.14285714em!important;background:0 0!important;color:rgba(0,0,0,.87)!important;text-transform:none!important;font-weight:400!important;box-shadow:none!important;transition:none!important}.ui.menu .ui.dropdown .menu>.item:hover,.ui.menu .ui.dropdown .menu>.selected.item{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.active.item{background:rgba(0,0,0,.03)!important;font-weight:700!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown.item .menu .item:not(.filtered){display:block}.ui.menu .ui.dropdown .menu>.item>.icons,.ui.menu .ui.dropdown .menu>.item>i.icon:not(.dropdown){display:inline-block;font-size:1em!important;float:none;margin:0 .75em 0 0!important}.ui.secondary.menu .dropdown.item>.menu,.ui.text.menu .dropdown.item>.menu{border-radius:.28571429rem;margin-top:.35714286em}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.inverted.menu .search.dropdown.item>.search,.ui.inverted.menu .search.dropdown.item>.text{color:hsla(0,0%,100%,.9)}.ui.vertical.menu .dropdown.item>i.icon{float:right;content:"\f0da";margin-left:1em}.ui.vertical.menu .dropdown.item .menu{left:100%;min-width:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;margin:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.08);border-radius:0 .28571429rem .28571429rem .28571429rem}.ui.vertical.menu .dropdown.item.upward .menu{bottom:0}.ui.vertical.menu .dropdown.item:not(.upward) .menu{top:0}.ui.vertical.menu .active.dropdown.item{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.menu .dropdown.active.item{box-shadow:none}.ui.item.menu .dropdown .menu .item{width:100%}.ui.menu .item>.label:not(.floating){margin-left:1em;padding:.3em .78571429em}.ui.vertical.menu .item>.label{margin-top:-.15em;margin-bottom:-.15em;padding:.3em .78571429em}.ui.menu .item>.floating.label{padding:.3em .78571429em}.ui.menu .item>.label{background:#999;color:#fff}.ui.menu .item>.image.label img{margin:-.2833em .8em -.2833em -.8em;height:1.5666em}.ui.menu .item>img:not(.ui){display:inline-block;vertical-align:middle;margin:-.3em 0;width:2.5em}.ui.vertical.menu .item>img:not(.ui):only-child{display:block;max-width:100%;width:auto}.ui.menu .list .item:before{background:0 0!important}.ui.vertical.sidebar.menu>.item:first-child:before{display:block!important}.ui.vertical.sidebar.menu>.item:before{top:auto;bottom:0}@media only screen and (max-width:767.98px){.ui.menu>.ui.container{width:100%!important;margin-left:0!important;margin-right:0!important}}@media only screen and (min-width:768px){.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.item:not(.right):not(.borderless):first-child{border-left:1px solid rgba(34,36,38,.1)}.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.right.item:not(.borderless):last-child,.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.right.menu>.item:not(.borderless):last-child{border-right:1px solid rgba(34,36,38,.1)}}.ui.link.menu .item:hover,.ui.menu .dropdown.item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover{cursor:pointer;background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.menu .active.item{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);font-weight:400;box-shadow:none}.ui.menu .active.item>i.icon{opacity:1}.ui.menu .active.item:hover,.ui.vertical.menu .active.item:hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.ui.menu .item.disabled{cursor:default;background-color:transparent;color:rgba(40,40,40,.3);pointer-events:none}.ui.menu:not(.vertical) .left.item,.ui.menu:not(.vertical) .left.menu{display:flex;margin-right:auto!important}.ui.menu:not(.vertical) .right.item,.ui.menu:not(.vertical) .right.menu{display:flex;margin-left:auto!important}.ui.menu:not(.vertical) :not(.dropdown)>.left.menu,.ui.menu:not(.vertical) :not(.dropdown)>.right.menu{display:inherit}.ui.menu:not(.vertical) .center.item,.ui.menu:not(.vertical) .center.menu{display:flex;margin-left:auto!important;margin-right:auto!important}.ui.menu .right.item:before,.ui.menu .right.menu>.item:before{right:auto;left:0}.ui.menu .center.item:last-child:before,.ui.menu .center.menu>.item:last-child:before{display:none}.ui.vertical.menu{display:block;flex-direction:column;background:#fff;box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.ui.vertical.menu .item{display:block;background:0 0;border-top:none;border-right:none}.ui.vertical.menu>.item:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.menu .item>.label{float:right;text-align:center}.ui.vertical.menu .item>i.icon,.ui.vertical.menu .item>i.icons{width:1.18em;float:right;margin:0 0 0 .5em}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 .5em 0 0}.ui.vertical.menu .item:before{position:absolute;content:"";top:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.vertical.menu .item:first-child:before{display:none!important}.ui.vertical.menu .item>.menu{margin:.5em -1.14285714em 0}.ui.vertical.menu .menu .item{background:0 0;padding:.5em 1.33333333em;font-size:.85714286em;color:rgba(0,0,0,.5)}.ui.vertical.menu .item .menu .link.item:hover,.ui.vertical.menu .item .menu a.item:hover{color:rgba(0,0,0,.85)}.ui.vertical.menu .menu .item:before{display:none}.ui.vertical.menu .active.item{background:rgba(0,0,0,.05);border-radius:0;box-shadow:none}.ui.vertical.menu>.active.item:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.menu>.active.item:only-child{border-radius:.28571429rem}.ui.vertical.menu .active.item .menu .active.item{border-left:none}.ui.vertical.menu .item .menu .active.item{background-color:transparent;font-weight:700;color:rgba(0,0,0,.95)}.ui.tabular.menu{border-radius:0;box-shadow:none!important;background:none transparent;border:none;border-bottom:1px solid #d4d4d5}.ui.tabular.fluid.menu{width:calc(100% + 2px)!important}.ui.tabular.menu .item{background:0 0;border:1px solid transparent;border-top:2px solid transparent;border-bottom:none;padding:.92857143em 1.42857143em;color:rgba(0,0,0,.87)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-top-width:1px;border-color:#d4d4d5;font-weight:700;margin-bottom:-1px;box-shadow:none;border-radius:.28571429rem .28571429rem 0 0!important}.ui.tabular.menu+.attached:not(.top).segment,.ui.tabular.menu+.attached:not(.top).segment+.attached:not(.top).segment{border-top:none;margin-left:0;margin-top:0;margin-right:0;width:100%}.top.attached.segment+.ui.bottom.tabular.menu{position:relative;width:calc(100% + 2px);left:-1px}.ui.bottom.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-top:1px solid #d4d4d5}.ui.bottom.tabular.menu .item{background:0 0;border:1px solid transparent;border-top:none}.ui.bottom.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:-1px 0 0;border-radius:0 0 .28571429rem .28571429rem!important}.ui.vertical.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-right:1px solid #d4d4d5}.ui.vertical.tabular.menu .item{background:0 0;border:1px solid transparent;border-right:none}.ui.vertical.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 -1px 0 0;border-radius:.28571429rem 0 0 .28571429rem!important}.ui.vertical.right.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-right:none;border-left:1px solid #d4d4d5}.ui.vertical.right.tabular.menu .item{background:0 0;border:1px solid transparent;border-left:none}.ui.vertical.right.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 0 0 -1px;border-radius:0 .28571429rem .28571429rem 0!important}.ui.tabular.menu .active.dropdown.item{margin-bottom:0;border:1px solid transparent;border-top:2px solid transparent;border-bottom:none}.ui.pagination.menu{margin:0;display:inline-flex;vertical-align:middle}.ui.compact.menu .item:last-child,.ui.pagination.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.pagination.menu .item:last-child:before{display:none}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu .active.item{border-top:none;padding-top:.92857143em;background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95);box-shadow:none}.ui.secondary.menu{background:0 0;margin-left:-.35714286em;margin-right:-.35714286em;border-radius:0;border:none;box-shadow:none}.ui.secondary.menu .item{align-self:center;box-shadow:none;border:none;padding:.78571429em .92857143em;margin:0 .35714286em;background:0 0;transition:color .1s ease;border-radius:.28571429rem}.ui.secondary.menu .item:before{display:none!important}.ui.secondary.menu .header.item{border-radius:0;border-right:none;background:none transparent}.ui.secondary.menu .item>img:not(.ui){margin:0}.ui.secondary.menu .dropdown.item:hover,.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.menu .active.item{border-radius:.28571429rem}.ui.secondary.menu .active.item,.ui.secondary.menu .active.item:hover{box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.inverted.menu .link.item:not(.disabled),.ui.secondary.inverted.menu a.item:not(.disabled){color:hsla(0,0%,100%,.7)}.ui.secondary.inverted.menu .dropdown.item:hover,.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{background:hsla(0,0%,100%,.08);color:#fff}.ui.secondary.inverted.menu .active.item{background:hsla(0,0%,100%,.15);color:#fff}.ui.secondary.item.menu{margin-left:0;margin-right:0}.ui.secondary.item.menu .item:last-child{margin-right:0}.ui.secondary.attached.menu{box-shadow:none}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu{margin:0 -.92857143em}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 1.33333333em}.ui.secondary.vertical.menu>.item{border:none;margin:0 0 .35714286em;border-radius:.28571429rem!important}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.secondary.inverted.menu,.ui.vertical.secondary.menu .item>.menu .item{background-color:transparent}.ui.secondary.pointing.menu{margin-left:0;margin-right:0;border-bottom:2px solid rgba(34,36,38,.15)}.ui.secondary.pointing.menu .item{border-radius:0;align-self:flex-end;margin:0 0 -2px;padding:.85714286em 1.14285714em;border-bottom:2px solid transparent;transition:color .1s ease}.ui.secondary.pointing.menu .ui.dropdown .menu .item{border-bottom-width:0}.ui.secondary.pointing.menu .item>.label:not(.floating){margin-top:-.3em;margin-bottom:-.3em}.ui.secondary.pointing.menu .item>.circular.label{margin-top:-.5em;margin-bottom:-.5em}.ui.secondary.pointing.menu .header.item{color:rgba(0,0,0,.85)!important}.ui.secondary.pointing.menu .text.item{box-shadow:none!important}.ui.secondary.pointing.menu .item:after{display:none}.ui.secondary.pointing.menu .dropdown.item:hover,.ui.secondary.pointing.menu .link.item:hover,.ui.secondary.pointing.menu a.item:hover{background-color:transparent;color:rgba(0,0,0,.87)}.ui.secondary.pointing.menu .dropdown.item:active,.ui.secondary.pointing.menu .link.item:active,.ui.secondary.pointing.menu a.item:active{background-color:transparent;border-color:rgba(34,36,38,.15)}.ui.secondary.pointing.menu .active.item{background-color:transparent;box-shadow:none;font-weight:700}.ui.secondary.pointing.menu .active.item,.ui.secondary.pointing.menu .active.item:hover{border-color:currentColor;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.dropdown.item{border-color:transparent}.ui.secondary.vertical.pointing.menu{border-bottom-width:0;border-right:2px solid rgba(34,36,38,.15)}.ui.secondary.vertical.pointing.menu .item{border-bottom:none;border-radius:0!important;margin:0 -2px 0 0;border-right:2px solid transparent}.ui.secondary.vertical.pointing.menu .active.item{border-color:currentColor}.ui.secondary.inverted.pointing.menu{border-color:hsla(0,0%,100%,.1)}.ui.secondary.inverted.pointing.menu .item:not(.disabled){color:hsla(0,0%,100%,.9)}.ui.secondary.inverted.pointing.menu .header.item{color:#fff!important}.ui.secondary.inverted.pointing.menu .link.item:hover,.ui.secondary.inverted.pointing.menu a.item:hover{color:#fff}.ui.ui.secondary.inverted.pointing.menu .active.item{border-color:#fff;color:#fff;background-color:transparent}.ui.text.menu{background:none transparent;border-radius:0;box-shadow:none;border:none;margin:1em -.5em}.ui.text.menu .item{border-radius:0;box-shadow:none;align-self:center;margin:0;padding:.35714286em .5em;font-weight:400;color:rgba(0,0,0,.6);transition:opacity .1s ease}.ui.text.menu .item:before,.ui.text.menu .menu .item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(0,0,0,.85);font-size:.92857143em;text-transform:uppercase;font-weight:700}.ui.text.item.menu .item,.ui.text.menu .item>img:not(.ui){margin:0}.ui.vertical.text.menu{margin:1em 0}.ui.vertical.text.menu:first-child{margin-top:0}.ui.vertical.text.menu:last-child{margin-bottom:0}.ui.vertical.text.menu .item{margin:.57142857em 0;padding-left:0;padding-right:0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 .35714286em 0 0}.ui.vertical.text.menu .header.item{margin:.57142857em 0 .71428571em}.ui.vertical.text.menu .item:not(.dropdown)>.menu{margin:0}.ui.vertical.text.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{border:none;box-shadow:none;font-weight:400;color:rgba(0,0,0,.95)}.ui.text.menu .active.item,.ui.text.menu .active.item:hover{background-color:transparent}.ui.text.attached.menu,.ui.text.pointing.menu .active.item:after{box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .active.item,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover{background-color:transparent}.ui.fluid.text.menu{margin-left:0;margin-right:0}.ui.vertical.icon.menu{display:inline-block;width:auto}.ui.icon.menu .item{height:auto;text-align:center;color:#1b1c1d}.ui.icon.menu .item>i.icon:not(.dropdown){margin:0;opacity:1}.ui.icon.menu i.icon:before{opacity:1}.ui.menu .icon.item>i.icon{width:auto;margin:0 auto}.ui.vertical.icon.menu .item>i.icon:not(.dropdown){display:block;opacity:1;margin:0 auto;float:none}.ui.inverted.icon.menu .item{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu .item{min-width:6em;flex-direction:column}.ui.labeled.icon.menu>.item>i.icon:not(.dropdown){height:1em;display:block;font-size:1.71428571em!important;margin:0 auto .5rem!important}.ui.fluid.labeled.icon.menu>.item{min-width:0}@media only screen and (max-width:767.98px){.ui.stackable.menu{flex-direction:column}.ui.stackable.menu .item{width:100%!important}.ui.stackable.menu .item:before{position:absolute;content:"";top:auto;bottom:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.stackable.menu .left.item,.ui.stackable.menu .left.menu{margin-right:0!important}.ui.stackable.menu .right.item,.ui.stackable.menu .right.menu{margin-left:0!important}.ui.stackable.menu .center.item,.ui.stackable.menu .center.menu{margin-left:0!important;margin-right:0!important}.ui.stackable.menu .center.menu,.ui.stackable.menu .left.menu,.ui.stackable.menu .right.menu{flex-direction:column}}.ui.ui.primary.menu .active.item,.ui.ui.primary.menu .active.item:hover,.ui.ui.ui.menu .primary.active.item{color:#2185d0}.ui.ui.red.menu .active.item,.ui.ui.red.menu .active.item:hover,.ui.ui.ui.menu .red.active.item{color:#db2828}.ui.ui.orange.menu .active.item,.ui.ui.orange.menu .active.item:hover,.ui.ui.ui.menu .orange.active.item{color:#f2711c}.ui.ui.ui.menu .yellow.active.item,.ui.ui.yellow.menu .active.item,.ui.ui.yellow.menu .active.item:hover{color:#fbbd08}.ui.ui.olive.menu .active.item,.ui.ui.olive.menu .active.item:hover,.ui.ui.ui.menu .olive.active.item{color:#b5cc18}.ui.ui.green.menu .active.item,.ui.ui.green.menu .active.item:hover,.ui.ui.ui.menu .green.active.item{color:#21ba45}.ui.ui.teal.menu .active.item,.ui.ui.teal.menu .active.item:hover,.ui.ui.ui.menu .teal.active.item{color:#00b5ad}.ui.ui.blue.menu .active.item,.ui.ui.blue.menu .active.item:hover,.ui.ui.ui.menu .blue.active.item{color:#2185d0}.ui.ui.ui.menu .violet.active.item,.ui.ui.violet.menu .active.item,.ui.ui.violet.menu .active.item:hover{color:#6435c9}.ui.ui.purple.menu .active.item,.ui.ui.purple.menu .active.item:hover,.ui.ui.ui.menu .purple.active.item{color:#a333c8}.ui.ui.pink.menu .active.item,.ui.ui.pink.menu .active.item:hover,.ui.ui.ui.menu .pink.active.item{color:#e03997}.ui.ui.brown.menu .active.item,.ui.ui.brown.menu .active.item:hover,.ui.ui.ui.menu .brown.active.item{color:#a5673f}.ui.ui.grey.menu .active.item,.ui.ui.grey.menu .active.item:hover,.ui.ui.ui.menu .grey.active.item{color:#767676}.ui.ui.black.menu .active.item,.ui.ui.black.menu .active.item:hover,.ui.ui.ui.menu .black.active.item{color:#1b1c1d}.ui.inverted.menu{border:0 solid transparent;background:#1b1c1d;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a:not(.ui){background:0 0;color:hsla(0,0%,100%,.9)}.ui.inverted.menu .item.menu{background:0 0}.ui.inverted.menu .item:before,.ui.vertical.inverted.menu .item:before{background:hsla(0,0%,100%,.08)}.ui.vertical.inverted.menu .menu .item,.ui.vertical.inverted.menu .menu .item a:not(.ui){color:hsla(0,0%,100%,.5)}.ui.inverted.menu .header.item{margin:0;background:0 0;box-shadow:none}.ui.ui.inverted.menu .item.disabled{color:hsla(0,0%,88.2%,.3)}.ui.inverted.menu .dropdown.item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.link.inverted.menu .item:hover{background:hsla(0,0%,100%,.08);color:#fff}.ui.vertical.inverted.menu .item .menu .link.item:hover,.ui.vertical.inverted.menu .item .menu a.item:hover{background:0 0;color:#fff}.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background:hsla(0,0%,100%,.08);color:#fff}.ui.inverted.menu .active.item{background:#3d3e3f;color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background:0 0;color:#fff}.ui.inverted.pointing.menu .active.item:after{background:#3d3e3f;margin:0!important;box-shadow:none!important;border:none!important}.ui.inverted.menu .active.item:hover{background:#3d3e3f;color:#fff!important}.ui.inverted.pointing.menu .active.item:hover:after{background:#3d3e3f}.ui.floated.menu{float:left;margin:0 .5rem 0 0}.ui.floated.menu .item:last-child:before{display:none}.ui.right.floated.menu{float:right;margin:0 0 0 .5rem}.ui.ui.inverted.primary.menu,.ui.ui.ui.inverted.menu .primary.active.item{background-color:#2185d0}.ui.inverted.primary.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.primary.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.primary.menu .active.item{background-color:#1678c2}.ui.ui.inverted.red.menu,.ui.ui.ui.inverted.menu .red.active.item{background-color:#db2828}.ui.inverted.red.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.red.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.red.menu .active.item{background-color:#d01919}.ui.ui.inverted.orange.menu,.ui.ui.ui.inverted.menu .orange.active.item{background-color:#f2711c}.ui.inverted.orange.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.orange.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.orange.menu .active.item{background-color:#f26202}.ui.ui.inverted.yellow.menu,.ui.ui.ui.inverted.menu .yellow.active.item{background-color:#fbbd08}.ui.inverted.yellow.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.yellow.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.yellow.menu .active.item{background-color:#eaae00}.ui.ui.inverted.olive.menu,.ui.ui.ui.inverted.menu .olive.active.item{background-color:#b5cc18}.ui.inverted.olive.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.olive.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.olive.menu .active.item{background-color:#a7bd0d}.ui.ui.inverted.green.menu,.ui.ui.ui.inverted.menu .green.active.item{background-color:#21ba45}.ui.inverted.green.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.green.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.green.menu .active.item{background-color:#16ab39}.ui.ui.inverted.teal.menu,.ui.ui.ui.inverted.menu .teal.active.item{background-color:#00b5ad}.ui.inverted.teal.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.teal.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.teal.menu .active.item{background-color:#009c95}.ui.ui.inverted.blue.menu,.ui.ui.ui.inverted.menu .blue.active.item{background-color:#2185d0}.ui.inverted.blue.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.blue.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.blue.menu .active.item{background-color:#1678c2}.ui.ui.inverted.violet.menu,.ui.ui.ui.inverted.menu .violet.active.item{background-color:#6435c9}.ui.inverted.violet.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.violet.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.violet.menu .active.item{background-color:#5829bb}.ui.ui.inverted.purple.menu,.ui.ui.ui.inverted.menu .purple.active.item{background-color:#a333c8}.ui.inverted.purple.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.purple.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.purple.menu .active.item{background-color:#9627ba}.ui.ui.inverted.pink.menu,.ui.ui.ui.inverted.menu .pink.active.item{background-color:#e03997}.ui.inverted.pink.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.pink.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.pink.menu .active.item{background-color:#e61a8d}.ui.ui.inverted.brown.menu,.ui.ui.ui.inverted.menu .brown.active.item{background-color:#a5673f}.ui.inverted.brown.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.brown.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.brown.menu .active.item{background-color:#975b33}.ui.ui.inverted.grey.menu,.ui.ui.ui.inverted.menu .grey.active.item{background-color:#767676}.ui.inverted.grey.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.grey.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.grey.menu .active.item{background-color:#838383}.ui.ui.inverted.black.menu,.ui.ui.ui.inverted.menu .black.active.item{background-color:#1b1c1d}.ui.inverted.black.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.ui.inverted.black.menu .active.item{background-color:rgba(0,0,0,.1)}.ui.inverted.pointing.black.menu .active.item{background-color:#27292a}.ui.ui.ui.inverted.pointing.menu .active.item:after{background-color:inherit}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.92857143em;padding-bottom:.92857143em}.ui.menu .vertically.fitted.item,.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item{padding-left:1.14285714em;padding-right:1.14285714em}.ui.borderless.menu .item .menu .item:before,.ui.borderless.menu .item:before,.ui.menu .borderless.item:before{background:0 0!important}.ui.compact.menu{display:inline-flex;margin:0;vertical-align:middle}.ui.compact.vertical.menu{display:-ms-inline-flexbox!important;display:inline-block}.ui.compact.menu:not(.secondary) .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.compact.menu .item:last-child:before{display:none}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child:before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;text-align:center;justify-content:center}.ui.attached.item.menu:not(.tabular){margin:0 -1px!important}.ui.item.menu .item:last-child:before{display:none}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:101;margin:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.fixed.menu,.ui[class*="top fixed"].menu{top:0;left:0;right:auto;bottom:auto}.ui[class*="top fixed"].menu{border-top:none;border-left:none;border-right:none}.ui[class*="right fixed"].menu{border-top:none;border-bottom:none;border-right:none;top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui[class*="bottom fixed"].menu{border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;top:auto;right:auto}.ui[class*="left fixed"].menu{border-top:none;border-bottom:none;border-left:none;top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .item:after{visibility:hidden;position:absolute;content:"";top:100%;left:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);background:0 0;margin:.5px 0 0;width:.57142857em;height:.57142857em;border:1px solid #d4d4d5;border-top:none;border-left:none;z-index:2;transition:background .1s ease}.ui.vertical.pointing.menu .item:after{position:absolute;top:50%;right:0;bottom:auto;left:auto;transform:translateX(50%) translateY(-50%) rotate(45deg);margin:0 -.5px 0 0;border:1px solid #d4d4d5;border-bottom:none;border-left:none}.ui.pointing.menu .ui.dropdown .menu .item:after,.ui.vertical.pointing.menu .ui.dropdown .menu .item:after{display:none}.ui.pointing.menu .active.item:after{visibility:visible}.ui.pointing.menu .active.dropdown.item:after{visibility:hidden}.ui.pointing.menu .active.item .menu .active.item:after,.ui.pointing.menu .dropdown.active.item:after{display:none}.ui.pointing.menu .active.item:after,.ui.pointing.menu .active.item:hover:after,.ui.vertical.pointing.menu .active.item:after,.ui.vertical.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#fff}.ui.inverted.pointing.menu .primary.active.item:after{background-color:#2185d0}.ui.inverted.pointing.menu .secondary.active.item:after{background-color:#1b1c1d}.ui.inverted.pointing.menu .red.active.item:after{background-color:#db2828}.ui.inverted.pointing.menu .orange.active.item:after{background-color:#f2711c}.ui.inverted.pointing.menu .yellow.active.item:after{background-color:#fbbd08}.ui.inverted.pointing.menu .olive.active.item:after{background-color:#b5cc18}.ui.inverted.pointing.menu .green.active.item:after{background-color:#21ba45}.ui.inverted.pointing.menu .teal.active.item:after{background-color:#00b5ad}.ui.inverted.pointing.menu .blue.active.item:after{background-color:#2185d0}.ui.inverted.pointing.menu .violet.active.item:after{background-color:#6435c9}.ui.inverted.pointing.menu .purple.active.item:after{background-color:#a333c8}.ui.inverted.pointing.menu .pink.active.item:after{background-color:#e03997}.ui.inverted.pointing.menu .brown.active.item:after{background-color:#a5673f}.ui.inverted.pointing.menu .grey.active.item:after{background-color:#767676}.ui.inverted.pointing.menu .black.active.item:after{background-color:#1b1c1d}.ui.attached.menu{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% + 2px);max-width:calc(100% + 2px);box-shadow:none}.ui.attached+.ui.attached.menu:not(.top){border-top:none}.ui[class*="top attached"].menu{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.28571429rem .28571429rem 0 0}.ui.menu[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].menu{bottom:0;margin-top:0;top:0;margin-bottom:1rem;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui[class*="bottom attached"].menu:last-child{margin-bottom:0}.ui.top.attached.menu>.item:first-child{border-radius:.28571429rem 0 0 0}.ui.bottom.attached.menu>.item:first-child{border-radius:0 0 0 .28571429rem}.ui.attached.menu:not(.tabular){border:1px solid #d4d4d5}.ui.attached.inverted.menu{border:none}.ui.attached.tabular.menu{margin-left:0;margin-right:0;width:100%}.ui.menu{font-size:1rem}.ui.vertical.menu{width:15rem}.ui.mini.menu,.ui.mini.menu .dropdown,.ui.mini.menu .dropdown .menu>.item{font-size:.78571429rem}.ui.mini.vertical.menu:not(.icon){width:9rem}.ui.tiny.menu,.ui.tiny.menu .dropdown,.ui.tiny.menu .dropdown .menu>.item{font-size:.85714286rem}.ui.tiny.vertical.menu:not(.icon){width:11rem}.ui.small.menu,.ui.small.menu .dropdown,.ui.small.menu .dropdown .menu>.item{font-size:.92857143rem}.ui.small.vertical.menu:not(.icon){width:13rem}.ui.large.menu,.ui.large.menu .dropdown,.ui.large.menu .dropdown .menu>.item{font-size:1.07142857rem}.ui.large.vertical.menu:not(.icon){width:18rem}.ui.big.menu,.ui.big.menu .dropdown,.ui.big.menu .dropdown .menu>.item{font-size:1.14285714rem}.ui.big.vertical.menu:not(.icon){width:20rem}.ui.huge.menu,.ui.huge.menu .dropdown,.ui.huge.menu .dropdown .menu>.item{font-size:1.21428571rem}.ui.huge.vertical.menu:not(.icon){width:22rem}.ui.massive.menu,.ui.massive.menu .dropdown,.ui.massive.menu .dropdown .menu>.item{font-size:1.28571429rem}.ui.massive.vertical.menu:not(.icon){width:25rem}.ui.menu .ui.inverted.inverted.dropdown.item .menu{background:#1b1c1d;box-shadow:none}.ui.menu .ui.inverted.dropdown .menu>.item{color:hsla(0,0%,100%,.8)!important}.ui.menu .ui.inverted.dropdown .menu>.active.item{background:0 0!important;color:hsla(0,0%,100%,.8)!important}.ui.menu .ui.inverted.dropdown .menu>.item:hover{background:hsla(0,0%,100%,.08)!important;color:hsla(0,0%,100%,.8)!important}.ui.menu .ui.inverted.dropdown .menu>.selected.item{background:hsla(0,0%,100%,.15)!important;color:hsla(0,0%,100%,.8)!important}.ui.vertical.menu .inverted.dropdown.item .menu{box-shadow:none}/*!
+ * # Fomantic-UI - Message
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.message{position:relative;min-height:1em;margin:1em 0;background:#f8f8f9;padding:1em 1.5em;line-height:1.4285em;color:rgba(0,0,0,.87);transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;border-radius:.28571429rem;box-shadow:inset 0 0 0 1px rgba(34,36,38,.22),0 0 0 0 transparent}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message .header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;margin:-.14285714em 0 0}.ui.message .header:not(.ui){font-size:1.14285714em}.ui.message p{opacity:.85;margin:.75em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.25em}.ui.message .list:not(.ui){text-align:left;padding:0;opacity:.85;list-style-position:inside;margin:.5em 0 0}.ui.message .list:not(.ui):first-child{margin-top:0}.ui.message .list:not(.ui):last-child{margin-bottom:0}.ui.message .list:not(.ui) li{position:relative;list-style-type:none;margin:0 0 .3em 1em;padding:0}.ui.message .list:not(.ui) li:before{position:absolute;content:"•";left:-1em;height:100%;vertical-align:baseline}.ui.message .list:not(.ui) li:last-child{margin-bottom:0}.ui.message>i.icon{margin-right:.6em}.ui.message>.close.icon{cursor:pointer;position:absolute;margin:0;top:.78575em;right:.5em;opacity:.7;transition:opacity .1s ease}.ui.message>.close.icon:hover{opacity:1}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.dropdown .menu>.message{margin:0 -1px}.ui.visible.visible.visible.visible.message{display:block}.ui.icon.visible.visible.visible.visible.message{display:flex}.ui.hidden.hidden.hidden.hidden.message{display:none}.ui.compact.message{display:inline-block}.ui.compact.icon.message{display:inline-flex;width:auto}.ui.attached.message{margin-bottom:-1px;border-radius:.28571429rem .28571429rem 0 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15);margin-left:-1px;margin-right:-1px}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .28571429rem .28571429rem;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15),0 1px 2px 0 rgba(34,36,38,.15)}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{width:auto}.ui.icon.message{display:flex;width:100%;align-items:center}.ui.icon.message>i.icon:not(.close){display:block;flex:0 0 auto;width:auto;line-height:1;vertical-align:middle;font-size:3em;opacity:.8}.ui.icon.message>.content{display:block;flex:1 1 auto;vertical-align:middle}.ui.icon.message>i.icon:not(.close)+.content{padding-left:0}.ui.icon.message>i.circular.icon{width:1em}.ui.floating.message{box-shadow:inset 0 0 0 1px rgba(34,36,38,.22),0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.positive.message{background-color:#fcfff5;color:#2c662d}.ui.attached.positive.message,.ui.positive.message{box-shadow:inset 0 0 0 1px #a3c293,0 0 0 0 transparent}.ui.floating.positive.message{box-shadow:inset 0 0 0 1px #a3c293,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.positive.message .header{color:#1a531b}.ui.negative.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.negative.message,.ui.negative.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 0 0 0 transparent}.ui.floating.negative.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.negative.message .header{color:#912d2b}.ui.info.message{background-color:#f8ffff;color:#276f86}.ui.attached.info.message,.ui.info.message{box-shadow:inset 0 0 0 1px #a9d5de,0 0 0 0 transparent}.ui.floating.info.message{box-shadow:inset 0 0 0 1px #a9d5de,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.info.message .header{color:#0e566c}.ui.warning.message{background-color:#fffaf3;color:#573a08}.ui.attached.warning.message,.ui.warning.message{box-shadow:inset 0 0 0 1px #c9ba9b,0 0 0 0 transparent}.ui.floating.warning.message{box-shadow:inset 0 0 0 1px #c9ba9b,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.warning.message .header{color:#794b02}.ui.error.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.error.message,.ui.error.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 0 0 0 transparent}.ui.floating.error.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.error.message .header{color:#912d2b}.ui.success.message{background-color:#fcfff5;color:#2c662d}.ui.attached.success.message,.ui.success.message{box-shadow:inset 0 0 0 1px #a3c293,0 0 0 0 transparent}.ui.floating.success.message{box-shadow:inset 0 0 0 1px #a3c293,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.success.message .header{color:#1a531b}.ui.primary.message{background-color:#dff0ff;color:hsla(0,0%,100%,.9)}.ui.attached.primary.message,.ui.primary.message{box-shadow:inset 0 0 0 1px #2185d0,0 0 0 0 transparent}.ui.floating.primary.message{box-shadow:inset 0 0 0 1px #2185d0,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.primary.message .header{color:hsla(0,0%,94.9%,.9)}.ui.secondary.message{background-color:#f4f4f4;color:hsla(0,0%,100%,.9)}.ui.attached.secondary.message,.ui.secondary.message{box-shadow:inset 0 0 0 1px #1b1c1d,0 0 0 0 transparent}.ui.floating.secondary.message{box-shadow:inset 0 0 0 1px #1b1c1d,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.secondary.message .header{color:hsla(0,0%,94.9%,.9)}.ui.red.message{background-color:#ffe8e6;color:#db2828}.ui.attached.red.message,.ui.red.message{box-shadow:inset 0 0 0 1px #db2828,0 0 0 0 transparent}.ui.floating.red.message{box-shadow:inset 0 0 0 1px #db2828,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.red.message .header{color:#c82121}.ui.orange.message{background-color:#ffedde;color:#f2711c}.ui.attached.orange.message,.ui.orange.message{box-shadow:inset 0 0 0 1px #f2711c,0 0 0 0 transparent}.ui.floating.orange.message{box-shadow:inset 0 0 0 1px #f2711c,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.orange.message .header{color:#e7640d}.ui.yellow.message{background-color:#fff8db;color:#b58105}.ui.attached.yellow.message,.ui.yellow.message{box-shadow:inset 0 0 0 1px #b58105,0 0 0 0 transparent}.ui.floating.yellow.message{box-shadow:inset 0 0 0 1px #b58105,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.yellow.message .header{color:#9c6f04}.ui.olive.message{background-color:#fbfdef;color:#8abc1e}.ui.attached.olive.message,.ui.olive.message{box-shadow:inset 0 0 0 1px #8abc1e,0 0 0 0 transparent}.ui.floating.olive.message{box-shadow:inset 0 0 0 1px #8abc1e,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.olive.message .header{color:#7aa61a}.ui.green.message{background-color:#e5f9e7;color:#1ebc30}.ui.attached.green.message,.ui.green.message{box-shadow:inset 0 0 0 1px #1ebc30,0 0 0 0 transparent}.ui.floating.green.message{box-shadow:inset 0 0 0 1px #1ebc30,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.green.message .header{color:#1aa62a}.ui.teal.message{background-color:#e1f7f7;color:#10a3a3}.ui.attached.teal.message,.ui.teal.message{box-shadow:inset 0 0 0 1px #10a3a3,0 0 0 0 transparent}.ui.floating.teal.message{box-shadow:inset 0 0 0 1px #10a3a3,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.teal.message .header{color:#0e8c8c}.ui.blue.message{background-color:#dff0ff;color:#2185d0}.ui.attached.blue.message,.ui.blue.message{box-shadow:inset 0 0 0 1px #2185d0,0 0 0 0 transparent}.ui.floating.blue.message{box-shadow:inset 0 0 0 1px #2185d0,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.blue.message .header{color:#1e77ba}.ui.violet.message{background-color:#eae7ff;color:#6435c9}.ui.attached.violet.message,.ui.violet.message{box-shadow:inset 0 0 0 1px #6435c9,0 0 0 0 transparent}.ui.floating.violet.message{box-shadow:inset 0 0 0 1px #6435c9,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.violet.message .header{color:#5a30b5}.ui.purple.message{background-color:#f6e7ff;color:#a333c8}.ui.attached.purple.message,.ui.purple.message{box-shadow:inset 0 0 0 1px #a333c8,0 0 0 0 transparent}.ui.floating.purple.message{box-shadow:inset 0 0 0 1px #a333c8,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.purple.message .header{color:#922eb4}.ui.pink.message{background-color:#ffe3fb;color:#e03997}.ui.attached.pink.message,.ui.pink.message{box-shadow:inset 0 0 0 1px #e03997,0 0 0 0 transparent}.ui.floating.pink.message{box-shadow:inset 0 0 0 1px #e03997,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.pink.message .header{color:#dd238b}.ui.brown.message{background-color:#f1e2d3;color:#a5673f}.ui.attached.brown.message,.ui.brown.message{box-shadow:inset 0 0 0 1px #a5673f,0 0 0 0 transparent}.ui.floating.brown.message{box-shadow:inset 0 0 0 1px #a5673f,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.brown.message .header{color:#935b38}.ui.grey.message{background-color:#f4f4f4;color:#767676}.ui.attached.grey.message,.ui.grey.message{box-shadow:inset 0 0 0 1px #767676,0 0 0 0 transparent}.ui.floating.grey.message{box-shadow:inset 0 0 0 1px #767676,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.grey.message .header{color:#696969}.ui.black.message{background-color:#1b1c1d}.ui.black.message,.ui.black.message .header,.ui.inverted.message{color:hsla(0,0%,100%,.9)}.ui.inverted.message{background-color:#1b1c1d}.ui.message{font-size:1em}.ui.mini.message{font-size:.78571429em}.ui.tiny.message{font-size:.85714286em}.ui.small.message{font-size:.92857143em}.ui.large.message{font-size:1.14285714em}.ui.big.message{font-size:1.28571429em}.ui.huge.message{font-size:1.42857143em}.ui.massive.message{font-size:1.71428571em}/*!
+ * # Fomantic-UI - Table
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.table{width:100%;background:#fff;margin:1em 0;border:1px solid rgba(34,36,38,.15);box-shadow:none;border-radius:.28571429rem;text-align:left;vertical-align:middle;color:rgba(0,0,0,.87);border-collapse:separate;border-spacing:0}.ui.table:first-child{margin-top:0}.ui.table:last-child{margin-bottom:0}.ui.table>tbody,.ui.table>thead{text-align:inherit;vertical-align:inherit}.ui.table td,.ui.table th{transition:background .1s ease,color .1s ease}.ui.table td.rowspanned,.ui.table th.rowspanned{display:none}.ui.table>thead{box-shadow:none}.ui.table>thead>tr>th{cursor:auto;background:#f9fafb;text-align:inherit;color:rgba(0,0,0,.87);padding:.92857143em .78571429em;vertical-align:inherit;font-style:none;font-weight:700;text-transform:none;border-bottom:1px solid rgba(34,36,38,.1);border-left:none}.ui.table>thead>tr>th:first-child{border-left:none}.ui.table>thead>tr:first-child>th:first-child{border-radius:.28571429rem 0 0 0}.ui.table>thead>tr:first-child>th:last-child{border-radius:0 .28571429rem 0 0}.ui.table>thead>tr:first-child>th:only-child{border-radius:.28571429rem .28571429rem 0 0}.ui.table>tfoot{box-shadow:none}.ui.table>tfoot>tr>td,.ui.table>tfoot>tr>th{cursor:auto;border-top:1px solid rgba(34,36,38,.15);background:#f9fafb;text-align:inherit;color:rgba(0,0,0,.87);padding:.78571429em;vertical-align:inherit;font-style:normal;font-weight:400;text-transform:none}.ui.table>tfoot>tr>td:first-child,.ui.table>tfoot>tr>th:first-child{border-left:none}.ui.table>tfoot>tr:first-child>td:first-child,.ui.table>tfoot>tr:first-child>th:first-child{border-radius:0 0 0 .28571429rem}.ui.table>tfoot>tr:first-child>td:last-child,.ui.table>tfoot>tr:first-child>th:last-child{border-radius:0 0 .28571429rem 0}.ui.table>tfoot>tr:first-child>td:only-child,.ui.table>tfoot>tr:first-child>th:only-child{border-radius:0 0 .28571429rem .28571429rem}.ui.table>tbody>tr>td,.ui.table>tr>td{border-top:1px solid rgba(34,36,38,.1)}.ui.table>tbody>tr:first-child>td,.ui.table>tr:first-child>td{border-top:none}.ui.table>tbody+tbody tr:first-child>td{border-top:1px solid rgba(34,36,38,.1)}.ui.table>tbody>tr>td,.ui.table>tr>td{padding:.78571429em;text-align:inherit}.ui.table>i.icon{vertical-align:baseline}.ui.table>i.icon:only-child{margin:0}.ui.table.segment{padding:0}.ui.table.segment:after{display:none}.ui.table.segment.stacked:after{display:block}@media only screen and (max-width:767.98px){.ui.table:not(.unstackable){width:100%;padding:0}.ui.table:not(.unstackable)>tbody,.ui.table:not(.unstackable)>tbody>tr,.ui.table:not(.unstackable)>tbody>tr>td:not(.rowspanned),.ui.table:not(.unstackable)>tbody>tr>th:not(.rowspanned),.ui.table:not(.unstackable)>tfoot,.ui.table:not(.unstackable)>tfoot>tr,.ui.table:not(.unstackable)>tfoot>tr>td:not(.rowspanned),.ui.table:not(.unstackable)>tfoot>tr>th:not(.rowspanned),.ui.table:not(.unstackable)>thead,.ui.table:not(.unstackable)>thead>tr,.ui.table:not(.unstackable)>thead>tr>th:not(.rowspanned),.ui.table:not(.unstackable)>tr,.ui.table:not(.unstackable)>tr>td:not(.rowspanned),.ui.table:not(.unstackable)>tr>th:not(.rowspanned){display:block!important;width:auto!important}.ui.table:not(.unstackable)>tfoot,.ui.table:not(.unstackable)>thead{display:block}.ui.ui.ui.ui.table:not(.unstackable)>tbody>tr,.ui.ui.ui.ui.table:not(.unstackable)>tfoot>tr,.ui.ui.ui.ui.table:not(.unstackable)>thead>tr,.ui.ui.ui.ui.table:not(.unstackable)>tr{padding-top:1em;padding-bottom:1em;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1)}.ui.ui.ui.ui.table:not(.unstackable)>tbody>tr>td,.ui.ui.ui.ui.table:not(.unstackable)>tbody>tr>th,.ui.ui.ui.ui.table:not(.unstackable)>tfoot>tr>td,.ui.ui.ui.ui.table:not(.unstackable)>tfoot>tr>th,.ui.ui.ui.ui.table:not(.unstackable)>thead>tr>th,.ui.ui.ui.ui.table:not(.unstackable)>tr>td,.ui.ui.ui.ui.table:not(.unstackable)>tr>th{background:0 0;border:none;padding:.25em .75em;box-shadow:none}.ui.table:not(.unstackable)>tbody>tr>td:first-child,.ui.table:not(.unstackable)>tbody>tr>th:first-child,.ui.table:not(.unstackable)>tfoot>tr>td:first-child,.ui.table:not(.unstackable)>tfoot>tr>th:first-child,.ui.table:not(.unstackable)>thead>tr>th:first-child,.ui.table:not(.unstackable)>tr>td:first-child,.ui.table:not(.unstackable)>tr>th:first-child{font-weight:700}.ui.definition.table:not(.unstackable)>thead>tr>th:first-child{box-shadow:none!important}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.primary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #2185d0}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.primary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #2185d0}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.primary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #54c8ff}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.primary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #54c8ff}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.secondary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #1b1c1d}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.secondary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #1b1c1d}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.secondary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #545454}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.secondary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #545454}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.red.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #db2828}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.red.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #db2828}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.red.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ff695e}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.red.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ff695e}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.orange.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #f2711c}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.orange.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #f2711c}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.orange.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ff851b}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.orange.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ff851b}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.yellow.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #fbbd08}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.yellow.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #fbbd08}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.yellow.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ffe21f}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.yellow.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ffe21f}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.olive.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #b5cc18}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.olive.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #b5cc18}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.olive.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #d9e778}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.olive.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #d9e778}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.green.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #21ba45}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.green.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #21ba45}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.green.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #2ecc40}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.green.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #2ecc40}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.teal.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #00b5ad}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.teal.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #00b5ad}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.teal.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #6dffff}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.teal.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #6dffff}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.blue.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #2185d0}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.blue.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #2185d0}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.blue.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #54c8ff}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.blue.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #54c8ff}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.violet.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #6435c9}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.violet.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #6435c9}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.violet.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #a291fb}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.violet.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #a291fb}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.purple.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #a333c8}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.purple.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #a333c8}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.purple.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #dc73ff}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.purple.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #dc73ff}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.pink.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #e03997}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.pink.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #e03997}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.pink.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ff8edf}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.pink.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ff8edf}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.brown.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #a5673f}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.brown.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #a5673f}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.brown.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #d67c1c}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.brown.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #d67c1c}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.grey.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #767676}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.grey.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #767676}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.grey.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #dcddde}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.grey.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #dcddde}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.black.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #1b1c1d}.ui.ui.ui.ui.table:not(.unstackable) tr.marked.black.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #1b1c1d}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.black.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #545454}.ui.ui.ui.ui.inverted.table:not(.unstackable) tr.marked.black.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #545454}}.ui.table .collapsing .image,.ui.table .collapsing .image img{max-width:none}.ui.structured.table{border-collapse:collapse}.ui.structured.table>thead>tr>th{border-left:none;border-right:none}.ui.structured.sortable.table>thead>tr>th{border-left:1px solid rgba(34,36,38,.15);border-right:1px solid rgba(34,36,38,.15)}.ui.structured.basic.table>tbody>tr>th,.ui.structured.basic.table>tfoot>tr>th,.ui.structured.basic.table>thead>tr>th,.ui.structured.basic.table>tr>th{border-left:none;border-right:none}.ui.structured.celled.table>tbody>tr>td,.ui.structured.celled.table>tbody>tr>th,.ui.structured.celled.table>tfoot>tr>td,.ui.structured.celled.table>tfoot>tr>th,.ui.structured.celled.table>thead>tr>th,.ui.structured.celled.table>tr>td,.ui.structured.celled.table>tr>th{border-left:1px solid rgba(34,36,38,.1);border-right:1px solid rgba(34,36,38,.1)}.ui.definition.table>thead:not(.full-width)>tr>th:first-child{pointer-events:none;background:#fff;font-weight:400;color:rgba(0,0,0,.4);box-shadow:-.1em -.2em 0 .1em #fff;-moz-transform:scale(1)}.ui.definition.table>tfoot:not(.full-width)>tr>th:first-child{pointer-events:none;background:#fff;font-weight:400;color:rgba(0,0,0,.4);box-shadow:-.1em .2em 0 .1em #fff;-moz-transform:scale(1)}.ui.definition.table>tbody>tr>td:first-child:not(.ignored),.ui.definition.table>tfoot>tr>td:first-child:not(.ignored),.ui.definition.table>tr>td:first-child:not(.ignored),.ui.definition.table tr td.definition{background:rgba(0,0,0,.03);font-weight:700;color:rgba(0,0,0,.95);text-transform:"";box-shadow:"";text-align:"";font-size:1em;padding-left:"";padding-right:""}.ui.definition.table>tbody>tr>td:nth-child(2),.ui.definition.table>tfoot:not(.full-width)>tr>td:nth-child(2),.ui.definition.table>tfoot:not(.full-width)>tr>th:nth-child(2),.ui.definition.table>thead:not(.full-width)>tr>th:nth-child(2),.ui.definition.table>tr>td:nth-child(2){border-left:1px solid rgba(34,36,38,.15)}.ui.ui.table td.positive,.ui.ui.ui.ui.table tr.positive{box-shadow:inset 0 0 0 #a3c293;background:#fcfff5;color:#2c662d}.ui.ui.table td.error,.ui.ui.table td.negative,.ui.ui.ui.ui.table tr.error,.ui.ui.ui.ui.table tr.negative{box-shadow:inset 0 0 0 #e0b4b4;background:#fff6f6;color:#9f3a38}.ui.ui.table td.warning,.ui.ui.ui.ui.table tr.warning{box-shadow:inset 0 0 0 #c9ba9b;background:#fffaf3;color:#573a08}.ui.ui.table td.active,.ui.ui.ui.ui.table tr.active{box-shadow:inset 0 0 0 rgba(0,0,0,.87);background:#e0e0e0;color:rgba(0,0,0,.87)}.ui.table tr.disabled:hover,.ui.table tr.disabled td,.ui.table tr:hover td.disabled,.ui.table tr td.disabled{pointer-events:none;color:rgba(40,40,40,.3)}@media only screen and (max-width:991.98px){.ui[class*="tablet stackable"].table,.ui[class*="tablet stackable"].table>tbody,.ui[class*="tablet stackable"].table>tbody>tr,.ui[class*="tablet stackable"].table>tbody>tr>td:not(.rowspanned),.ui[class*="tablet stackable"].table>tbody>tr>th:not(.rowspanned),.ui[class*="tablet stackable"].table>tfoot,.ui[class*="tablet stackable"].table>tfoot>tr,.ui[class*="tablet stackable"].table>tfoot>tr>td:not(.rowspanned),.ui[class*="tablet stackable"].table>tfoot>tr>th:not(.rowspanned),.ui[class*="tablet stackable"].table>thead,.ui[class*="tablet stackable"].table>thead>tr,.ui[class*="tablet stackable"].table>thead>tr>th:not(.rowspanned),.ui[class*="tablet stackable"].table>tr,.ui[class*="tablet stackable"].table>tr>td:not(.rowspanned),.ui[class*="tablet stackable"].table>tr>th:not(.rowspanned){display:block!important;width:100%!important}.ui[class*="tablet stackable"].table{padding:0}.ui[class*="tablet stackable"].table>tfoot,.ui[class*="tablet stackable"].table>thead{display:block}.ui.ui.ui.ui[class*="tablet stackable"].table>tbody>tr,.ui.ui.ui.ui[class*="tablet stackable"].table>tfoot>tr,.ui.ui.ui.ui[class*="tablet stackable"].table>thead>tr,.ui.ui.ui.ui[class*="tablet stackable"].table>tr{padding-top:1em;padding-bottom:1em;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1)}.ui[class*="tablet stackable"].table>tbody>tr>td,.ui[class*="tablet stackable"].table>tbody>tr>th,.ui[class*="tablet stackable"].table>tfoot>tr>td,.ui[class*="tablet stackable"].table>tfoot>tr>th,.ui[class*="tablet stackable"].table>thead>tr>th,.ui[class*="tablet stackable"].table>tr>td,.ui[class*="tablet stackable"].table>tr>th{background:0 0;border:none!important;padding:.25em .75em;box-shadow:none}.ui.definition[class*="tablet stackable"].table>thead>tr>th:first-child{box-shadow:none!important}}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.primary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #2185d0}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.primary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #2185d0}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.primary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #54c8ff}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.primary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #54c8ff}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.secondary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #1b1c1d}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.secondary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #1b1c1d}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.secondary.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #545454}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.secondary.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #545454}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.red.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #db2828}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.red.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #db2828}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.red.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ff695e}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.red.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ff695e}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.orange.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #f2711c}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.orange.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #f2711c}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.orange.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ff851b}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.orange.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ff851b}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.yellow.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #fbbd08}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.yellow.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #fbbd08}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.yellow.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ffe21f}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.yellow.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ffe21f}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.olive.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #b5cc18}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.olive.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #b5cc18}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.olive.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #d9e778}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.olive.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #d9e778}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.green.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #21ba45}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.green.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #21ba45}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.green.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #2ecc40}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.green.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #2ecc40}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.teal.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #00b5ad}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.teal.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #00b5ad}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.teal.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #6dffff}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.teal.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #6dffff}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.blue.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #2185d0}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.blue.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #2185d0}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.blue.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #54c8ff}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.blue.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #54c8ff}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.violet.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #6435c9}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.violet.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #6435c9}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.violet.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #a291fb}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.violet.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #a291fb}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.purple.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #a333c8}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.purple.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #a333c8}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.purple.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #dc73ff}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.purple.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #dc73ff}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.pink.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #e03997}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.pink.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #e03997}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.pink.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #ff8edf}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.pink.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #ff8edf}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.brown.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #a5673f}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.brown.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #a5673f}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.brown.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #d67c1c}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.brown.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #d67c1c}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.grey.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #767676}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.grey.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #767676}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.grey.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #dcddde}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.grey.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #dcddde}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.black.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #1b1c1d}.ui.ui.ui.ui[class*="tablet stackable"].table tr.marked.black.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #1b1c1d}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.black.left{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset .2em 0 0 0 #545454}.ui.ui.ui.ui[class*="tablet stackable"].inverted.table tr.marked.black.right{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1),inset -.2em 0 0 0 #545454}.ui.table[class*="left aligned"],.ui.table [class*="left aligned"]{text-align:left}.ui.table[class*="center aligned"],.ui.table [class*="center aligned"]{text-align:center}.ui.table[class*="right aligned"],.ui.table [class*="right aligned"]{text-align:right}.ui.table[class*="top aligned"],.ui.table [class*="top aligned"]{vertical-align:top}.ui.table[class*="middle aligned"],.ui.table [class*="middle aligned"]{vertical-align:middle}.ui.table[class*="bottom aligned"],.ui.table [class*="bottom aligned"]{vertical-align:bottom}.ui.table td.collapsing,.ui.table th.collapsing{width:1px;white-space:nowrap}.ui.fixed.table{table-layout:fixed}.ui.fixed.table td,.ui.fixed.table th{overflow:hidden;text-overflow:ellipsis}.ui.table tbody tr td.selectable:hover,.ui.ui.selectable.table>tbody>tr:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.inverted.table tbody tr td.selectable:hover,.ui.ui.selectable.inverted.table>tbody>tr:hover{background:hsla(0,0%,100%,.08);color:#fff}.ui.table tbody tr td.selectable{padding:0}.ui.table tbody tr td.selectable>a:not(.ui){display:block;color:inherit;padding:.78571429em}.ui.selectable.table>tbody>tr,.ui.selectable.table>tr,.ui.table>tbody>tr>td.selectable,.ui.table>tr>td.selectable{cursor:pointer}.ui.selectable.table tr:hover td.error,.ui.table tr td.selectable.error:hover,.ui.ui.selectable.table tr.error:hover{background:#ffe7e7;color:#943634}.ui.selectable.table tr:hover td.warning,.ui.table tr td.selectable.warning:hover,.ui.ui.selectable.table tr.warning:hover{background:#fff4e4;color:#493107}.ui.selectable.table tr:hover td.active,.ui.table tr td.selectable.active:hover,.ui.ui.selectable.table tr.active:hover{background:#e0e0e0;color:rgba(0,0,0,.87)}.ui.selectable.table tr:hover td.positive,.ui.table tr td.selectable.positive:hover,.ui.ui.selectable.table tr.positive:hover{background:#f7ffe6;color:#275b28}.ui.selectable.table tr:hover td.negative,.ui.table tr td.selectable.negative:hover,.ui.ui.selectable.table tr.negative:hover{background:#ffe7e7;color:#943634}.ui.attached.table{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% + 2px);max-width:calc(100% + 2px);box-shadow:none;border:1px solid #d4d4d5}.ui.attached+.ui.attached.table:not(.top){border-top:none}.ui[class*="top attached"].table{bottom:0;margin-bottom:0;top:0;margin-top:1em;border-radius:.28571429rem .28571429rem 0 0}.ui.table[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].table{bottom:0;margin-top:0;top:0;margin-bottom:1em;box-shadow:none,none;border-radius:0 0 .28571429rem .28571429rem}.ui[class*="bottom attached"].table:last-child{margin-bottom:0}.ui.striped.table>tbody>tr:nth-child(2n),.ui.striped.table>tr:nth-child(2n){background-color:rgba(0,0,50,.02)}.ui.inverted.striped.table>tbody>tr:nth-child(2n),.ui.inverted.striped.table>tr:nth-child(2n){background-color:hsla(0,0%,100%,.05)}.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover{background:#efefef;color:rgba(0,0,0,.95)}.ui.table[class*="single line"],.ui.table [class*="single line"]{white-space:nowrap}.ui.primary.table{border-top:.2em solid #2185d0}.ui.inverted.primary.table{background-color:#2185d0;color:#fff}.ui.ui.table td.primary:not(.marked),.ui.ui.ui.ui.table tr.primary:not(.marked){background:#ddf4ff;color:hsla(0,0%,100%,.9)}.ui.selectable.table tr:hover td.primary:not(.marked),.ui.table tr td.selectable.primary:not(.marked):hover,.ui.ui.selectable.table tr.primary:not(.marked):hover{background:#d3f1ff;color:hsla(0,0%,100%,.9)}.ui.table td.marked.primary.left,.ui.table tr.marked.primary.left{box-shadow:inset .2em 0 0 0 #2185d0}.ui.table td.marked.primary.right,.ui.table tr.marked.primary.right{box-shadow:inset -.2em 0 0 0 #2185d0}.ui.inverted.table td.marked.primary.left,.ui.inverted.table tr.marked.primary.left{box-shadow:inset .2em 0 0 0 #54c8ff}.ui.inverted.table td.marked.primary.right,.ui.inverted.table tr.marked.primary.right{box-shadow:inset -.2em 0 0 0 #54c8ff}.ui.secondary.table{border-top:.2em solid #1b1c1d}.ui.inverted.secondary.table{background-color:#1b1c1d;color:#fff}.ui.ui.table td.secondary:not(.marked),.ui.ui.ui.ui.table tr.secondary:not(.marked){background:#ddd;color:hsla(0,0%,100%,.9)}.ui.selectable.table tr:hover td.secondary:not(.marked),.ui.table tr td.selectable.secondary:not(.marked):hover,.ui.ui.selectable.table tr.secondary:not(.marked):hover{background:#e2e2e2;color:hsla(0,0%,100%,.9)}.ui.table td.marked.secondary.left,.ui.table tr.marked.secondary.left{box-shadow:inset .2em 0 0 0 #1b1c1d}.ui.table td.marked.secondary.right,.ui.table tr.marked.secondary.right{box-shadow:inset -.2em 0 0 0 #1b1c1d}.ui.inverted.table td.marked.secondary.left,.ui.inverted.table tr.marked.secondary.left{box-shadow:inset .2em 0 0 0 #545454}.ui.inverted.table td.marked.secondary.right,.ui.inverted.table tr.marked.secondary.right{box-shadow:inset -.2em 0 0 0 #545454}.ui.red.table{border-top:.2em solid #db2828}.ui.inverted.red.table{background-color:#db2828;color:#fff}.ui.ui.table td.red:not(.marked),.ui.ui.ui.ui.table tr.red:not(.marked){background:#ffe1df;color:#db2828}.ui.selectable.table tr:hover td.red:not(.marked),.ui.table tr td.selectable.red:not(.marked):hover,.ui.ui.selectable.table tr.red:not(.marked):hover{background:#ffd7d5;color:#db2828}.ui.table td.marked.red.left,.ui.table tr.marked.red.left{box-shadow:inset .2em 0 0 0 #db2828}.ui.table td.marked.red.right,.ui.table tr.marked.red.right{box-shadow:inset -.2em 0 0 0 #db2828}.ui.inverted.table td.marked.red.left,.ui.inverted.table tr.marked.red.left{box-shadow:inset .2em 0 0 0 #ff695e}.ui.inverted.table td.marked.red.right,.ui.inverted.table tr.marked.red.right{box-shadow:inset -.2em 0 0 0 #ff695e}.ui.orange.table{border-top:.2em solid #f2711c}.ui.inverted.orange.table{background-color:#f2711c;color:#fff}.ui.ui.table td.orange:not(.marked),.ui.ui.ui.ui.table tr.orange:not(.marked){background:#ffe7d1;color:#f2711c}.ui.selectable.table tr:hover td.orange:not(.marked),.ui.table tr td.selectable.orange:not(.marked):hover,.ui.ui.selectable.table tr.orange:not(.marked):hover{background:#fae1cc;color:#f2711c}.ui.table td.marked.orange.left,.ui.table tr.marked.orange.left{box-shadow:inset .2em 0 0 0 #f2711c}.ui.table td.marked.orange.right,.ui.table tr.marked.orange.right{box-shadow:inset -.2em 0 0 0 #f2711c}.ui.inverted.table td.marked.orange.left,.ui.inverted.table tr.marked.orange.left{box-shadow:inset .2em 0 0 0 #ff851b}.ui.inverted.table td.marked.orange.right,.ui.inverted.table tr.marked.orange.right{box-shadow:inset -.2em 0 0 0 #ff851b}.ui.yellow.table{border-top:.2em solid #fbbd08}.ui.inverted.yellow.table{background-color:#fbbd08;color:#fff}.ui.ui.table td.yellow:not(.marked),.ui.ui.ui.ui.table tr.yellow:not(.marked){background:#fff9d2;color:#b58105}.ui.selectable.table tr:hover td.yellow:not(.marked),.ui.table tr td.selectable.yellow:not(.marked):hover,.ui.ui.selectable.table tr.yellow:not(.marked):hover{background:#fbf5cc;color:#b58105}.ui.table td.marked.yellow.left,.ui.table tr.marked.yellow.left{box-shadow:inset .2em 0 0 0 #fbbd08}.ui.table td.marked.yellow.right,.ui.table tr.marked.yellow.right{box-shadow:inset -.2em 0 0 0 #fbbd08}.ui.inverted.table td.marked.yellow.left,.ui.inverted.table tr.marked.yellow.left{box-shadow:inset .2em 0 0 0 #ffe21f}.ui.inverted.table td.marked.yellow.right,.ui.inverted.table tr.marked.yellow.right{box-shadow:inset -.2em 0 0 0 #ffe21f}.ui.olive.table{border-top:.2em solid #b5cc18}.ui.inverted.olive.table{background-color:#b5cc18;color:#fff}.ui.ui.table td.olive:not(.marked),.ui.ui.ui.ui.table tr.olive:not(.marked){background:#f7fae4;color:#8abc1e}.ui.selectable.table tr:hover td.olive:not(.marked),.ui.table tr td.selectable.olive:not(.marked):hover,.ui.ui.selectable.table tr.olive:not(.marked):hover{background:#f6fada;color:#8abc1e}.ui.table td.marked.olive.left,.ui.table tr.marked.olive.left{box-shadow:inset .2em 0 0 0 #b5cc18}.ui.table td.marked.olive.right,.ui.table tr.marked.olive.right{box-shadow:inset -.2em 0 0 0 #b5cc18}.ui.inverted.table td.marked.olive.left,.ui.inverted.table tr.marked.olive.left{box-shadow:inset .2em 0 0 0 #d9e778}.ui.inverted.table td.marked.olive.right,.ui.inverted.table tr.marked.olive.right{box-shadow:inset -.2em 0 0 0 #d9e778}.ui.green.table{border-top:.2em solid #21ba45}.ui.inverted.green.table{background-color:#21ba45;color:#fff}.ui.ui.table td.green:not(.marked),.ui.ui.ui.ui.table tr.green:not(.marked){background:#d5f5d9;color:#1ebc30}.ui.selectable.table tr:hover td.green:not(.marked),.ui.table tr td.selectable.green:not(.marked):hover,.ui.ui.selectable.table tr.green:not(.marked):hover{background:#d2eed5;color:#1ebc30}.ui.table td.marked.green.left,.ui.table tr.marked.green.left{box-shadow:inset .2em 0 0 0 #21ba45}.ui.table td.marked.green.right,.ui.table tr.marked.green.right{box-shadow:inset -.2em 0 0 0 #21ba45}.ui.inverted.table td.marked.green.left,.ui.inverted.table tr.marked.green.left{box-shadow:inset .2em 0 0 0 #2ecc40}.ui.inverted.table td.marked.green.right,.ui.inverted.table tr.marked.green.right{box-shadow:inset -.2em 0 0 0 #2ecc40}.ui.teal.table{border-top:.2em solid #00b5ad}.ui.inverted.teal.table{background-color:#00b5ad;color:#fff}.ui.ui.table td.teal:not(.marked),.ui.ui.ui.ui.table tr.teal:not(.marked){background:#e2ffff;color:#10a3a3}.ui.selectable.table tr:hover td.teal:not(.marked),.ui.table tr td.selectable.teal:not(.marked):hover,.ui.ui.selectable.table tr.teal:not(.marked):hover{background:#d8ffff;color:#10a3a3}.ui.table td.marked.teal.left,.ui.table tr.marked.teal.left{box-shadow:inset .2em 0 0 0 #00b5ad}.ui.table td.marked.teal.right,.ui.table tr.marked.teal.right{box-shadow:inset -.2em 0 0 0 #00b5ad}.ui.inverted.table td.marked.teal.left,.ui.inverted.table tr.marked.teal.left{box-shadow:inset .2em 0 0 0 #6dffff}.ui.inverted.table td.marked.teal.right,.ui.inverted.table tr.marked.teal.right{box-shadow:inset -.2em 0 0 0 #6dffff}.ui.blue.table{border-top:.2em solid #2185d0}.ui.inverted.blue.table{background-color:#2185d0;color:#fff}.ui.ui.table td.blue:not(.marked),.ui.ui.ui.ui.table tr.blue:not(.marked){background:#ddf4ff;color:#2185d0}.ui.selectable.table tr:hover td.blue:not(.marked),.ui.table tr td.selectable.blue:not(.marked):hover,.ui.ui.selectable.table tr.blue:not(.marked):hover{background:#d3f1ff;color:#2185d0}.ui.table td.marked.blue.left,.ui.table tr.marked.blue.left{box-shadow:inset .2em 0 0 0 #2185d0}.ui.table td.marked.blue.right,.ui.table tr.marked.blue.right{box-shadow:inset -.2em 0 0 0 #2185d0}.ui.inverted.table td.marked.blue.left,.ui.inverted.table tr.marked.blue.left{box-shadow:inset .2em 0 0 0 #54c8ff}.ui.inverted.table td.marked.blue.right,.ui.inverted.table tr.marked.blue.right{box-shadow:inset -.2em 0 0 0 #54c8ff}.ui.violet.table{border-top:.2em solid #6435c9}.ui.inverted.violet.table{background-color:#6435c9;color:#fff}.ui.ui.table td.violet:not(.marked),.ui.ui.ui.ui.table tr.violet:not(.marked){background:#ece9fe;color:#6435c9}.ui.selectable.table tr:hover td.violet:not(.marked),.ui.table tr td.selectable.violet:not(.marked):hover,.ui.ui.selectable.table tr.violet:not(.marked):hover{background:#e3deff;color:#6435c9}.ui.table td.marked.violet.left,.ui.table tr.marked.violet.left{box-shadow:inset .2em 0 0 0 #6435c9}.ui.table td.marked.violet.right,.ui.table tr.marked.violet.right{box-shadow:inset -.2em 0 0 0 #6435c9}.ui.inverted.table td.marked.violet.left,.ui.inverted.table tr.marked.violet.left{box-shadow:inset .2em 0 0 0 #a291fb}.ui.inverted.table td.marked.violet.right,.ui.inverted.table tr.marked.violet.right{box-shadow:inset -.2em 0 0 0 #a291fb}.ui.purple.table{border-top:.2em solid #a333c8}.ui.inverted.purple.table{background-color:#a333c8;color:#fff}.ui.ui.table td.purple:not(.marked),.ui.ui.ui.ui.table tr.purple:not(.marked){background:#f8e3ff;color:#a333c8}.ui.selectable.table tr:hover td.purple:not(.marked),.ui.table tr td.selectable.purple:not(.marked):hover,.ui.ui.selectable.table tr.purple:not(.marked):hover{background:#f5d9ff;color:#a333c8}.ui.table td.marked.purple.left,.ui.table tr.marked.purple.left{box-shadow:inset .2em 0 0 0 #a333c8}.ui.table td.marked.purple.right,.ui.table tr.marked.purple.right{box-shadow:inset -.2em 0 0 0 #a333c8}.ui.inverted.table td.marked.purple.left,.ui.inverted.table tr.marked.purple.left{box-shadow:inset .2em 0 0 0 #dc73ff}.ui.inverted.table td.marked.purple.right,.ui.inverted.table tr.marked.purple.right{box-shadow:inset -.2em 0 0 0 #dc73ff}.ui.pink.table{border-top:.2em solid #e03997}.ui.inverted.pink.table{background-color:#e03997;color:#fff}.ui.ui.table td.pink:not(.marked),.ui.ui.ui.ui.table tr.pink:not(.marked){background:#ffe8f9;color:#e03997}.ui.selectable.table tr:hover td.pink:not(.marked),.ui.table tr td.selectable.pink:not(.marked):hover,.ui.ui.selectable.table tr.pink:not(.marked):hover{background:#ffdef6;color:#e03997}.ui.table td.marked.pink.left,.ui.table tr.marked.pink.left{box-shadow:inset .2em 0 0 0 #e03997}.ui.table td.marked.pink.right,.ui.table tr.marked.pink.right{box-shadow:inset -.2em 0 0 0 #e03997}.ui.inverted.table td.marked.pink.left,.ui.inverted.table tr.marked.pink.left{box-shadow:inset .2em 0 0 0 #ff8edf}.ui.inverted.table td.marked.pink.right,.ui.inverted.table tr.marked.pink.right{box-shadow:inset -.2em 0 0 0 #ff8edf}.ui.brown.table{border-top:.2em solid #a5673f}.ui.inverted.brown.table{background-color:#a5673f;color:#fff}.ui.ui.table td.brown:not(.marked),.ui.ui.ui.ui.table tr.brown:not(.marked){background:#f7e5d2;color:#a5673f}.ui.selectable.table tr:hover td.brown:not(.marked),.ui.table tr td.selectable.brown:not(.marked):hover,.ui.ui.selectable.table tr.brown:not(.marked):hover{background:#efe0cf;color:#a5673f}.ui.table td.marked.brown.left,.ui.table tr.marked.brown.left{box-shadow:inset .2em 0 0 0 #a5673f}.ui.table td.marked.brown.right,.ui.table tr.marked.brown.right{box-shadow:inset -.2em 0 0 0 #a5673f}.ui.inverted.table td.marked.brown.left,.ui.inverted.table tr.marked.brown.left{box-shadow:inset .2em 0 0 0 #d67c1c}.ui.inverted.table td.marked.brown.right,.ui.inverted.table tr.marked.brown.right{box-shadow:inset -.2em 0 0 0 #d67c1c}.ui.grey.table{border-top:.2em solid #767676}.ui.inverted.grey.table{background-color:#767676;color:#fff}.ui.ui.table td.grey:not(.marked),.ui.ui.ui.ui.table tr.grey:not(.marked){background:#dcddde;color:#767676}.ui.selectable.table tr:hover td.grey:not(.marked),.ui.table tr td.selectable.grey:not(.marked):hover,.ui.ui.selectable.table tr.grey:not(.marked):hover{background:#c2c4c5;color:#767676}.ui.table td.marked.grey.left,.ui.table tr.marked.grey.left{box-shadow:inset .2em 0 0 0 #767676}.ui.table td.marked.grey.right,.ui.table tr.marked.grey.right{box-shadow:inset -.2em 0 0 0 #767676}.ui.inverted.table td.marked.grey.left,.ui.inverted.table tr.marked.grey.left{box-shadow:inset .2em 0 0 0 #dcddde}.ui.inverted.table td.marked.grey.right,.ui.inverted.table tr.marked.grey.right{box-shadow:inset -.2em 0 0 0 #dcddde}.ui.black.table{border-top:.2em solid #1b1c1d}.ui.inverted.black.table{background-color:#1b1c1d;color:#fff}.ui.ui.table td.black:not(.marked),.ui.ui.ui.ui.table tr.black:not(.marked){background:#545454;color:#fff}.ui.selectable.table tr:hover td.black:not(.marked),.ui.table tr td.selectable.black:not(.marked):hover,.ui.ui.selectable.table tr.black:not(.marked):hover{background:#000;color:#fff}.ui.table td.marked.black.left,.ui.table tr.marked.black.left{box-shadow:inset .2em 0 0 0 #1b1c1d}.ui.table td.marked.black.right,.ui.table tr.marked.black.right{box-shadow:inset -.2em 0 0 0 #1b1c1d}.ui.inverted.table td.marked.black.left,.ui.inverted.table tr.marked.black.left{box-shadow:inset .2em 0 0 0 #545454}.ui.inverted.table td.marked.black.right,.ui.inverted.table tr.marked.black.right{box-shadow:inset -.2em 0 0 0 #545454}.ui.one.column.table td{width:100%}.ui.two.column.table td{width:50%}.ui.three.column.table td{width:33.33333333%}.ui.four.column.table td{width:25%}.ui.five.column.table td{width:20%}.ui.six.column.table td{width:16.66666667%}.ui.seven.column.table td{width:14.28571429%}.ui.eight.column.table td{width:12.5%}.ui.nine.column.table td{width:11.11111111%}.ui.ten.column.table td{width:10%}.ui.eleven.column.table td{width:9.09090909%}.ui.twelve.column.table td{width:8.33333333%}.ui.thirteen.column.table td{width:7.69230769%}.ui.fourteen.column.table td{width:7.14285714%}.ui.fifteen.column.table td{width:6.66666667%}.ui.sixteen.column.table td,.ui.table td.one.wide,.ui.table th.one.wide{width:6.25%}.ui.table td.two.wide,.ui.table th.two.wide{width:12.5%}.ui.table td.three.wide,.ui.table th.three.wide{width:18.75%}.ui.table td.four.wide,.ui.table th.four.wide{width:25%}.ui.table td.five.wide,.ui.table th.five.wide{width:31.25%}.ui.table td.six.wide,.ui.table th.six.wide{width:37.5%}.ui.table td.seven.wide,.ui.table th.seven.wide{width:43.75%}.ui.table td.eight.wide,.ui.table th.eight.wide{width:50%}.ui.table td.nine.wide,.ui.table th.nine.wide{width:56.25%}.ui.table td.ten.wide,.ui.table th.ten.wide{width:62.5%}.ui.table td.eleven.wide,.ui.table th.eleven.wide{width:68.75%}.ui.table td.twelve.wide,.ui.table th.twelve.wide{width:75%}.ui.table td.thirteen.wide,.ui.table th.thirteen.wide{width:81.25%}.ui.table td.fourteen.wide,.ui.table th.fourteen.wide{width:87.5%}.ui.table td.fifteen.wide,.ui.table th.fifteen.wide{width:93.75%}.ui.table td.sixteen.wide,.ui.table th.sixteen.wide{width:100%}.ui.sortable.table>thead>tr>th{cursor:pointer;white-space:nowrap;border-left:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87)}.ui.sortable.table>thead>tr>th:first-child{border-left:none}.ui.sortable.table thead th.sorted,.ui.sortable.table thead th.sorted:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.sortable.table>thead>tr>th:after{display:none;font-style:normal;font-weight:400;text-decoration:inherit;content:"";height:1em;width:auto;opacity:.8;margin:0 0 0 .5em;font-family:Icons}.ui.sortable.table thead th.ascending:after{content:"\f0d8"}.ui.sortable.table thead th.descending:after{content:"\f0d7"}.ui.sortable.table th.disabled:hover{cursor:auto;color:rgba(40,40,40,.3)}.ui.sortable.table>thead>tr>th:hover{color:rgba(0,0,0,.8)}.ui.sortable.table:not(.basic)>thead>tr>th:hover{background:rgba(0,0,0,.05)}.ui.sortable.table thead th.sorted{color:rgba(0,0,0,.95)}.ui.sortable.table:not(.basic) thead th.sorted{background:rgba(0,0,0,.05)}.ui.sortable.table thead th.sorted:after{display:inline-block}.ui.sortable.table thead th.sorted:hover{color:rgba(0,0,0,.95)}.ui.sortable.table:not(.basic) thead th.sorted:hover{background:rgba(0,0,0,.05)}.ui.inverted.sortable.table thead th.sorted{color:#fff}.ui.inverted.sortable.table:not(.basic) thead th.sorted{background:hsla(0,0%,100%,.15) linear-gradient(transparent,rgba(0,0,0,.05))}.ui.inverted.sortable.table>thead>tr>th:hover{color:#fff}.ui.inverted.sortable.table:not(.basic)>thead>tr>th:hover{background:hsla(0,0%,100%,.08) linear-gradient(transparent,rgba(0,0,0,.05))}.ui.inverted.sortable.table:not(.basic)>thead>tr>th{border-left-color:transparent;border-right-color:transparent}.ui.inverted.table{background:#333;color:hsla(0,0%,100%,.9);border:none}.ui.ui.inverted.table>tbody>tr>th,.ui.ui.inverted.table>tfoot>tr>td,.ui.ui.inverted.table>tfoot>tr>th,.ui.ui.inverted.table>thead>tr>th,.ui.ui.inverted.table>tr>th{background-color:rgba(0,0,0,.15);border-color:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.9)}.ui.inverted.table>tbody>tr>td,.ui.inverted.table>tfoot>tr>td,.ui.inverted.table>tr>td{border-color:hsla(0,0%,100%,.1)}.ui.inverted.table tr.disabled:hover td,.ui.inverted.table tr.disabled td,.ui.inverted.table tr:hover td.disabled,.ui.inverted.table tr td.disabled{pointer-events:none;color:hsla(0,0%,88.2%,.3)}.ui.inverted.table tr.disabled:not([class=disabled]) td,.ui.inverted.table tr.disabled td[class]:not(.disabled),.ui.inverted.table tr:hover td.disabled:not([class=disabled]),.ui.inverted.table tr td.disabled:not([class=disabled]){color:rgba(40,40,40,.3)}.ui.inverted.definition.table>tfoot:not(.full-width)>tr>th:first-child,.ui.inverted.definition.table>thead:not(.full-width)>tr>th:first-child{background:#fff}.ui.inverted.definition.table>tbody>tr>td:first-child .ui.inverted.definition.table>tfoot>tr>td:first-child,.ui.inverted.definition.table>tr>td:first-child{background:hsla(0,0%,100%,.02);color:#fff}.ui.collapsing.table{width:auto}.ui.basic.table{background:0 0;border:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.table>tfoot,.ui.basic.table>thead{box-shadow:none}.ui.basic.table>tbody>tr>th,.ui.basic.table>tfoot>tr>th,.ui.basic.table>thead>tr>th,.ui.basic.table>tr>th{background:0 0;border-left:none}.ui.basic.table>tbody>tr{border-bottom:1px solid rgba(0,0,0,.1)}.ui.basic.table>tbody>tr>td,.ui.basic.table>tfoot>tr>td,.ui.basic.table>tr>td{background:0 0}.ui.basic.striped.table>tbody>tr:nth-child(2n){background-color:rgba(0,0,0,.05)}.ui[class*="very basic"].table{border:none}.ui[class*="very basic"].table:not(.sortable):not(.striped)>tbody>tr>td,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tbody>tr>th,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tfoot>tr>th,.ui[class*="very basic"].table:not(.sortable):not(.striped)>thead>tr>th,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tr>td,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tr>th{padding:""}.ui[class*="very basic"].table:not(.sortable):not(.striped)>tbody>tr>td:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tbody>tr>th:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tfoot>tr>td:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tfoot>tr>th:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>thead>tr>th:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tr>td:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tr>th:first-child{padding-left:0}.ui[class*="very basic"].table:not(.sortable):not(.striped)>tbody>tr>td:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tbody>tr>th:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tfoot>tr>td:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tfoot>tr>th:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>thead>tr>th:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tr>td:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped)>tr>th:last-child{padding-right:0}.ui[class*="very basic"].table:not(.sortable):not(.striped)>thead>tr:first-child>th{padding-top:0}.ui.celled.table>tbody>tr>td,.ui.celled.table>tbody>tr>th,.ui.celled.table>tfoot>tr>td,.ui.celled.table>tfoot>tr>th,.ui.celled.table>thead>tr>th,.ui.celled.table>tr>td,.ui.celled.table>tr>th{border-left:1px solid rgba(34,36,38,.1)}.ui.inverted.celled.table>tbody>tr>td,.ui.inverted.celled.table>tr>td{border-left:1px solid hsla(0,0%,100%,.1)}.ui.celled.table>tbody>tr>td:first-child,.ui.celled.table>tbody>tr>th:first-child,.ui.celled.table>tfoot>tr>td:first-child,.ui.celled.table>tfoot>tr>th:first-child,.ui.celled.table>thead>tr>th:first-child,.ui.celled.table>tr>td:first-child,.ui.celled.table>tr>th:first-child{border-left:none}.ui.padded.table>tbody>tr>th,.ui.padded.table>tfoot>tr>th,.ui.padded.table>thead>tr>th,.ui.padded.table>tr>th{padding-left:1em;padding-right:1em}.ui.padded.table>tbody>tr>td,.ui.padded.table>tbody>tr>th,.ui.padded.table>tfoot>tr>td,.ui.padded.table>tfoot>tr>th,.ui.padded.table>thead>tr>th,.ui.padded.table>tr>td,.ui.padded.table>tr>th{padding:1em}.ui[class*="very padded"].table>tbody>tr>th,.ui[class*="very padded"].table>tfoot>tr>th,.ui[class*="very padded"].table>thead>tr>th,.ui[class*="very padded"].table>tr>th{padding-left:1.5em;padding-right:1.5em}.ui[class*="very padded"].table>tbody>tr>td,.ui[class*="very padded"].table>tfoot>tr>td,.ui[class*="very padded"].table>tr>td{padding:1.5em}.ui.compact.table>tbody>tr>th,.ui.compact.table>tfoot>tr>th,.ui.compact.table>thead>tr>th,.ui.compact.table>tr>th{padding-left:.7em;padding-right:.7em}.ui.compact.table>tbody>tr>td,.ui.compact.table>tfoot>tr>td,.ui.compact.table>tr>td{padding:.5em .7em}.ui[class*="very compact"].table>tbody>tr>th,.ui[class*="very compact"].table>tfoot>tr>th,.ui[class*="very compact"].table>thead>tr>th,.ui[class*="very compact"].table>tr>th{padding-left:.6em;padding-right:.6em}.ui[class*="very compact"].table>tbody>tr>td,.ui[class*="very compact"].table>tfoot>tr>td,.ui[class*="very compact"].table>tr>td{padding:.4em .6em}.ui.table{font-size:1em}.ui.mini.table{font-size:.78571429rem}.ui.tiny.table{font-size:.85714286rem}.ui.small.table{font-size:.9em}.ui.large.table{font-size:1.1em}.ui.big.table{font-size:1.28571429rem}.ui.huge.table{font-size:1.42857143rem}.ui.massive.table{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Ad
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Copyright 2013 Contributors
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child,.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767.98px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;transform:translateX(-50%) translateY(-50%);content:"Ad";color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)}/*!
+ * # Fomantic-UI - Card
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.card,.ui.cards>.card{max-width:100%;position:relative;display:flex;flex-direction:column;width:290px;min-height:0;background:#fff;padding:0;border:none;border-radius:.28571429rem;box-shadow:0 1px 3px 0 #d4d4d5,0 0 0 1px #d4d4d5;transition:box-shadow .1s ease,transform .1s ease;z-index:"";word-wrap:break-word}.ui.card{margin:1em 0}.ui.card a,.ui.cards>.card a{cursor:pointer}.ui.card:first-child{margin-top:0}.ui.card:last-child{margin-bottom:0}.ui.cards{display:flex;margin:-.875em -.5em;flex-wrap:wrap}.ui.cards>.card{display:flex;margin:.875em .5em;float:none}.ui.card:after,.ui.cards:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.cards~.ui.cards{margin-top:.875em}.ui.card>:first-child,.ui.cards>.card>:first-child{border-radius:.28571429rem .28571429rem 0 0!important;border-top:none!important}.ui.card>:last-child,.ui.cards>.card>:last-child{border-radius:0 0 .28571429rem .28571429rem!important}.ui.card>:only-child,.ui.cards>.card>:only-child{border-radius:.28571429rem!important}.ui.card>.image,.ui.cards>.card>.image{position:relative;display:block;flex:0 0 auto;padding:0;background:rgba(0,0,0,.05)}.ui.card>.image>img,.ui.cards>.card>.image>img{display:block;width:100%;height:auto;border-radius:inherit}.ui.card>.image:not(.ui)>img,.ui.cards>.card>.image:not(.ui)>img{border:none}.ui.card>.content,.ui.cards>.card>.content{flex-grow:1;border:none;border-top:1px solid rgba(34,36,38,.1);background:0 0;margin:0;padding:1em;box-shadow:none;font-size:1em;border-radius:0}.ui.card>.content:after,.ui.cards>.card>.content:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.card>.content>.header,.ui.cards>.card>.content>.header{display:block;margin:"";font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;color:rgba(0,0,0,.85)}.ui.card>.content>.header:not(.ui),.ui.cards>.card>.content>.header:not(.ui){font-weight:700;font-size:1.28571429em;margin-top:-.21425em;line-height:1.28571429em}.ui.card>.content>.header+.description,.ui.card>.content>.meta+.description,.ui.cards>.card>.content>.header+.description,.ui.cards>.card>.content>.meta+.description{margin-top:.5em}.ui.card [class*="left floated"],.ui.cards>.card [class*="left floated"]{float:left}.ui.card [class*="right floated"],.ui.cards>.card [class*="right floated"]{float:right}.ui.card [class*="left aligned"],.ui.cards>.card [class*="left aligned"]{text-align:left}.ui.card [class*="center aligned"],.ui.cards>.card [class*="center aligned"]{text-align:center}.ui.card [class*="right aligned"],.ui.cards>.card [class*="right aligned"]{text-align:right}.ui.card .content img,.ui.cards>.card .content img{display:inline-block;vertical-align:middle;width:""}.ui.card .avatar img,.ui.card img.avatar,.ui.cards>.card .avatar img,.ui.cards>.card img.avatar{width:2em;height:2em;border-radius:500rem}.ui.card>.content>.description,.ui.cards>.card>.content>.description{clear:both;color:rgba(0,0,0,.68)}.ui.card>.content p,.ui.cards>.card>.content p{margin:0 0 .5em}.ui.card>.content p:last-child,.ui.cards>.card>.content p:last-child{margin-bottom:0}.ui.card .meta,.ui.cards>.card .meta{font-size:1em;color:rgba(0,0,0,.4)}.ui.card .meta *,.ui.cards>.card .meta *{margin-right:.3em}.ui.card .meta :last-child,.ui.cards>.card .meta :last-child{margin-right:0}.ui.card .meta [class*="right floated"],.ui.cards>.card .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.card>.content a:not(.ui),.ui.cards>.card>.content a:not(.ui){color:"";transition:color .1s ease}.ui.card>.content a:not(.ui):hover,.ui.cards>.card>.content a:not(.ui):hover{color:""}.ui.card>.content>a.header,.ui.cards>.card>.content>a.header{color:rgba(0,0,0,.85)}.ui.card>.content>a.header:hover,.ui.cards>.card>.content>a.header:hover{color:#1e70bf}.ui.card .meta>a:not(.ui),.ui.cards>.card .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.card .meta>a:not(.ui):hover,.ui.cards>.card .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.card>.button,.ui.card>.buttons,.ui.cards>.card>.button,.ui.cards>.card>.buttons{margin:0 -1px;width:calc(100% + 2px)}.ui.card>.button:last-child,.ui.card>.buttons:last-child,.ui.cards>.card>.button:last-child,.ui.cards>.card>.buttons:last-child{margin-bottom:-1px}.ui.card .dimmer,.ui.cards>.card .dimmer{background:"";z-index:10}.ui.card>.content .star.icon,.ui.cards>.card>.content .star.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.card>.content .star.icon:hover,.ui.cards>.card>.content .star.icon:hover{opacity:1;color:#ffb70a}.ui.card>.content .active.star.icon,.ui.cards>.card>.content .active.star.icon{color:#ffe623}.ui.card>.content .like.icon,.ui.cards>.card>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.card>.content .like.icon:hover,.ui.cards>.card>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.card>.content .active.like.icon,.ui.cards>.card>.content .active.like.icon{color:#ff2733}.ui.card>.extra,.ui.cards>.card>.extra{max-width:100%;min-height:0!important;flex-grow:0;border-top:1px solid rgba(0,0,0,.05)!important;position:static;background:0 0;width:auto;margin:0;padding:.75em 1em;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease}.ui.card>.extra a:not(.ui),.ui.cards>.card>.extra a:not(.ui){color:rgba(0,0,0,.4)}.ui.card>.extra a:not(.ui):hover,.ui.cards>.card>.extra a:not(.ui):hover{color:#1e70bf}.ui.card.horizontal,.ui.horizontal.cards>.card{flex-direction:row;flex-wrap:wrap;min-width:270px;width:400px;max-width:100%}.ui.card.horizontal>.image,.ui.horizontal.cards>.card>.image{border-radius:.28571429rem 0 0 .28571429rem;width:150px}.ui.card.horizontal>.image>img,.ui.horizontal.cards>.card>.image>img{background-size:cover;background-repeat:no-repeat;background-position:50%;justify-content:center;align-items:center;display:flex;width:100%;height:100%;border-radius:.28571429rem 0 0 .28571429rem}.ui.card.horizontal>.image:last-child>img,.ui.horizontal.cards>.card>.image:last-child>img{border-radius:0 .28571429rem .28571429rem 0}.ui.horizontal.card>.content,.ui.horizontal.cards>.card>.content{flex-basis:1px}.ui.horizontal.card>.extra,.ui.horizontal.cards>.card>.extra{flex-basis:100%}.ui.raised.card,.ui.raised.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.link.cards .raised.card:hover,.ui.link.raised.card:hover,.ui.raised.cards a.card:hover,a.ui.raised.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 4px 0 rgba(34,36,38,.15),0 2px 10px 0 rgba(34,36,38,.25)}.ui.centered.cards{justify-content:center}.ui.centered.card{margin-left:auto;margin-right:auto}.ui.fluid.card{width:100%;max-width:9999px}.ui.cards a.card,.ui.link.card,.ui.link.cards .card,a.ui.card{transform:none}.ui.cards a.card:hover,.ui.link.card:hover,.ui.link.cards .card:not(.icon):hover,a.ui.card:hover{cursor:pointer;z-index:5;background:#fff;border:none;box-shadow:0 1px 3px 0 #bcbdbd,0 0 0 1px #d4d4d5;transform:translateY(-3px)}.ui.cards>.primary.card,.ui.primary.card,.ui.primary.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #2185d0,0 1px 3px 0 #d4d4d5}.ui.cards>.primary.card:hover,.ui.primary.card:hover,.ui.primary.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #1678c2,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.primary.card,.ui.inverted.primary.card,.ui.inverted.primary.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #54c8ff,0 0 0 1px #555}.ui.inverted.cards>.primary.card:hover,.ui.inverted.primary.card:hover,.ui.inverted.primary.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #21b8ff,0 0 0 1px #555}.ui.cards>.secondary.card,.ui.secondary.card,.ui.secondary.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #1b1c1d,0 1px 3px 0 #d4d4d5}.ui.cards>.secondary.card:hover,.ui.secondary.card:hover,.ui.secondary.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #27292a,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.secondary.card,.ui.inverted.secondary.card,.ui.inverted.secondary.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #545454,0 0 0 1px #555}.ui.inverted.cards>.secondary.card:hover,.ui.inverted.secondary.card:hover,.ui.inverted.secondary.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #6e6e6e,0 0 0 1px #555}.ui.cards>.red.card,.ui.red.card,.ui.red.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #db2828,0 1px 3px 0 #d4d4d5}.ui.cards>.red.card:hover,.ui.red.card:hover,.ui.red.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #d01919,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.red.card,.ui.inverted.red.card,.ui.inverted.red.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ff695e,0 0 0 1px #555}.ui.inverted.cards>.red.card:hover,.ui.inverted.red.card:hover,.ui.inverted.red.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ff392b,0 0 0 1px #555}.ui.cards>.orange.card,.ui.orange.card,.ui.orange.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #f2711c,0 1px 3px 0 #d4d4d5}.ui.cards>.orange.card:hover,.ui.orange.card:hover,.ui.orange.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #f26202,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.orange.card,.ui.inverted.orange.card,.ui.inverted.orange.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ff851b,0 0 0 1px #555}.ui.inverted.cards>.orange.card:hover,.ui.inverted.orange.card:hover,.ui.inverted.orange.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #e76b00,0 0 0 1px #555}.ui.cards>.yellow.card,.ui.yellow.card,.ui.yellow.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #fbbd08,0 1px 3px 0 #d4d4d5}.ui.cards>.yellow.card:hover,.ui.yellow.card:hover,.ui.yellow.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #eaae00,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.yellow.card,.ui.inverted.yellow.card,.ui.inverted.yellow.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ffe21f,0 0 0 1px #555}.ui.inverted.cards>.yellow.card:hover,.ui.inverted.yellow.card:hover,.ui.inverted.yellow.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ebcd00,0 0 0 1px #555}.ui.cards>.olive.card,.ui.olive.card,.ui.olive.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #b5cc18,0 1px 3px 0 #d4d4d5}.ui.cards>.olive.card:hover,.ui.olive.card:hover,.ui.olive.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a7bd0d,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.olive.card,.ui.inverted.olive.card,.ui.inverted.olive.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #d9e778,0 0 0 1px #555}.ui.inverted.cards>.olive.card:hover,.ui.inverted.olive.card:hover,.ui.inverted.olive.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #d2e745,0 0 0 1px #555}.ui.cards>.green.card,.ui.green.card,.ui.green.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #21ba45,0 1px 3px 0 #d4d4d5}.ui.cards>.green.card:hover,.ui.green.card:hover,.ui.green.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #16ab39,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.green.card,.ui.inverted.green.card,.ui.inverted.green.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #2ecc40,0 0 0 1px #555}.ui.inverted.cards>.green.card:hover,.ui.inverted.green.card:hover,.ui.inverted.green.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #1ea92e,0 0 0 1px #555}.ui.cards>.teal.card,.ui.teal.card,.ui.teal.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #00b5ad,0 1px 3px 0 #d4d4d5}.ui.cards>.teal.card:hover,.ui.teal.card:hover,.ui.teal.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #009c95,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.teal.card,.ui.inverted.teal.card,.ui.inverted.teal.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #6dffff,0 0 0 1px #555}.ui.inverted.cards>.teal.card:hover,.ui.inverted.teal.card:hover,.ui.inverted.teal.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #3affff,0 0 0 1px #555}.ui.blue.card,.ui.blue.cards>.card,.ui.cards>.blue.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #2185d0,0 1px 3px 0 #d4d4d5}.ui.blue.card:hover,.ui.blue.cards>.card:hover,.ui.cards>.blue.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #1678c2,0 1px 3px 0 #bcbdbd}.ui.inverted.blue.card,.ui.inverted.blue.cards>.card,.ui.inverted.cards>.blue.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #54c8ff,0 0 0 1px #555}.ui.inverted.blue.card:hover,.ui.inverted.blue.cards>.card:hover,.ui.inverted.cards>.blue.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #21b8ff,0 0 0 1px #555}.ui.cards>.violet.card,.ui.violet.card,.ui.violet.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #6435c9,0 1px 3px 0 #d4d4d5}.ui.cards>.violet.card:hover,.ui.violet.card:hover,.ui.violet.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #5829bb,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.violet.card,.ui.inverted.violet.card,.ui.inverted.violet.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #a291fb,0 0 0 1px #555}.ui.inverted.cards>.violet.card:hover,.ui.inverted.violet.card:hover,.ui.inverted.violet.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #745aff,0 0 0 1px #555}.ui.cards>.purple.card,.ui.purple.card,.ui.purple.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a333c8,0 1px 3px 0 #d4d4d5}.ui.cards>.purple.card:hover,.ui.purple.card:hover,.ui.purple.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #9627ba,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.purple.card,.ui.inverted.purple.card,.ui.inverted.purple.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #dc73ff,0 0 0 1px #555}.ui.inverted.cards>.purple.card:hover,.ui.inverted.purple.card:hover,.ui.inverted.purple.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #cf40ff,0 0 0 1px #555}.ui.cards>.pink.card,.ui.pink.card,.ui.pink.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #e03997,0 1px 3px 0 #d4d4d5}.ui.cards>.pink.card:hover,.ui.pink.card:hover,.ui.pink.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #e61a8d,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.pink.card,.ui.inverted.pink.card,.ui.inverted.pink.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ff8edf,0 0 0 1px #555}.ui.inverted.cards>.pink.card:hover,.ui.inverted.pink.card:hover,.ui.inverted.pink.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #ff5bd1,0 0 0 1px #555}.ui.brown.card,.ui.brown.cards>.card,.ui.cards>.brown.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a5673f,0 1px 3px 0 #d4d4d5}.ui.brown.card:hover,.ui.brown.cards>.card:hover,.ui.cards>.brown.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #975b33,0 1px 3px 0 #bcbdbd}.ui.inverted.brown.card,.ui.inverted.brown.cards>.card,.ui.inverted.cards>.brown.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #d67c1c,0 0 0 1px #555}.ui.inverted.brown.card:hover,.ui.inverted.brown.cards>.card:hover,.ui.inverted.cards>.brown.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #b0620f,0 0 0 1px #555}.ui.cards>.grey.card,.ui.grey.card,.ui.grey.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #767676,0 1px 3px 0 #d4d4d5}.ui.cards>.grey.card:hover,.ui.grey.card:hover,.ui.grey.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #838383,0 1px 3px 0 #bcbdbd}.ui.inverted.cards>.grey.card,.ui.inverted.grey.card,.ui.inverted.grey.cards>.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #dcddde,0 0 0 1px #555}.ui.inverted.cards>.grey.card:hover,.ui.inverted.grey.card:hover,.ui.inverted.grey.cards>.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #c2c4c5,0 0 0 1px #555}.ui.black.card,.ui.black.cards>.card,.ui.cards>.black.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #1b1c1d,0 1px 3px 0 #d4d4d5}.ui.black.card:hover,.ui.black.cards>.card:hover,.ui.cards>.black.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #27292a,0 1px 3px 0 #bcbdbd}.ui.inverted.black.card,.ui.inverted.black.cards>.card,.ui.inverted.cards>.black.card{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #545454,0 0 0 1px #555}.ui.inverted.black.card:hover,.ui.inverted.black.cards>.card:hover,.ui.inverted.cards>.black.card:hover{box-shadow:0 1px 3px 0 #555,0 2px 0 0 #000,0 0 0 1px #555}.ui.one.cards{margin-left:0;margin-right:0}.ui.one.cards>.card{width:100%}.ui.two.cards{margin-left:-1em;margin-right:-1em}.ui.two.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.three.cards{margin-left:-1em;margin-right:-1em}.ui.three.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.four.cards{margin-left:-.75em;margin-right:-.75em}.ui.four.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.five.cards{margin-left:-.75em;margin-right:-.75em}.ui.five.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.six.cards{margin-left:-.75em;margin-right:-.75em}.ui.six.cards>.card{width:calc(16.66667% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.seven.cards{margin-left:-.5em;margin-right:-.5em}.ui.seven.cards>.card{width:calc(14.28571% - 1em);margin-left:.5em;margin-right:.5em}.ui.eight.cards{margin-left:-.5em;margin-right:-.5em}.ui.eight.cards>.card{width:calc(12.5% - 1em);margin-left:.5em;margin-right:.5em;font-size:11px}.ui.nine.cards{margin-left:-.5em;margin-right:-.5em}.ui.nine.cards>.card{width:calc(11.11111% - 1em);margin-left:.5em;margin-right:.5em;font-size:10px}.ui.ten.cards{margin-left:-.5em;margin-right:-.5em}.ui.ten.cards>.card{width:calc(10% - 1em);margin-left:.5em;margin-right:.5em}@media only screen and (max-width:767.98px){.ui.two.doubling.cards{margin-left:0;margin-right:0}.ui.two.doubling.cards>.card{width:100%;margin-left:0;margin-right:0}.ui.three.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.three.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.four.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.four.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.five.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.five.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.six.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.six.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.seven.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.seven.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.eight.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.nine.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.nine.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.ten.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.ten.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.two.doubling.cards{margin-left:0;margin-right:0}.ui.two.doubling.cards>.card{width:100%;margin-left:0;margin-right:0}.ui.three.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.three.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.four.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.four.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.five.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.five.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.six.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.six.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.eight.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.eight.doubling.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.nine.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.nine.doubling.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.ten.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.ten.doubling.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}}@media only screen and (max-width:767.98px){.ui.stackable.cards{display:block!important}.ui.stackable.cards .card:first-child{margin-top:0!important}.ui.stackable.cards>.card{display:block!important;height:auto!important;margin:1em;padding:0!important;width:calc(100% - 2em)!important}}.ui.cards>.card{font-size:1em}.ui.mini.cards .card{font-size:.78571429rem}.ui.tiny.cards .card{font-size:.85714286rem}.ui.small.cards .card{font-size:.92857143rem}.ui.large.cards .card{font-size:1.14285714rem}.ui.big.cards .card{font-size:1.28571429rem}.ui.huge.cards .card{font-size:1.42857143rem}.ui.massive.cards .card{font-size:1.71428571rem}.ui.inverted.card,.ui.inverted.cards>.card{background:#1b1c1d;box-shadow:0 1px 3px 0 #555,0 0 0 1px #555}.ui.inverted.card>.content,.ui.inverted.cards>.card>.content{border-top:1px solid hsla(0,0%,100%,.15)}.ui.inverted.card>.content>.header,.ui.inverted.cards>.card>.content>.header{color:hsla(0,0%,100%,.9)}.ui.inverted.card>.content>.description,.ui.inverted.cards>.card>.content>.description{color:hsla(0,0%,100%,.8)}.ui.inverted.card .meta,.ui.inverted.card .meta>a:not(.ui),.ui.inverted.cards>.card .meta,.ui.inverted.cards>.card .meta>a:not(.ui){color:hsla(0,0%,100%,.7)}.ui.inverted.card .meta>a:not(.ui):hover,.ui.inverted.cards>.card .meta>a:not(.ui):hover{color:#fff}.ui.inverted.card>.extra,.ui.inverted.cards>.card>.extra{border-top:1px solid hsla(0,0%,100%,.15)!important;color:hsla(0,0%,100%,.7)}.ui.inverted.card>.extra a:not(.ui),.ui.inverted.cards>.card>.extra a:not(.ui){color:hsla(0,0%,100%,.5)}.ui.inverted.card>.extra a:not(.ui):hover,.ui.inverted.cards>.card>.extra a:not(.ui):hover{color:#1e70bf}.ui.inverted.cards a.card:hover,.ui.inverted.link.card:hover,.ui.inverted.link.cards .card:not(.icon):hover,a.inverted.ui.card:hover{background:#1b1c1d}/*!
+ * # Fomantic-UI - Comment
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment>.comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment>.comments:before{position:absolute;top:0;left:0}.ui.comments .comment>.comments .comment{border:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#1e70bf}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment>.comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(34,36,38,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;transition:opacity .2s ease;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.comments{font-size:1rem}.ui.mini.comments{font-size:.78571429rem}.ui.tiny.comments{font-size:.85714286rem}.ui.small.comments{font-size:.92857143rem}.ui.large.comments{font-size:1.14285714rem}.ui.big.comments{font-size:1.28571429rem}.ui.huge.comments{font-size:1.42857143rem}.ui.massive.comments{font-size:1.71428571rem}.ui.inverted.comments .comment{background-color:#1b1c1d}.ui.inverted.comments .comment .author,.ui.inverted.comments .comment .text{color:hsla(0,0%,100%,.9)}.ui.inverted.comments .comment .actions a,.ui.inverted.comments .comment .metadata{color:hsla(0,0%,100%,.7)}.ui.inverted.comments .comment .actions a.active,.ui.inverted.comments .comment .actions a:hover,.ui.inverted.comments .comment a.author:hover{color:#fff}.ui.inverted.threaded.comments .comment>.comments{box-shadow:-1px 0 0 #555}/*!
+ * # Fomantic-UI - Feed
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:flex;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;flex:0 0 auto;width:2.5em;height:auto;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;flex:1 1 auto;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;color:rgba(0,0,0,.4);font-weight:400;font-size:1em;font-style:normal}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:"";color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:"";transition:color .2s ease}.ui.feed>.event>.content .meta .like:hover i.icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like i.icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child:after{display:none}.ui.feed>.event>.content .meta>i.icon,.ui.feed>.event>.content .meta a{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);transition:color .1s ease}.ui.feed>.event>.content .meta>i.icon:hover,.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover i.icon{color:rgba(0,0,0,.95)}.ui.feed{font-size:1rem}.ui.mini.feed{font-size:.78571429rem}.ui.tiny.feed{font-size:.85714286rem}.ui.small.feed{font-size:.92857143rem}.ui.large.feed{font-size:1.14285714rem}.ui.big.feed{font-size:1.28571429rem}.ui.huge.feed{font-size:1.42857143rem}.ui.massive.feed{font-size:1.71428571rem}.ui.inverted.feed>.event{background:#1b1c1d}.ui.inverted.feed>.event>.content .date,.ui.inverted.feed>.event>.content .meta .like{color:hsla(0,0%,100%,.7)}.ui.inverted.feed>.event>.content .extra.text,.ui.inverted.feed>.event>.content .summary{color:hsla(0,0%,100%,.9)}.ui.inverted.feed>.event>.content .meta .like:hover{color:#fff}/*!
+ * # Fomantic-UI - Item
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.items>.item{display:flex;margin:1em 0;width:100%;min-height:0;background:0 0;padding:0;border:none;border-radius:0;box-shadow:none;transition:box-shadow .1s ease;z-index:""}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:"";align-self:start}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;flex:1 1 auto;background:0 0;color:rgba(0,0,0,.87);margin:0;padding:0;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;align-self:start;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{align-self:center;width:""}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:"";height:"";border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:auto;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:"";transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:""}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#1e70bf}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:0 0;margin:.5rem 0 0;width:100%;padding:0;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767.98px){.ui.items:not(.unstackable)>.item{flex-direction:column;margin:2em 0}.ui.items:not(.unstackable)>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items:not(.unstackable)>.item>.image,.ui.items:not(.unstackable)>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items:not(.unstackable)>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{align-self:flex-start}.ui.items>.item>.image+[class*="middle aligned"].content{align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{align-self:flex-end}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid rgba(34,36,38,.15);margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#1e70bf}.ui.items>.item{font-size:1em}.ui.mini.items>.item{font-size:.78571429em}.ui.tiny.items>.item{font-size:.85714286em}.ui.small.items>.item{font-size:.92857143em}.ui.large.items>.item{font-size:1.14285714em}.ui.big.items>.item{font-size:1.28571429em}.ui.huge.items>.item{font-size:1.42857143em}.ui.massive.items>.item{font-size:1.71428571em}@media only screen and (max-width:767.98px){.ui.unstackable.items>.item>.image,.ui.unstackable.items>.item>.image>img{width:125px!important}}.ui.inverted.items>.item{background:0 0}.ui.inverted.items>.item>.content{background:0 0;color:hsla(0,0%,100%,.9)}.ui.inverted.items>.item .extra{background:0 0}.ui.inverted.items>.item>.content>.description,.ui.inverted.items>.item>.content>.header{color:hsla(0,0%,100%,.9)}.ui.inverted.items>.item .meta{color:hsla(0,0%,100%,.8)}.ui.inverted.items>.item>.content a:not(.ui){color:#57a4ef}.ui.inverted.items>.item>.content a:not(.ui):hover{color:#4183c4}.ui.inverted.items>.item>.content>a.header{color:hsla(0,0%,100%,.9)}.ui.inverted.items>.item>.content>a.header:hover{color:#fff}.ui.inverted.items>.item .meta>a:not(.ui){color:hsla(0,0%,100%,.7)}.ui.inverted.items>.item .meta>a:not(.ui):hover{color:hsla(0,0%,100%,.9)}.ui.inverted.items>.item>.content .favorite.icon:hover{color:#ffc63d}.ui.inverted.items>.item>.content .active.favorite.icon{color:#ffec56}.ui.inverted.items>.item>.content .active.like.icon,.ui.inverted.items>.item>.content .like.icon:hover{color:#ff5a63}.ui.inverted.items>.item .extra{color:hsla(0,0%,100%,.7)}.ui.inverted.items a.item:hover .content .header,.ui.inverted.link.items>.item:hover .content .header{color:#fff}.ui.inverted.divided.items>.item{border-top:1px solid hsla(0,0%,100%,.1)}.ui.inverted.divided.items>.item:first-child{border-top:none}/*!
+ * # Fomantic-UI - Statistic
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.statistic{display:inline-flex;flex-direction:column;margin:1em 0;max-width:none}.ui.statistic+.ui.statistic{margin:0 0 0 1.5em}.ui.statistic:first-child{margin-top:0}.ui.statistic:last-child{margin-bottom:0}.ui.statistics{align-items:flex-start;flex-wrap:wrap}.ui.statistics>.statistic{display:inline-flex;flex:0 1 auto;flex-direction:column;margin:0 1.5em 1em;max-width:none}.ui.statistics{display:flex;margin:1em -1.5em -1em}.ui.statistics:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.statistics:first-child{margin-top:0}.ui.statistic>.value,.ui.statistics .statistic>.value{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:400;line-height:1em;color:#1b1c1d;text-transform:uppercase;text-align:center}.ui.statistic>.label,.ui.statistics .statistic>.label{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;font-weight:700;color:rgba(0,0,0,.87);text-transform:uppercase;text-align:center}.ui.statistic>.label~.value,.ui.statistic>.value~.label,.ui.statistics .statistic>.label~.value,.ui.statistics .statistic>.value~.label{margin-top:0}.ui.statistic>.value>i.icon,.ui.statistics .statistic>.value>i.icon{opacity:1;width:auto;margin:0}.ui.statistic>.text.value,.ui.statistics .statistic>.text.value{line-height:1em;min-height:2em;font-weight:700;text-align:center}.ui.statistic>.text.value+.label,.ui.statistics .statistic>.text.value+.label{text-align:center}.ui.statistic>.value img,.ui.statistics .statistic>.value img{max-height:3rem;vertical-align:baseline}.ui.ten.statistics{margin:0 0 -1em}.ui.ten.statistics .statistic{min-width:10%;margin:0 0 1em}.ui.nine.statistics{margin:0 0 -1em}.ui.nine.statistics .statistic{min-width:11.11111111%;margin:0 0 1em}.ui.eight.statistics{margin:0 0 -1em}.ui.eight.statistics .statistic{min-width:12.5%;margin:0 0 1em}.ui.seven.statistics{margin:0 0 -1em}.ui.seven.statistics .statistic{min-width:14.28571429%;margin:0 0 1em}.ui.six.statistics{margin:0 0 -1em}.ui.six.statistics .statistic{min-width:16.66666667%;margin:0 0 1em}.ui.five.statistics{margin:0 0 -1em}.ui.five.statistics .statistic{min-width:20%;margin:0 0 1em}.ui.four.statistics{margin:0 0 -1em}.ui.four.statistics .statistic{min-width:25%;margin:0 0 1em}.ui.three.statistics{margin:0 0 -1em}.ui.three.statistics .statistic{min-width:33.33333333%;margin:0 0 1em}.ui.two.statistics{margin:0 0 -1em}.ui.two.statistics .statistic{min-width:50%;margin:0 0 1em}.ui.one.statistics{margin:0 0 -1em}.ui.one.statistics .statistic{min-width:100%;margin:0 0 1em}.ui.horizontal.statistic{flex-direction:row;align-items:center}.ui.horizontal.statistics{flex-direction:column;margin:0;max-width:none}.ui.horizontal.statistics .statistic{flex-direction:row;align-items:center;max-width:none;margin:1em 0}.ui.horizontal.statistic>.text.value,.ui.horizontal.statistics>.statistic>.text.value{min-height:0!important}.ui.horizontal.statistic>.value>i.icon,.ui.horizontal.statistics .statistic>.value>i.icon{width:1.18em}.ui.horizontal.statistic>.value,.ui.horizontal.statistics .statistic>.value{display:inline-block;vertical-align:middle}.ui.horizontal.statistic>.label,.ui.horizontal.statistics .statistic>.label{display:inline-block;vertical-align:middle;margin:0 0 0 .75em}.ui.inverted.statistic .value,.ui.inverted.statistics .statistic>.value{color:#fff}.ui.inverted.statistic .label,.ui.inverted.statistics .statistic>.label{color:hsla(0,0%,100%,.9)}.ui.primary.statistic>.value,.ui.primary.statistics .statistic>.value,.ui.statistics .primary.statistic>.value{color:#2185d0}.ui.inverted.primary.statistic>.value,.ui.inverted.primary.statistics .statistic>.value,.ui.statistics .inverted.primary.statistic>.value{color:#54c8ff}.ui.secondary.statistic>.value,.ui.secondary.statistics .statistic>.value,.ui.statistics .secondary.statistic>.value{color:#1b1c1d}.ui.inverted.secondary.statistic>.value,.ui.inverted.secondary.statistics .statistic>.value,.ui.statistics .inverted.secondary.statistic>.value{color:#545454}.ui.red.statistic>.value,.ui.red.statistics .statistic>.value,.ui.statistics .red.statistic>.value{color:#db2828}.ui.inverted.red.statistic>.value,.ui.inverted.red.statistics .statistic>.value,.ui.statistics .inverted.red.statistic>.value{color:#ff695e}.ui.orange.statistic>.value,.ui.orange.statistics .statistic>.value,.ui.statistics .orange.statistic>.value{color:#f2711c}.ui.inverted.orange.statistic>.value,.ui.inverted.orange.statistics .statistic>.value,.ui.statistics .inverted.orange.statistic>.value{color:#ff851b}.ui.statistics .yellow.statistic>.value,.ui.yellow.statistic>.value,.ui.yellow.statistics .statistic>.value{color:#fbbd08}.ui.inverted.yellow.statistic>.value,.ui.inverted.yellow.statistics .statistic>.value,.ui.statistics .inverted.yellow.statistic>.value{color:#ffe21f}.ui.olive.statistic>.value,.ui.olive.statistics .statistic>.value,.ui.statistics .olive.statistic>.value{color:#b5cc18}.ui.inverted.olive.statistic>.value,.ui.inverted.olive.statistics .statistic>.value,.ui.statistics .inverted.olive.statistic>.value{color:#d9e778}.ui.green.statistic>.value,.ui.green.statistics .statistic>.value,.ui.statistics .green.statistic>.value{color:#21ba45}.ui.inverted.green.statistic>.value,.ui.inverted.green.statistics .statistic>.value,.ui.statistics .inverted.green.statistic>.value{color:#2ecc40}.ui.statistics .teal.statistic>.value,.ui.teal.statistic>.value,.ui.teal.statistics .statistic>.value{color:#00b5ad}.ui.inverted.teal.statistic>.value,.ui.inverted.teal.statistics .statistic>.value,.ui.statistics .inverted.teal.statistic>.value{color:#6dffff}.ui.blue.statistic>.value,.ui.blue.statistics .statistic>.value,.ui.statistics .blue.statistic>.value{color:#2185d0}.ui.inverted.blue.statistic>.value,.ui.inverted.blue.statistics .statistic>.value,.ui.statistics .inverted.blue.statistic>.value{color:#54c8ff}.ui.statistics .violet.statistic>.value,.ui.violet.statistic>.value,.ui.violet.statistics .statistic>.value{color:#6435c9}.ui.inverted.violet.statistic>.value,.ui.inverted.violet.statistics .statistic>.value,.ui.statistics .inverted.violet.statistic>.value{color:#a291fb}.ui.purple.statistic>.value,.ui.purple.statistics .statistic>.value,.ui.statistics .purple.statistic>.value{color:#a333c8}.ui.inverted.purple.statistic>.value,.ui.inverted.purple.statistics .statistic>.value,.ui.statistics .inverted.purple.statistic>.value{color:#dc73ff}.ui.pink.statistic>.value,.ui.pink.statistics .statistic>.value,.ui.statistics .pink.statistic>.value{color:#e03997}.ui.inverted.pink.statistic>.value,.ui.inverted.pink.statistics .statistic>.value,.ui.statistics .inverted.pink.statistic>.value{color:#ff8edf}.ui.brown.statistic>.value,.ui.brown.statistics .statistic>.value,.ui.statistics .brown.statistic>.value{color:#a5673f}.ui.inverted.brown.statistic>.value,.ui.inverted.brown.statistics .statistic>.value,.ui.statistics .inverted.brown.statistic>.value{color:#d67c1c}.ui.grey.statistic>.value,.ui.grey.statistics .statistic>.value,.ui.statistics .grey.statistic>.value{color:#767676}.ui.inverted.grey.statistic>.value,.ui.inverted.grey.statistics .statistic>.value,.ui.statistics .inverted.grey.statistic>.value{color:#dcddde}.ui.black.statistic>.value,.ui.black.statistics .statistic>.value,.ui.statistics .black.statistic>.value{color:#1b1c1d}.ui.inverted.black.statistic>.value,.ui.inverted.black.statistics .statistic>.value,.ui.statistics .inverted.black.statistic>.value{color:#545454}.ui[class*="left floated"].statistic{float:left;margin:0 2em 1em 0}.ui[class*="right floated"].statistic{float:right;margin:0 0 1em 2em}.ui.floated.statistic:last-child{margin-bottom:0}@media only screen and (max-width:767.98px){.ui.stackable.statistics{width:auto;margin-left:0!important;margin-right:0!important}.ui.stackable.statistics>.statistic{width:100%!important;margin:0!important;padding:1rem!important}}.ui.statistic>.value,.ui.statistics .statistic>.value{font-size:4rem}.ui.horizontal.statistic>.value,.ui.horizontal.statistics .statistic>.value{font-size:3rem}.ui.statistic>.text.value,.ui.statistics .statistic>.text.value{font-size:2rem}.ui.mini.horizontal.statistic>.value,.ui.mini.horizontal.statistics .statistic>.value,.ui.mini.statistic>.value,.ui.mini.statistics .statistic>.value{font-size:1.5rem}.ui.mini.statistic>.text.value,.ui.mini.statistics .statistic>.text.value{font-size:1rem}.ui.tiny.horizontal.statistic>.value,.ui.tiny.horizontal.statistics .statistic>.value,.ui.tiny.statistic>.value,.ui.tiny.statistics .statistic>.value{font-size:2rem}.ui.tiny.statistic>.text.value,.ui.tiny.statistics .statistic>.text.value{font-size:1rem}.ui.small.statistic>.value,.ui.small.statistics .statistic>.value{font-size:3rem}.ui.small.horizontal.statistic>.value,.ui.small.horizontal.statistics .statistic>.value{font-size:2rem}.ui.small.statistic>.text.value,.ui.small.statistics .statistic>.text.value{font-size:1rem}.ui.large.statistic>.value,.ui.large.statistics .statistic>.value{font-size:5rem}.ui.large.horizontal.statistic>.value,.ui.large.horizontal.statistics .statistic>.value{font-size:4rem}.ui.large.statistic>.text.value,.ui.large.statistics .statistic>.text.value{font-size:2.5rem}.ui.big.statistic>.value,.ui.big.statistics .statistic>.value{font-size:5.5rem}.ui.big.horizontal.statistic>.value,.ui.big.horizontal.statistics .statistic>.value{font-size:4.5rem}.ui.big.statistic>.text.value,.ui.big.statistics .statistic>.text.value{font-size:2.5rem}.ui.huge.statistic>.value,.ui.huge.statistics .statistic>.value{font-size:6rem}.ui.huge.horizontal.statistic>.value,.ui.huge.horizontal.statistics .statistic>.value{font-size:5rem}.ui.huge.statistic>.text.value,.ui.huge.statistics .statistic>.text.value{font-size:2.5rem}.ui.massive.statistic>.value,.ui.massive.statistics .statistic>.value{font-size:7rem}.ui.massive.horizontal.statistic>.value,.ui.massive.horizontal.statistics .statistic>.value{font-size:6rem}.ui.massive.statistic>.text.value,.ui.massive.statistics .statistic>.text.value{font-size:3rem}/*!
+ * # Fomantic-UI - Accordion
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.accordion,.ui.accordion .accordion{max-width:100%}.ui.accordion .accordion{margin:1em 0 0;padding:0}.ui.accordion .accordion .title,.ui.accordion .title{cursor:pointer}.ui.accordion .title:not(.ui){padding:.5em 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;color:rgba(0,0,0,.87)}.ui.accordion:not(.styled) .accordion .title~.content:not(.ui),.ui.accordion:not(.styled) .title~.content:not(.ui){margin:"";padding:.5em 0 1em}.ui.accordion:not(.styled) .title~.content:not(.ui):last-child{padding-bottom:0}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{display:inline-block;float:none;opacity:1;width:1.25em;height:1em;margin:0 .25rem 0 0;padding:0;font-size:1em;transition:transform .1s ease,opacity .1s ease;vertical-align:baseline;transform:none}.ui.accordion.menu .item .title{display:block;padding:0}.ui.accordion.menu .item .title>.dropdown.icon{float:right;margin:.21425em 0 0 1em;transform:rotate(180deg)}.ui.accordion .ui.header .dropdown.icon{font-size:1em;margin:0 .25rem 0 0}.ui.accordion .accordion .active.title .dropdown.icon,.ui.accordion .active.title .dropdown.icon,.ui.accordion.menu .item .active.title>.dropdown.icon{transform:rotate(90deg)}.ui.styled.accordion{width:600px}.ui.styled.accordion,.ui.styled.accordion .accordion{border-radius:.28571429rem;background:#fff;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),0 0 0 1px rgba(34,36,38,.15)}.ui.styled.accordion .accordion .title,.ui.styled.accordion .title{margin:0;padding:.75em 1em;color:rgba(0,0,0,.4);font-weight:700;border-top:1px solid rgba(34,36,38,.15);transition:background .1s ease,color .1s ease}.ui.styled.accordion .accordion .title:first-child,.ui.styled.accordion>.title:first-child{border-top:none}.ui.styled.accordion .accordion .content,.ui.styled.accordion .content{margin:0;padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .accordion .title:hover,.ui.styled.accordion .active.title,.ui.styled.accordion .title:hover{background:0 0;color:rgba(0,0,0,.87)}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .active.title{background:0 0;color:rgba(0,0,0,.95)}.ui.accordion .accordion .title~.content:not(.active),.ui.accordion .title~.content:not(.active){display:none}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}.ui.inverted.accordion .title:not(.ui){color:hsla(0,0%,100%,.9)}@font-face{font-family:Accordion;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("woff");font-weight:400;font-style:normal}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{font-family:Accordion;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center}.ui.accordion .accordion .title .dropdown.icon:before,.ui.accordion .title .dropdown.icon:before{content:"\f0da"}/*!
+ * # Fomantic-UI - Calendar
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.calendar .ui.popup{max-width:none;padding:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.calendar .calendar:focus{outline:0}.ui.calendar .ui.popup .ui.grid{display:block;white-space:nowrap}.ui.calendar .ui.popup .ui.grid>.column{width:auto}.ui.calendar .ui.table.minute,.ui.calendar .ui.table.month,.ui.calendar .ui.table.year{min-width:15em}.ui.calendar .ui.table.day{min-width:18em}.ui.calendar .ui.table.day.andweek{min-width:22em}.ui.calendar .ui.table.hour{min-width:20em}.ui.calendar .ui.table tr td,.ui.calendar .ui.table tr th{padding:.5em;white-space:nowrap}.ui.calendar .ui.table tr th{border-left:none}.ui.calendar .ui.table tr th i.icon{margin:0}.ui.calendar .ui.table tr:first-child th{position:relative;padding-left:0;padding-right:0}.ui.calendar .ui.table.day tr:first-child th{border:none}.ui.calendar .ui.table.day tr:nth-child(2) th{padding-top:.2em;padding-bottom:.3em}.ui.calendar .ui.table tr td{padding-left:.1em;padding-right:.1em}.ui.calendar .ui.table tr .link{cursor:pointer}.ui.calendar .ui.table tr .prev.link{width:14.28571429%;position:absolute;left:0}.ui.calendar .ui.table tr .next.link{width:14.28571429%;position:absolute;right:0}.ui.ui.calendar .ui.table tr .disabled{pointer-events:auto;cursor:default;color:rgba(40,40,40,.3)}.ui.calendar .ui.table tr .adjacent:not(.disabled){color:rgba(0,0,0,.6);background:rgba(0,0,0,.03)}.ui.calendar .ui.table tr td.today{font-weight:700}.ui.calendar .ui.table tr td.range{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);box-shadow:none}.ui.calendar:not(.disabled) .calendar.active .ui.table tbody tr td.focus,.ui.calendar:not(.disabled) .calendar:focus .ui.table tbody tr td.focus{box-shadow:inset 0 0 0 1px #85b7d9}.ui.inverted.calendar .ui.table.inverted tr td.range{background:hsla(0,0%,100%,.08);color:#fff;box-shadow:none}.ui.inverted.calendar:not(.disabled) .calendar.active .ui.table.inverted tbody tr td.focus,.ui.inverted.calendar:not(.disabled) .calendar:focus .ui.table.inverted tbody tr td.focus{box-shadow:inset 0 0 0 1px #85b7d9}.ui.inverted.calendar .ui.inverted.table tr .disabled{color:hsla(0,0%,88.2%,.3)}.ui.inverted.calendar .ui.inverted.table tr .adjacent:not(.disabled){color:hsla(0,0%,100%,.8);background:hsla(0,0%,100%,.02)}.ui.disabled.calendar{opacity:.45}.ui.disabled.calendar .ui.table tr .link,.ui.disabled.calendar>.input{pointer-events:none}/*!
+ * # Fomantic-UI - Checkbox
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.checkbox{position:relative;display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:0;vertical-align:baseline;font-style:normal;min-height:17px;font-size:1em;line-height:17px;min-width:17px}.ui.checkbox input[type=checkbox],.ui.checkbox input[type=radio]{cursor:pointer;position:absolute;top:0;left:0;opacity:0!important;outline:0;z-index:3;width:17px;height:17px}.ui.checkbox label{cursor:auto;position:relative;display:block;padding-left:1.85714em;outline:0;font-size:1em}.ui.checkbox label:before{content:"";background:#fff;border-radius:.21428571rem;border:1px solid #d4d4d5}.ui.checkbox label:after,.ui.checkbox label:before{position:absolute;top:0;left:0;width:17px;height:17px;transition:border .1s ease,opacity .1s ease,transform .1s ease,box-shadow .1s ease}.ui.checkbox label:after{font-size:14px;text-align:center;opacity:0;color:rgba(0,0,0,.87)}.ui.checkbox+label,.ui.checkbox label{color:rgba(0,0,0,.87);transition:color .1s ease}.ui.checkbox+label{vertical-align:middle}.ui.checkbox label:hover:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox+label:hover,.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox label:active:before{background:#f9fafb;border-color:rgba(34,36,38,.35)}.ui.checkbox input:active~label,.ui.checkbox label:active:after{color:rgba(0,0,0,.95)}.ui.checkbox input:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:focus~label,.ui.checkbox input:focus~label:after{color:rgba(0,0,0,.95)}.ui.checkbox input:checked~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:checked~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.checkbox input:not([type=radio]):indeterminate~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:not([type=radio]):indeterminate~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.indeterminate.toggle.checkbox input:not([type=radio]):indeterminate~label:before{background:rgba(0,0,0,.15)}.ui.indeterminate.toggle.checkbox input:not([type=radio])~label:after{left:1.075rem}.ui.checkbox input:checked:focus~label:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:checked:focus~label:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:after{color:rgba(0,0,0,.95)}.ui.read-only.checkbox,.ui.read-only.checkbox label{cursor:default}.ui.checkbox input[disabled]~label,.ui.disabled.checkbox label{cursor:default!important;opacity:.5;color:#000;pointer-events:none}.ui.checkbox input.hidden{z-index:-1}.ui.checkbox input.hidden+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.radio.checkbox{min-height:15px}.ui.radio.checkbox label{padding-left:1.85714em}.ui.radio.checkbox label:before{content:"";transform:none;width:15px;height:15px;border-radius:500rem;top:1px;left:0}.ui.radio.checkbox label:after{border:none;content:""!important;line-height:15px;top:1px;left:0;width:15px;height:15px;border-radius:500rem;transform:scale(.46666667);background-color:rgba(0,0,0,.87)}.ui.radio.checkbox input:focus~label:before{background-color:#fff}.ui.radio.checkbox input:focus~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:indeterminate~label:after{opacity:0}.ui.radio.checkbox input:checked~label:before{background-color:#fff}.ui.radio.checkbox input:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:focus:checked~label:before{background-color:#fff}.ui.radio.checkbox input:focus:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.slider.checkbox{min-height:1.25rem}.ui.slider.checkbox input{width:3.5rem;height:1.25rem}.ui.slider.checkbox label{padding-left:4.5rem;line-height:1rem;color:rgba(0,0,0,.4)}.ui.slider.checkbox label:before{display:block;position:absolute;content:"";transform:none;border:none!important;left:0;z-index:1;top:.4rem;background-color:rgba(0,0,0,.05);width:3.5rem;height:.21428571rem;border-radius:500rem;transition:background .3s ease}.ui.slider.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));position:absolute;content:""!important;opacity:1;z-index:2;border:none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);width:1.5rem;height:1.5rem;top:-.25rem;left:0;transform:none;border-radius:500rem;transition:left .3s ease}.ui.slider.checkbox input:focus~label:before{background-color:rgba(0,0,0,.15);border:none}.ui.slider.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.slider.checkbox label:hover:before{background:rgba(0,0,0,.15)}.ui.slider.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:checked~label:before{background-color:#545454!important}.ui.slider.checkbox input:checked~label:after{left:2rem}.ui.slider.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:focus:checked~label:before{background-color:#000!important}.ui.toggle.checkbox{min-height:1.5rem}.ui.toggle.checkbox input{width:3.5rem;height:1.5rem}.ui.toggle.checkbox label{min-height:1.5rem;padding-left:4.5rem;color:rgba(0,0,0,.87);padding-top:.15em}.ui.toggle.checkbox label:before{display:block;content:"";z-index:1;transform:none;background:rgba(0,0,0,.05);box-shadow:none;width:3.5rem}.ui.toggle.checkbox label:after,.ui.toggle.checkbox label:before{position:absolute;border:none;top:0;height:1.5rem;border-radius:500rem}.ui.toggle.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));content:""!important;opacity:1;z-index:2;width:1.5rem;left:0;transition:background .3s ease,left .3s ease}.ui.toggle.checkbox input~label:after,.ui.toggle.checkbox label:after{box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox input~label:after{left:-.05rem}.ui.toggle.checkbox input:focus~label:before,.ui.toggle.checkbox label:hover:before{background-color:rgba(0,0,0,.15);border:none}.ui.toggle.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:checked~label:before{background-color:#2185d0!important}.ui.toggle.checkbox input:checked~label:after{left:2.15rem;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:focus:checked~label:before{background-color:#0d71bb!important}.ui.fitted.checkbox label{padding-left:0!important}.ui.fitted.slider.checkbox,.ui.fitted.toggle.checkbox{width:3.5rem}.ui.inverted.checkbox+label,.ui.inverted.checkbox label{color:hsla(0,0%,100%,.9)!important}.ui.inverted.checkbox label:hover{color:#fff!important}.ui.inverted.checkbox label:hover:before{border-color:rgba(34,36,38,.5)}.ui.inverted.slider.checkbox label{color:hsla(0,0%,100%,.5)}.ui.inverted.slider.checkbox label:before{background-color:hsla(0,0%,100%,.5)!important}.ui.inverted.slider.checkbox label:hover:before{background:hsla(0,0%,100%,.7)!important}.ui.inverted.slider.checkbox input:checked~label{color:#fff!important}.ui.inverted.slider.checkbox input:checked~label:before{background-color:hsla(0,0%,100%,.8)!important}.ui.inverted.slider.checkbox input:focus:checked~label{color:#fff!important}.ui.inverted.slider.checkbox input:focus:checked~label:before{background-color:hsla(0,0%,100%,.8)!important}.ui.inverted.toggle.checkbox label:before{background-color:hsla(0,0%,100%,.9)!important}.ui.inverted.toggle.checkbox label:hover:before{background:#fff!important}.ui.inverted.toggle.checkbox input:checked~label{color:#fff!important}.ui.inverted.toggle.checkbox input:checked~label:before{background-color:#2185d0!important}.ui.inverted.toggle.checkbox input:focus:checked~label{color:#fff!important}.ui.inverted.toggle.checkbox input:focus:checked~label:before{background-color:#0d71bb!important}.ui.mini.checkbox{font-size:.78571429em}.ui.tiny.checkbox{font-size:.85714286em}.ui.small.checkbox{font-size:.92857143em}.ui.large.checkbox{font-size:1.14285714em}.ui.large.checkbox.radio label:before,.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.large.form .checkbox.radio label:before,.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.14285714);transform-origin:left}.ui.large.checkbox.radio label:after,.ui.large.form .checkbox.radio label:after{transform:scale(.57142857);transform-origin:left;left:.33571429em}.ui.big.checkbox{font-size:1.28571429em}.ui.big.checkbox.radio label:before,.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.big.form .checkbox.radio label:before,.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.28571429);transform-origin:left}.ui.big.checkbox.radio label:after,.ui.big.form .checkbox.radio label:after{transform:scale(.64285714);transform-origin:left;left:.37142857em}.ui.huge.checkbox{font-size:1.42857143em}.ui.huge.checkbox.radio label:before,.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.huge.form .checkbox.radio label:before,.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.42857143);transform-origin:left}.ui.huge.checkbox.radio label:after,.ui.huge.form .checkbox.radio label:after{transform:scale(.71428571);transform-origin:left;left:.40714286em}.ui.massive.checkbox{font-size:1.71428571em}.ui.massive.checkbox.radio label:before,.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:before,.ui.massive.form .checkbox.radio label:before,.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before{transform:scale(1.71428571);transform-origin:left}.ui.massive.checkbox.radio label:after,.ui.massive.form .checkbox.radio label:after{transform:scale(.85714286);transform-origin:left;left:.47857143em}@font-face{font-family:Checkbox;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype")}.ui.checkbox .box:after,.ui.checkbox label:after{font-family:Checkbox}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{content:"\e800"}.ui.checkbox input:indeterminate~.box:after,.ui.checkbox input:indeterminate~label:after{font-size:12px;content:"\e801"}/*!
+ * # Fomantic-UI - Dimmer
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.dimmable:not(body){position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;padding:1em;background:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;transition:background-color .5s linear;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;color:#fff}.ui.segment>.ui.dimmer:not(.page){border-radius:inherit}.ui.dimmer:not(.inverted)::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:flex;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.dimmed.dimmable>.ui.animating.legacy.dimmer,.dimmed.dimmable>.ui.visible.legacy.dimmer,.ui.active.legacy.dimmer{display:block}.ui[class*="top aligned"].dimmer{justify-content:flex-start}.ui[class*="bottom aligned"].dimmer{justify-content:flex-end}.ui.page.dimmer{position:fixed;transform-style:"";perspective:2000px;transform-origin:center center}.ui.page.dimmer.modals{-moz-perspective:none}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){filter:none;transition:-webkit-filter .8s ease;transition:filter .8s ease;transition:filter .8s ease,-webkit-filter .8s ease}.blurring.dimmed.dimmable>:not(.dimmer):not(.popup){filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background:hsla(0,0%,100%,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.medium.medium.medium.medium.medium.dimmer{background:rgba(0,0,0,.65)}.light.light.light.light.light.dimmer{background:rgba(0,0,0,.45)}.very.light.light.light.light.dimmer{background:rgba(0,0,0,.25)}.ui.inverted.dimmer{background:hsla(0,0%,100%,.85)}.ui.inverted.dimmer>.content,.ui.inverted.dimmer>.content>*{color:#000}.medium.medium.medium.medium.medium.inverted.dimmer{background:hsla(0,0%,100%,.65)}.light.light.light.light.light.inverted.dimmer{background:hsla(0,0%,100%,.45)}.very.light.light.light.light.inverted.dimmer{background:hsla(0,0%,100%,.25)}.ui.simple.dimmer{display:block;overflow:hidden;opacity:0;width:0;height:0;z-index:-100;background:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background:hsla(0,0%,100%,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background:hsla(0,0%,100%,.85)}.ui[class*="bottom dimmer"],.ui[class*="center dimmer"],.ui[class*="top dimmer"]{height:auto}.ui[class*="bottom dimmer"]{top:auto!important;bottom:0}.ui[class*="center dimmer"]{top:50%!important;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}.ui.segment>.ui.ui[class*="top dimmer"]{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.segment>.ui.ui[class*="center dimmer"]{border-radius:0}.ui.segment>.ui.ui[class*="bottom dimmer"]{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="center dimmer"].transition[class*="fade up"].in{-webkit-animation-name:fadeInUpCenter;animation-name:fadeInUpCenter}.ui[class*="center dimmer"].transition[class*="fade down"].in{-webkit-animation-name:fadeInDownCenter;animation-name:fadeInDownCenter}.ui[class*="center dimmer"].transition[class*="fade up"].out{-webkit-animation-name:fadeOutUpCenter;animation-name:fadeOutUpCenter}.ui[class*="center dimmer"].transition[class*="fade down"].out{-webkit-animation-name:fadeOutDownCenter;animation-name:fadeOutDownCenter}.ui[class*="center dimmer"].bounce.transition{-webkit-animation-name:bounceCenter;animation-name:bounceCenter}@-webkit-keyframes fadeInUpCenter{0%{opacity:0;transform:translateY(-40%);-webkit-transform:translateY(calc(-40% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@keyframes fadeInUpCenter{0%{opacity:0;transform:translateY(-40%);-webkit-transform:translateY(calc(-40% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@-webkit-keyframes fadeInDownCenter{0%{opacity:0;transform:translateY(-60%);-webkit-transform:translateY(calc(-60% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@keyframes fadeInDownCenter{0%{opacity:0;transform:translateY(-60%);-webkit-transform:translateY(calc(-60% - .5px))}to{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}}@-webkit-keyframes fadeOutUpCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-45%);-webkit-transform:translateY(calc(-45% - .5px))}}@keyframes fadeOutUpCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-45%);-webkit-transform:translateY(calc(-45% - .5px))}}@-webkit-keyframes fadeOutDownCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-55%);-webkit-transform:translateY(calc(-55% - .5px))}}@keyframes fadeOutDownCenter{0%{opacity:1;transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}to{opacity:0;transform:translateY(-55%);-webkit-transform:translateY(calc(-55% - .5px))}}@-webkit-keyframes bounceCenter{0%,20%,50%,80%,to{transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}40%{transform:translateY(calc(-50% - 30px))}60%{transform:translateY(calc(-50% - 15px))}}@keyframes bounceCenter{0%,20%,50%,80%,to{transform:translateY(-50%);-webkit-transform:translateY(calc(-50% - .5px))}40%{transform:translateY(calc(-50% - 30px))}60%{transform:translateY(calc(-50% - 15px))}}/*!
+ * # Fomantic-UI - Dropdown
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.dropdown{cursor:pointer;position:relative;display:inline-block;outline:0;text-align:left;transition:box-shadow .1s ease,width .1s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;outline:0;top:100%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;margin:0;padding:0;background:#fff;font-size:1em;text-shadow:none;text-align:left;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem;transition:opacity .1s ease;z-index:11;will-change:transform,opacity}.ui.dropdown .menu>*{white-space:nowrap}.ui.dropdown>input:not(.search):first-child,.ui.dropdown>select{display:none!important}.ui.dropdown:not(.labeled)>.dropdown.icon{position:relative;width:auto;font-size:.85714286em;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon{width:auto;float:right;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon+.text{margin-right:1em}.ui.dropdown>.text{display:inline-block;transition:none}.ui.dropdown .menu>.item{position:relative;cursor:pointer;display:block;height:auto;min-height:2.57142857rem;text-align:left;border:none;line-height:1em;font-size:1rem;color:rgba(0,0,0,.87);padding:.78571429rem 1.14285714rem!important;text-transform:none;font-weight:400;box-shadow:none;-webkit-touch-callout:none}.ui.dropdown .menu>.item:first-child{border-top-width:0}.ui.dropdown .menu>.item.vertical{display:flex;flex-direction:column-reverse}.ui.dropdown .menu .item>[class*="right floated"],.ui.dropdown>.text>[class*="right floated"]{float:right!important;margin-right:0!important;margin-left:1em!important}.ui.dropdown .menu .item>[class*="left floated"],.ui.dropdown>.text>[class*="left floated"]{float:left!important;margin-left:0!important;margin-right:1em!important}.ui.dropdown .menu .item>.flag.floated,.ui.dropdown .menu .item>.image.floated,.ui.dropdown .menu .item>i.icon.floated,.ui.dropdown .menu .item>img.floated{margin-top:0}.ui.dropdown .menu>.header{margin:1rem 0 .75rem;padding:0 1.14285714rem;font-weight:700;text-transform:uppercase}.ui.dropdown .menu>.header:not(.ui){color:rgba(0,0,0,.85);font-size:.78571429em}.ui.dropdown .menu>.divider{border-top:1px solid rgba(34,36,38,.1);height:0;margin:.5em 0}.ui.dropdown .menu>.horizontal.divider{border-top:none}.ui.dropdown.dropdown .menu>.input{width:auto;display:flex;margin:1.14285714rem .78571429rem;min-width:10rem}.ui.dropdown .menu>.header+.input{margin-top:0}.ui.dropdown .menu>.input:not(.transparent) input{padding:.5em 1em}.ui.dropdown .menu>.input:not(.transparent) .button,.ui.dropdown .menu>.input:not(.transparent) .label,.ui.dropdown .menu>.input:not(.transparent) i.icon{padding-top:.5em;padding-bottom:.5em}.ui.dropdown .menu>.item>.description,.ui.dropdown>.text>.description{float:right;margin:0 0 0 1em;color:rgba(0,0,0,.4)}.ui.dropdown .menu>.item.vertical>.description{margin:0}.ui.dropdown .menu>.item.vertical>.text{margin-bottom:.25em}.ui.dropdown .menu>.message{padding:.78571429rem 1.14285714rem;font-weight:400}.ui.dropdown .menu>.message:not(.ui){color:rgba(0,0,0,.4)}.ui.dropdown .menu .menu{top:0;left:100%;right:auto;margin:0 -.5em!important;border-radius:.28571429rem!important;z-index:21!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>i.icon,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>i.icon,.ui.dropdown>.text>img{margin-top:0}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>i.icon,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>i.icon,.ui.dropdown>.text>img{margin-left:0;float:none;margin-right:.78571429rem}.ui.dropdown .menu>.item>.image:not(.icon),.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.image:not(.icon),.ui.dropdown>.text>img{display:inline-block;vertical-align:top;width:auto;margin-top:-.5em;margin-bottom:-.5em;max-height:2em}.ui.dropdown .ui.menu>.item:before,.ui.menu .ui.dropdown .menu>.item:before{display:none}.ui.menu .ui.dropdown .menu .active.item{border-left:none}.ui.buttons>.ui.dropdown:last-child>.menu:not(.left),.ui.menu .right.dropdown.item>.menu:not(.left),.ui.menu .right.menu .dropdown:last-child>.menu:not(.left){left:auto;right:0}.ui.label.dropdown .menu{min-width:100%}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.button.dropdown .menu{min-width:100%}select.ui.dropdown{height:38px;padding:.5em;border:1px solid rgba(34,36,38,.15);visibility:visible}.ui.selection.dropdown{cursor:pointer;word-wrap:break-word;line-height:1em;white-space:normal;outline:0;transform:rotate(0);min-width:14em;min-height:2.71428571em;background:#fff;display:inline-block;padding:.78571429em 3.2em .78571429em 1em;color:rgba(0,0,0,.87);box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem;transition:box-shadow .1s ease,width .1s ease}.ui.selection.dropdown.active,.ui.selection.dropdown.visible{z-index:10}.ui.selection.dropdown>.delete.icon,.ui.selection.dropdown>.dropdown.icon,.ui.selection.dropdown>.search.icon{cursor:pointer;position:absolute;width:auto;height:auto;line-height:1.21428571em;top:.78571429em;right:1em;z-index:3;margin:-.78571429em;padding:.91666667em;opacity:.8;transition:opacity .1s ease}.ui.compact.selection.dropdown{min-width:0}.ui.selection.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;border-top-width:0!important;width:auto;outline:0;margin:0 -1px;min-width:calc(100% + 2px);width:calc(100% + 2px);border-radius:0 0 .28571429rem .28571429rem;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);transition:opacity .1s ease}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu>.message{padding:.78571429rem 1.14285714rem}@media only screen and (max-width:767.98px){.ui.selection.dropdown.short .menu{max-height:6.01071429rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:4.00714286rem}.ui.selection.dropdown .menu{max-height:8.01428571rem}.ui.selection.dropdown.long .menu{max-height:16.02857143rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:24.04285714rem}}@media only screen and (min-width:768px){.ui.selection.dropdown.short .menu{max-height:8.01428571rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:5.34285714rem}.ui.selection.dropdown .menu{max-height:10.68571429rem}.ui.selection.dropdown.long .menu{max-height:21.37142857rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:32.05714286rem}}@media only screen and (min-width:992px){.ui.selection.dropdown.short .menu{max-height:12.02142857rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:8.01428571rem}.ui.selection.dropdown .menu{max-height:16.02857143rem}.ui.selection.dropdown.long .menu{max-height:32.05714286rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:48.08571429rem}}@media only screen and (min-width:1920px){.ui.selection.dropdown.short .menu{max-height:16.02857143rem}.ui.selection.dropdown[class*="very short"] .menu{max-height:10.68571429rem}.ui.selection.dropdown .menu{max-height:21.37142857rem}.ui.selection.dropdown.long .menu{max-height:42.74285714rem}.ui.selection.dropdown[class*="very long"] .menu{max-height:64.11428571rem}}.ui.selection.dropdown .menu>.item{border-top:1px solid #fafafa;padding:.78571429rem 1.14285714rem!important;white-space:normal;word-wrap:normal}.ui.selection.dropdown .menu>.hidden.addition.item{display:none}.ui.selection.dropdown:hover{border-color:rgba(34,36,38,.35);box-shadow:none}.ui.selection.active.dropdown,.ui.selection.active.dropdown .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.dropdown:focus{border-color:#96c8da;box-shadow:none}.ui.selection.dropdown:focus .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.visible.dropdown>.text:not(.default){font-weight:400;color:rgba(0,0,0,.8)}.ui.selection.active.dropdown:hover,.ui.selection.active.dropdown:hover .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.active.selection.dropdown>.dropdown.icon,.ui.visible.selection.dropdown>.dropdown.icon{opacity:"";z-index:3}.ui.active.selection.dropdown{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.active.empty.selection.dropdown{border-radius:.28571429rem!important;box-shadow:none!important}.ui.active.empty.selection.dropdown .menu{border:none!important;box-shadow:none!important}@supports (-webkit-touch-callout:none) or (-webkit-overflow-scrolling:touch) or (-moz-appearance:none){@media (-moz-touch-enabled),(pointer:coarse){.ui.dropdown .scrollhint.menu:not(.hidden):before{-webkit-animation:scrollhint 2s ease 2;animation:scrollhint 2s ease 2;content:"";z-index:15;display:block;position:absolute;opacity:0;right:.25em;top:0;height:100%;border-right:.25em solid;border-left:0;-o-border-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent) 1 100%;border-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent) 1 100%}.ui.inverted.dropdown .scrollhint.menu:not(.hidden):before{-o-border-image:linear-gradient(180deg,hsla(0,0%,100%,.75),hsla(0,0%,100%,0)) 1 100%;border-image:linear-gradient(180deg,hsla(0,0%,100%,.75),hsla(0,0%,100%,0)) 1 100%}@-webkit-keyframes scrollhint{0%{opacity:1;top:100%}to{opacity:0;top:0}}@keyframes scrollhint{0%{opacity:1;top:100%}to{opacity:0;top:0}}}}.ui.search.dropdown{min-width:""}.ui.search.dropdown>input.search{background:none transparent!important;border:none!important;box-shadow:none!important;cursor:text;top:0;left:1px;width:100%;outline:0;-webkit-tap-highlight-color:rgba(255,255,255,0);padding:inherit;position:absolute;z-index:2}.ui.search.dropdown>.text{cursor:text;position:relative;left:1px;z-index:auto}.ui.search.selection.dropdown>input.search,.ui.search.selection.dropdown>span.sizer{line-height:1.21428571em;padding:.67857143em 3.2em .67857143em 1em}.ui.search.selection.dropdown>span.sizer{display:none;white-space:pre}.ui.search.dropdown.active>input.search,.ui.search.dropdown.visible>input.search{cursor:auto}.ui.search.dropdown.active>.text,.ui.search.dropdown.visible>.text{pointer-events:none}.ui.active.search.dropdown input.search:focus+.text .flag,.ui.active.search.dropdown input.search:focus+.text i.icon{opacity:.45}.ui.active.search.dropdown input.search:focus+.text{color:hsla(0,0%,45.1%,.87)!important}.ui.search.dropdown.button>span.sizer{display:none}.ui.search.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}@media only screen and (max-width:767.98px){.ui.search.dropdown .menu{max-height:8.01428571rem}}@media only screen and (min-width:768px){.ui.search.dropdown .menu{max-height:10.68571429rem}}@media only screen and (min-width:992px){.ui.search.dropdown .menu{max-height:16.02857143rem}}@media only screen and (min-width:1920px){.ui.search.dropdown .menu{max-height:21.37142857rem}}.ui.dropdown>.remove.icon{cursor:pointer;font-size:.85714286em;margin:-.78571429em;padding:.91666667em;right:3em;top:.78571429em;position:absolute;opacity:.6;z-index:3}.ui.clearable.dropdown .text,.ui.clearable.dropdown a:last-of-type{margin-right:1.5em}.ui.dropdown.loading>.remove.icon,.ui.dropdown input:not([value])~.remove.icon,.ui.dropdown input[value=""]~.remove.icon,.ui.dropdown select.noselection~.remove.icon{display:none}.ui.ui.multiple.dropdown{padding:.22619048em 3.2em .22619048em .35714286em}.ui.multiple.dropdown .menu{cursor:auto}.ui.multiple.dropdown>.label{display:inline-block;white-space:normal;font-size:1em;padding:.35714286em .78571429em;margin:.14285714rem .28571429rem .14285714rem 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.multiple.dropdown .dropdown.icon{margin:"";padding:""}.ui.multiple.dropdown>.text{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.dropdown>.text.default{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui.multiple.dropdown>.label~input.search{margin-left:.14285714em!important}.ui.multiple.dropdown>.label~.text{display:none}.ui.multiple.dropdown>.label:not(.image)>img:not(.centered){margin-right:.78571429rem}.ui.multiple.dropdown>.label:not(.image)>img.ui:not(.avatar){margin-bottom:.39285714rem}.ui.multiple.dropdown>.image.label img{margin:-.35714286em .78571429em -.35714286em -.78571429em;height:1.71428571em}.ui.multiple.search.dropdown,.ui.multiple.search.dropdown>input.search{cursor:text}.ui.multiple.search.dropdown>.text{display:inline-block;position:absolute;top:0;left:0;padding:inherit;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.search.dropdown>.label~.text{display:none}.ui.multiple.search.dropdown>input.search{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;width:2.2em;line-height:1.21428571em}.ui.multiple.search.dropdown.button{min-width:14em}.ui.inline.dropdown{cursor:pointer;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .21428571em;vertical-align:baseline}.ui.inline.dropdown>.text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.21428571em;border-radius:.28571429rem}.ui.dropdown .menu .active.item{background:0 0;font-weight:700;color:rgba(0,0,0,.95);box-shadow:none;z-index:12}.ui.dropdown .menu>.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);z-index:13}.ui.default.dropdown:not(.button)>.text,.ui.dropdown:not(.button)>.default.text{color:hsla(0,0%,74.9%,.87)}.ui.default.dropdown:not(.button)>input:focus~.text,.ui.dropdown:not(.button)>input:focus~.default.text{color:hsla(0,0%,45.1%,.87)}.ui.loading.dropdown>i.icon{height:1em!important}.ui.loading.selection.dropdown>i.icon{padding:1.5em 1.28571429em!important}.ui.loading.dropdown>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.dropdown>i.icon:after,.ui.loading.dropdown>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.dropdown>i.icon:after{box-shadow:0 0 0 1px transparent;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem}.ui.loading.dropdown.button>i.icon:after,.ui.loading.dropdown.button>i.icon:before{display:none}.ui.loading.dropdown>.text{transition:none}.ui.dropdown .loading.menu{display:block;visibility:hidden;z-index:-1}.ui.dropdown>.loading.menu{left:0!important;right:auto!important}.ui.dropdown>.menu .loading.menu{left:100%!important;right:auto!important}.ui.dropdown .menu .selected.item,.ui.dropdown.selected{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.dropdown>.filtered.text{visibility:hidden}.ui.dropdown .filtered.item{display:none!important}.ui.dropdown.error,.ui.dropdown.error>.default.text,.ui.dropdown.error>.text{color:#9f3a38}.ui.selection.dropdown.error{background:#fff6f6;border-color:#e0b4b4}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu,.ui.multiple.selection.error.dropdown>.label,.ui.selection.dropdown.error:hover{border-color:#e0b4b4}.ui.dropdown.error>.menu>.item{color:#9f3a38}.ui.dropdown.error>.menu>.item:hover{background-color:#fbe7e7}.ui.dropdown.error>.menu .active.item{background-color:#fdcfcf}.ui.dropdown.info,.ui.dropdown.info>.default.text,.ui.dropdown.info>.text{color:#276f86}.ui.selection.dropdown.info{background:#f8ffff;border-color:#a9d5de}.ui.dropdown.info>.menu,.ui.dropdown.info>.menu .menu,.ui.multiple.selection.info.dropdown>.label,.ui.selection.dropdown.info:hover{border-color:#a9d5de}.ui.dropdown.info>.menu>.item{color:#276f86}.ui.dropdown.info>.menu>.item:hover{background-color:#e9f2fb}.ui.dropdown.info>.menu .active.item{background-color:#cef1fd}.ui.dropdown.success,.ui.dropdown.success>.default.text,.ui.dropdown.success>.text{color:#2c662d}.ui.selection.dropdown.success{background:#fcfff5;border-color:#a3c293}.ui.dropdown.success>.menu,.ui.dropdown.success>.menu .menu,.ui.multiple.selection.success.dropdown>.label,.ui.selection.dropdown.success:hover{border-color:#a3c293}.ui.dropdown.success>.menu>.item{color:#2c662d}.ui.dropdown.success>.menu>.item:hover{background-color:#e9fbe9}.ui.dropdown.success>.menu .active.item{background-color:#dafdce}.ui.dropdown.warning,.ui.dropdown.warning>.default.text,.ui.dropdown.warning>.text{color:#573a08}.ui.selection.dropdown.warning{background:#fffaf3;border-color:#c9ba9b}.ui.dropdown.warning>.menu,.ui.dropdown.warning>.menu .menu,.ui.multiple.selection.warning.dropdown>.label,.ui.selection.dropdown.warning:hover{border-color:#c9ba9b}.ui.dropdown.warning>.menu>.item{color:#573a08}.ui.dropdown.warning>.menu>.item:hover{background-color:#fbfbe9}.ui.dropdown.warning>.menu .active.item{background-color:#fdfdce}.ui.dropdown>.clear.dropdown.icon{opacity:.8;transition:opacity .1s ease}.ui.dropdown>.clear.dropdown.icon:hover{opacity:1}.ui.disabled.dropdown,.ui.dropdown .menu>.disabled.item{cursor:default;pointer-events:none;opacity:.45}.ui.dropdown .menu{left:0}.ui.dropdown .menu .right.menu,.ui.dropdown .right.menu>.menu{left:100%!important;right:auto!important;border-radius:.28571429rem!important}.ui.dropdown>.left.menu{left:auto!important;right:0!important}.ui.dropdown .menu .left.menu,.ui.dropdown>.left.menu .menu{left:auto;right:100%;margin:0 -.5em 0 0!important;border-radius:.28571429rem!important}.ui.dropdown .item .left.dropdown.icon,.ui.dropdown .left.menu .item .dropdown.icon{width:auto;float:left;margin:0}.ui.dropdown .item .left.dropdown.icon+.text,.ui.dropdown .left.menu .item .dropdown.icon+.text{margin-left:1em;margin-right:0}.ui.upward.dropdown>.menu{top:auto;bottom:100%;box-shadow:0 0 3px 0 rgba(0,0,0,.08);border-radius:.28571429rem .28571429rem 0 0}.ui.dropdown .upward.menu{top:auto!important;bottom:0!important}.ui.simple.upward.active.dropdown,.ui.simple.upward.dropdown:hover{border-radius:.28571429rem .28571429rem 0 0!important}.ui.upward.dropdown.button:not(.pointing):not(.floating).active{border-radius:.28571429rem .28571429rem 0 0}.ui.upward.selection.dropdown .menu{border-top-width:1px!important;border-bottom-width:0!important;box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.upward.selection.dropdown:hover{box-shadow:0 0 2px 0 rgba(0,0,0,.05)}.ui.active.upward.selection.dropdown,.ui.upward.selection.dropdown.visible{border-radius:0 0 .28571429rem .28571429rem!important}.ui.upward.selection.dropdown.visible{box-shadow:0 0 3px 0 rgba(0,0,0,.08)}.ui.upward.active.selection.dropdown:hover{box-shadow:0 0 3px 0 rgba(0,0,0,.05)}.ui.upward.active.selection.dropdown:hover .menu{box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-x:hidden;overflow-y:auto}.ui.scrolling.dropdown .menu{overflow-x:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-y:auto;min-width:100%!important;width:auto!important}.ui.dropdown .scrolling.menu{position:static;box-shadow:none!important;border-radius:0!important;margin:0!important;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.dropdown .scrolling.menu .item:first-child,.ui.dropdown .scrolling.menu>.item.item.item,.ui.scrolling.dropdown .menu .item.item.item,.ui.scrolling.dropdown .menu .item:first-child{border-top:none}.ui.dropdown>.animating.menu .scrolling.menu,.ui.dropdown>.visible.menu .scrolling.menu{display:block}@media (-ms-high-contrast:none){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{min-width:calc(100% - 17px)}}@media only screen and (max-width:767.98px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:10.28571429rem}}@media only screen and (min-width:768px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:15.42857143rem}}@media only screen and (min-width:992px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}@media only screen and (min-width:1920px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}.ui.column.dropdown>.menu{flex-wrap:wrap}.ui.dropdown[class*="two column"]>.menu>.item{width:50%}.ui.dropdown[class*="three column"]>.menu>.item{width:33%}.ui.dropdown[class*="four column"]>.menu>.item{width:25%}.ui.dropdown[class*="five column"]>.menu>.item{width:20%}.ui.simple.dropdown .menu:after,.ui.simple.dropdown .menu:before{display:none}.ui.simple.dropdown .menu{position:absolute;display:-ms-inline-flexbox!important;display:block;overflow:hidden;top:-9999px;opacity:0;width:0;height:0;transition:opacity .1s ease;margin-top:0!important}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%;opacity:1}.ui.simple.dropdown .menu .item:hover>.menu,.ui.simple.dropdown>.menu>.item:active>.menu{overflow:visible;width:auto;height:auto;top:0!important;left:100%;opacity:1}.right.menu .ui.simple.dropdown>.menu .item:hover>.menu:not(.right),.right.menu .ui.simple.dropdown>.menu>.item:active>.menu:not(.right),.ui.simple.dropdown .menu .item:hover>.left.menu,.ui.simple.dropdown>.menu>.item:active>.left.menu{left:auto;right:100%}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.simple.visible.dropdown>.menu{display:block}.ui.simple.scrolling.active.dropdown>.menu,.ui.simple.scrolling.dropdown:hover>.menu{overflow-x:hidden;overflow-y:auto}.ui.fluid.dropdown{display:block;width:100%!important;min-width:0}.ui.fluid.dropdown>.dropdown.icon{float:right}.ui.floating.dropdown .menu{left:0;right:auto;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)!important}.ui.floating.dropdown .menu,.ui.floating.dropdown>.menu{border-radius:.28571429rem!important}.ui:not(.upward).floating.dropdown>.menu{margin-top:.5em}.ui.upward.floating.dropdown>.menu{margin-bottom:.5em}.ui.pointing.dropdown>.menu{top:100%;margin-top:.78571429rem;border-radius:.28571429rem}.ui.pointing.dropdown>.menu:not(.hidden):after{display:block;position:absolute;pointer-events:none;content:"";visibility:visible;transform:rotate(45deg);width:.5em;height:.5em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15);background:#fff;z-index:2;top:-.25em;left:50%;margin:0 0 0 -.25em}.ui.top.left.pointing.dropdown>.menu{top:100%;bottom:auto;left:0;right:auto;margin:1em 0 0}.ui.top.left.pointing.dropdown>.menu:after{top:-.25em;left:1em;right:auto;margin:0;transform:rotate(45deg)}.ui.top.right.pointing.dropdown>.menu{top:100%;bottom:auto;right:0;left:auto;margin:1em 0 0}.ui.top.pointing.dropdown>.left.menu:after,.ui.top.right.pointing.dropdown>.menu:after{top:-.25em;left:auto!important;right:1em!important;margin:0;transform:rotate(45deg)}.ui.left.pointing.dropdown>.menu{top:0;left:100%;right:auto;margin:0 0 0 1em}.ui.left.pointing.dropdown>.menu:after{top:1em;left:-.25em;margin:0;transform:rotate(-45deg)}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu{left:auto!important;right:100%!important;margin:0 1em 0 0}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.right.pointing.dropdown>.menu{top:0;left:auto;right:100%;margin:0 1em 0 0}.ui.right.pointing.dropdown>.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.bottom.pointing.dropdown>.menu{top:auto;bottom:100%;left:0;right:auto;margin:0 0 1em}.ui.bottom.pointing.dropdown>.menu:after{top:auto;bottom:-.25em;right:auto;margin:0;transform:rotate(-135deg)}.ui.bottom.pointing.dropdown>.menu .menu{top:auto!important;bottom:0!important}.ui.bottom.left.pointing.dropdown>.menu{left:0;right:auto}.ui.bottom.left.pointing.dropdown>.menu:after{left:1em;right:auto}.ui.bottom.right.pointing.dropdown>.menu{right:0;left:auto}.ui.bottom.right.pointing.dropdown>.menu:after{left:auto;right:1em}.ui.pointing.upward.dropdown .menu,.ui.top.pointing.upward.dropdown .menu{top:auto!important;bottom:100%!important;margin:0 0 .78571429rem;border-radius:.28571429rem}.ui.pointing.upward.dropdown .menu:after,.ui.top.pointing.upward.dropdown .menu:after{top:100%!important;bottom:auto!important;box-shadow:1px 1px 0 0 rgba(34,36,38,.15);margin:-.25em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 1em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 0 0 1em}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}.ui.dropdown,.ui.dropdown .menu>.item{font-size:1rem}.ui.mini.dropdown,.ui.mini.dropdown .menu>.item{font-size:.78571429rem}.ui.tiny.dropdown,.ui.tiny.dropdown .menu>.item{font-size:.85714286rem}.ui.small.dropdown,.ui.small.dropdown .menu>.item{font-size:.92857143rem}.ui.large.dropdown,.ui.large.dropdown .menu>.item{font-size:1.14285714rem}.ui.big.dropdown,.ui.big.dropdown .menu>.item{font-size:1.28571429rem}.ui.huge.dropdown,.ui.huge.dropdown .menu>.item{font-size:1.42857143rem}.ui.massive.dropdown,.ui.massive.dropdown .menu>.item{font-size:1.71428571rem}.ui.inverted.dropdown .menu{background:#1b1c1d;box-shadow:none;border:1px solid hsla(0,0%,100%,.15)}.ui.inverted.dropdown .menu>.item{color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu .active.item{background:0 0;color:hsla(0,0%,100%,.8);box-shadow:none}.ui.inverted.dropdown .menu>.item:hover{background:hsla(0,0%,100%,.08);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu .selected.item,.ui.inverted.dropdown.selected{background:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu>.header{color:#fff}.ui.inverted.dropdown .menu>.item>.description,.ui.inverted.dropdown>.text>.description{color:hsla(0,0%,100%,.5)}.ui.inverted.dropdown .menu>.divider{border-top:1px solid hsla(0,0%,100%,.15)}.ui.inverted.dropdown .scrolling.menu{border:none;border-top:1px solid hsla(0,0%,100%,.15)}.ui.inverted.selection.dropdown{border:1px solid hsla(0,0%,100%,.15);background:#1b1c1d;color:hsla(0,0%,100%,.8)}.ui.inverted.selection.dropdown:hover{border-color:hsla(0,0%,100%,.25);box-shadow:none}.ui.inverted.selection.dropdown input{color:#fff}.ui.inverted.selection.visible.dropdown>.text:not(.default){color:hsla(0,0%,100%,.9)}.ui.inverted.selection.active.dropdown .menu,.ui.inverted.selection.active.dropdown:hover{border-color:hsla(0,0%,100%,.15)}.ui.inverted.selection.dropdown .menu>.item{border-top:1px solid #242526}.ui.inverted.default.dropdown:not(.button)>.text,.ui.inverted.dropdown:not(.button)>.default.text{color:hsla(0,0%,100%,.5)}.ui.inverted.default.dropdown:not(.button)>input:focus~.text,.ui.inverted.dropdown:not(.button)>input:focus~.default.text{color:hsla(0,0%,100%,.7)}.ui.inverted.active.search.dropdown input.search:focus+.text .flag,.ui.inverted.active.search.dropdown input.search:focus+.text i.icon{opacity:.45}.ui.inverted.active.search.dropdown input.search:focus+.text{color:hsla(0,0%,100%,.7)!important}.ui.inverted.dropdown .menu>.message:not(.ui){color:hsla(0,0%,100%,.5)}.ui.inverted.dropdown .menu>.item:first-child{border-top-width:0}.ui.inverted.multiple.dropdown>.label{background-color:hsla(0,0%,100%,.7);background-image:none;color:#000;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,0)}.ui.inverted.multiple.dropdown>.label:hover{background-color:hsla(0,0%,100%,.9);border-color:hsla(0,0%,100%,.9);background-image:none;color:#000}.ui.inverted.multiple.dropdown>.label>.close.icon,.ui.inverted.multiple.dropdown>.label>.delete.icon{opacity:.6}.ui.inverted.multiple.dropdown>.label>.close.icon:hover,.ui.inverted.multiple.dropdown>.label>.delete.icon:hover{opacity:.8}.ui.inverted.dropdown input::-webkit-selection,.ui.inverted.dropdown textarea::-webkit-selection{background-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown input::-moz-selection,.ui.inverted.dropdown textarea::-moz-selection{background-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown input::selection,.ui.inverted.dropdown textarea::selection{background-color:hsla(0,0%,100%,.25);color:hsla(0,0%,100%,.8)}.ui.inverted.dropdown .menu::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}.ui.inverted.dropdown .menu::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}.ui.inverted.pointing.dropdown>.menu:after{background:#1b1c1d;box-shadow:-1px -1px 0 0 hsla(0,0%,100%,.15)}@font-face{font-family:Dropdown;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("woff");font-weight:400;font-style:normal}.ui.dropdown>.dropdown.icon{font-family:Dropdown;line-height:1;height:1em;width:1.23em;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center;width:auto}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown .item .left.dropdown.icon:before,.ui.dropdown .left.menu .item .dropdown.icon:before{content:"\f0d9"}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}/*!
+ * # Fomantic-UI - Video
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:hidden}.ui.embed>.embed{display:none}.ui.embed>.placeholder{display:block;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.placeholder,.ui.embed>i.icon{position:absolute;cursor:pointer;top:0;left:0;width:100%;height:100%}.ui.embed>i.icon{z-index:2}.ui.embed>i.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:"";background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;transition:opacity .5s ease}.ui.embed>i.icon:before{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);color:#fff;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed i.icon:hover:after{background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed i.icon:hover:before{color:#fff}.ui.active.embed>.placeholder,.ui.active.embed>i.icon{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%}/*!
+ * # Fomantic-UI - Modal
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.modal{position:absolute;display:none;z-index:1001;text-align:left;background:#fff;border:none;box-shadow:1px 3px 3px 0 rgba(0,0,0,.2),1px 3px 15px 2px rgba(0,0,0,.2);transform-origin:50% 25%;flex:0 0 auto;border-radius:.28571429rem;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;will-change:top,left,margin,transform,opacity}.ui.modal>.dimmer:first-child+:not(.icon),.ui.modal>.dimmer:first-child+i.icon+*,.ui.modal>:first-child:not(.icon):not(.dimmer),.ui.modal>i.icon:first-child+*{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.modal>:last-child{border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.modal>.ui.dimmer{border-radius:inherit}.ui.modal>.close{cursor:pointer;position:absolute;top:-2.5rem;right:-2.5rem;z-index:1;opacity:.8;font-size:1.25em;color:#fff;width:2.25rem;height:2.25rem;padding:.625rem 0 0}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;margin:0;padding:1.25rem 1.5rem;box-shadow:none;color:rgba(0,0,0,.85);border-bottom:1px solid rgba(34,36,38,.15)}.ui.modal>.header:not(.ui){font-size:1.42857143rem;line-height:1.28571429em;font-weight:700}.ui.modal>.content{display:block;width:100%;font-size:1em;line-height:1.4;padding:1.5rem;background:#fff}.ui.modal>.image.content{display:flex;flex-direction:row}.ui.modal>.content>.image{display:block;flex:0 1 auto;width:"";align-self:start;max-width:100%}.ui.modal>[class*="top aligned"]{align-self:start}.ui.modal>[class*="middle aligned"]{align-self:center}.ui.modal>[class*=stretched]{align-self:stretch}.ui.modal>.content>.description{display:block;flex:1 0 auto;min-width:0;align-self:start}.ui.modal>.content>.image+.description,.ui.modal>.content>i.icon+.description{flex:0 1 auto;min-width:"";width:auto;padding-left:2em}.ui.modal>.content>.image>i.icon{margin:0;opacity:1;width:auto;line-height:1;font-size:8rem}.ui.modal>.actions{background:#f9fafb;padding:1rem;border-top:1px solid rgba(34,36,38,.15);text-align:right}.ui.modal .actions>.button:not(.fluid){margin-left:.75em}.ui.basic.modal>.actions{border-top:none}@media only screen and (max-width:767.98px){.ui.modal:not(.fullscreen){width:95%;margin:0}}@media only screen and (min-width:768px){.ui.modal:not(.fullscreen){width:88%;margin:0}}@media only screen and (min-width:992px){.ui.modal:not(.fullscreen){width:850px;margin:0}}@media only screen and (min-width:1200px){.ui.modal:not(.fullscreen){width:900px;margin:0}}@media only screen and (min-width:1920px){.ui.modal:not(.fullscreen){width:950px;margin:0}}@media only screen and (max-width:991.98px){.ui.modal>.header{padding-right:2.25rem}.ui.modal>.close{top:1.0535rem;right:1rem;color:rgba(0,0,0,.87)}}@media only screen and (max-width:767.98px){.ui.modal>.header{padding:.75rem 2.25rem .75rem 1rem!important}.ui.overlay.fullscreen.modal>.content.content.content{min-height:calc(100vh - 8.1rem)}.ui.overlay.fullscreen.modal>.scrolling.content.content.content{max-height:calc(100vh - 8.1rem)}.ui.modal>.content{display:block;padding:1rem!important}.ui.modal>.close{top:.5rem!important;right:.5rem!important}.ui.modal .image.content{flex-direction:column}.ui.modal>.content>.image{display:block;max-width:100%;margin:0 auto!important;text-align:center;padding:0 0 1rem!important}.ui.modal>.content>.image>i.icon{font-size:5rem;text-align:center}.ui.modal>.content>.description{display:block;width:100%!important;margin:0!important;padding:1rem 0!important;box-shadow:none}.ui.modal>.actions{padding:1rem 1rem 0!important}.ui.modal .actions>.button,.ui.modal .actions>.buttons{margin-bottom:1rem}}.ui.inverted.dimmer>.ui.modal{box-shadow:1px 3px 10px 2px rgba(0,0,0,.2)}.ui.basic.modal{border:none;border-radius:0;box-shadow:none!important;color:#fff}.ui.basic.modal,.ui.basic.modal>.actions,.ui.basic.modal>.content,.ui.basic.modal>.header{background-color:transparent}.ui.basic.modal>.header{color:#fff;border-bottom:none}.ui.basic.modal>.close{top:1rem;right:1.5rem;color:#fff}.ui.inverted.dimmer>.basic.modal{color:rgba(0,0,0,.87)}.ui.inverted.dimmer>.ui.basic.modal>.header{color:rgba(0,0,0,.85)}.ui.legacy.legacy.modal,.ui.legacy.legacy.page.dimmer>.ui.modal{left:50%!important}.ui.legacy.legacy.modal:not(.aligned),.ui.legacy.legacy.page.dimmer>.ui.modal:not(.aligned){top:50%}.ui.legacy.legacy.page.dimmer>.ui.scrolling.modal:not(.aligned),.ui.page.dimmer>.ui.scrolling.legacy.legacy.modal:not(.aligned),.ui.top.aligned.dimmer>.ui.legacy.legacy.modal:not(.aligned),.ui.top.aligned.legacy.legacy.page.dimmer>.ui.modal:not(.aligned){top:auto}.ui.legacy.overlay.fullscreen.modal{margin-top:-2rem!important}.ui.loading.modal{display:block;visibility:hidden;z-index:-1}.ui.active.modal{display:block}.modals.dimmer .ui.top.aligned.modal{top:5vh}.modals.dimmer .ui.bottom.aligned.modal{bottom:5vh}@media only screen and (max-width:767.98px){.modals.dimmer .ui.top.aligned.modal{top:1rem}.modals.dimmer .ui.bottom.aligned.modal{bottom:1rem}}.scrolling.dimmable.dimmed{overflow:hidden}.scrolling.dimmable>.dimmer{justify-content:flex-start;position:fixed}.scrolling.dimmable.dimmed>.dimmer{overflow:auto;-webkit-overflow-scrolling:touch}.modals.dimmer .ui.scrolling.modal:not(.fullscreen){margin:2rem auto}.modals.dimmer .ui.scrolling.modal:not([class*="overlay fullscreen"]):after{content:"\00A0";position:absolute;height:2rem}.scrolling.undetached.dimmable.dimmed{overflow:auto;-webkit-overflow-scrolling:touch}.scrolling.undetached.dimmable.dimmed>.dimmer{overflow:hidden}.scrolling.undetached.dimmable .ui.scrolling.modal:not(.fullscreen){position:absolute;left:50%}.ui.modal>.scrolling.content{max-height:calc(80vh - 10rem);overflow:auto}.ui.overlay.fullscreen.modal>.content{min-height:calc(100vh - 9.1rem)}.ui.overlay.fullscreen.modal>.scrolling.content{max-height:calc(100vh - 9.1rem)}.ui.fullscreen.modal{width:95%;left:2.5%;margin:1em auto}.ui.overlay.fullscreen.modal{width:100%;left:0;margin:0 auto;top:0;border-radius:0}.ui.fullscreen.modal>.header,.ui.modal>.close.inside+.header{padding-right:2.25rem}.ui.fullscreen.modal>.close,.ui.modal>.close.inside{top:1.0535rem;right:1rem;color:rgba(0,0,0,.87)}.ui.basic.fullscreen.modal>.close{color:#fff}.ui.modal{font-size:1rem}.ui.mini.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767.98px){.ui.mini.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.mini.modal{width:35.2%;margin:0}}@media only screen and (min-width:992px){.ui.mini.modal{width:340px;margin:0}}@media only screen and (min-width:1200px){.ui.mini.modal{width:360px;margin:0}}@media only screen and (min-width:1920px){.ui.mini.modal{width:380px;margin:0}}.ui.tiny.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767.98px){.ui.tiny.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.tiny.modal{width:52.8%;margin:0}}@media only screen and (min-width:992px){.ui.tiny.modal{width:510px;margin:0}}@media only screen and (min-width:1200px){.ui.tiny.modal{width:540px;margin:0}}@media only screen and (min-width:1920px){.ui.tiny.modal{width:570px;margin:0}}.ui.small.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767.98px){.ui.small.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.small.modal{width:70.4%;margin:0}}@media only screen and (min-width:992px){.ui.small.modal{width:680px;margin:0}}@media only screen and (min-width:1200px){.ui.small.modal{width:720px;margin:0}}@media only screen and (min-width:1920px){.ui.small.modal{width:760px;margin:0}}.ui.large.modal>.header:not(.ui){font-size:1.6em}@media only screen and (max-width:767.98px){.ui.large.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.large.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.large.modal{width:1020px;margin:0}}@media only screen and (min-width:1200px){.ui.large.modal{width:1080px;margin:0}}@media only screen and (min-width:1920px){.ui.large.modal{width:1140px;margin:0}}.ui.big.modal>.header:not(.ui){font-size:1.6em}@media only screen and (max-width:767.98px){.ui.big.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.big.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.big.modal{width:1190px;margin:0}}@media only screen and (min-width:1200px){.ui.big.modal{width:1260px;margin:0}}@media only screen and (min-width:1920px){.ui.big.modal{width:1330px;margin:0}}.ui.huge.modal>.header:not(.ui){font-size:1.6em}@media only screen and (max-width:767.98px){.ui.huge.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.huge.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.huge.modal{width:1360px;margin:0}}@media only screen and (min-width:1200px){.ui.huge.modal{width:1440px;margin:0}}@media only screen and (min-width:1920px){.ui.huge.modal{width:1520px;margin:0}}.ui.massive.modal>.header:not(.ui){font-size:1.8em}@media only screen and (max-width:767.98px){.ui.massive.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.massive.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.massive.modal{width:1530px;margin:0}}@media only screen and (min-width:1200px){.ui.massive.modal{width:1620px;margin:0}}@media only screen and (min-width:1920px){.ui.massive.modal{width:1710px;margin:0}}.ui.inverted.modal{background:rgba(0,0,0,.9)}.ui.inverted.modal>.content,.ui.inverted.modal>.header{background:rgba(0,0,0,.9);color:#fff}.ui.inverted.modal>.actions{background:#191a1b;border-top:1px solid rgba(34,36,38,.85);color:#fff}.ui.inverted.dimmer>.modal>.close{color:rgba(0,0,0,.85)}@media only screen and (max-width:991.98px){.ui.dimmer .inverted.modal>.close{color:#fff}}.ui.inverted.fullscreen.modal>.close,.ui.inverted.modal>.close.inside{color:#fff}/*!
+ * # Fomantic-UI - Nag
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .28571429rem .28571429rem;transition:background .2s ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.28571429rem .28571429rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.nags .nag:last-child{border-radius:.28571429rem .28571429rem 0 0}/*!
+ * # Fomantic-UI - Loader
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.placeholder{position:static;overflow:hidden;-webkit-animation:placeholderShimmer 2s linear;animation:placeholderShimmer 2s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;background-color:#fff;background-image:linear-gradient(90deg,rgba(0,0,0,.08) 0,rgba(0,0,0,.15) 15%,rgba(0,0,0,.08) 30%);background-size:1200px 100%;max-width:30rem}@-webkit-keyframes placeholderShimmer{0%{background-position:-1200px 0}to{background-position:1200px 0}}@keyframes placeholderShimmer{0%{background-position:-1200px 0}to{background-position:1200px 0}}.ui.placeholder+.ui.placeholder{margin-top:2rem;-webkit-animation-delay:.15s;animation-delay:.15s}.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.3s;animation-delay:.3s}.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.45s;animation-delay:.45s}.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.6s;animation-delay:.6s}.ui.placeholder,.ui.placeholder .image.header:after,.ui.placeholder .line,.ui.placeholder .line:after,.ui.placeholder>:before{background-color:#fff}.ui.placeholder.hidden{display:none}.ui.placeholder .image:not(.header):not(.ui):not(.icon){height:100px}.ui.placeholder .square.image:not(.header){height:0;overflow:hidden;padding-top:100%}.ui.placeholder .rectangular.image:not(.header){height:0;overflow:hidden;padding-top:75%}.ui.placeholder .line{position:relative;height:.85714286em}.ui.placeholder .line:after,.ui.placeholder .line:before{top:100%;position:absolute;content:"";background-color:inherit}.ui.placeholder .line:before{left:0}.ui.placeholder .line:after{right:0}.ui.placeholder .line{margin-bottom:.5em}.ui.placeholder .line:after,.ui.placeholder .line:before{height:.5em}.ui.placeholder .line:not(:first-child){margin-top:.5em}.ui.placeholder .line:first-child:after{width:0}.ui.placeholder .line:nth-child(2):after{width:50%}.ui.placeholder .line:nth-child(3):after{width:10%}.ui.placeholder .line:nth-child(4):after{width:35%}.ui.placeholder .line:nth-child(5):after{width:65%}.ui.placeholder .header{position:relative;overflow:hidden}.ui.placeholder .header .line{margin-bottom:.64285714em}.ui.placeholder .header .line:after,.ui.placeholder .header .line:before{height:.64285714em}.ui.placeholder .header .line:not(:first-child){margin-top:.64285714em}.ui.placeholder .header .line:after{width:20%}.ui.placeholder .header .line:nth-child(2):after{width:60%}.ui.placeholder .image.header .line{margin-left:3em}.ui.placeholder .image.header .line:before{width:.71428571rem}.ui.placeholder .image.header:after{display:block;height:.85714286em;content:"";margin-left:3em}.ui.placeholder .header .line:first-child,.ui.placeholder .image .line:first-child,.ui.placeholder .paragraph .line:first-child{height:.01px}.ui.placeholder .header:not(:first-child):before,.ui.placeholder .image:not(:first-child):before,.ui.placeholder .paragraph:not(:first-child):before{height:1.42857143em;content:"";display:block}.ui.inverted.placeholder{background-image:linear-gradient(90deg,hsla(0,0%,100%,.08) 0,hsla(0,0%,100%,.14) 15%,hsla(0,0%,100%,.08) 30%)}.ui.inverted.placeholder,.ui.inverted.placeholder .image.header:after,.ui.inverted.placeholder .line,.ui.inverted.placeholder .line:after,.ui.inverted.placeholder>:before{background-color:#1b1c1d}.ui.placeholder .full.line.line.line:after{width:0}.ui.placeholder .very.long.line.line.line:after{width:10%}.ui.placeholder .long.line.line.line:after{width:35%}.ui.placeholder .medium.line.line.line:after{width:50%}.ui.placeholder .short.line.line.line:after{width:65%}.ui.placeholder .very.short.line.line.line:after{width:80%}.ui.fluid.placeholder{max-width:none}/*!
+ * # Fomantic-UI - Popup
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.popup{display:none;position:absolute;top:0;right:0;min-width:-webkit-min-content;min-width:-moz-min-content;min-width:min-content;z-index:1900;border:1px solid #d4d4d5;line-height:1.4285em;max-width:250px;background:#fff;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.popup>.header{padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.14285714em;line-height:1.2;font-weight:700}.ui.popup>.header+.content{padding-top:.5em}.ui.popup:before{position:absolute;content:"";width:.71428571em;height:.71428571em;background:#fff;transform:rotate(45deg);z-index:1901;box-shadow:1px 1px 0 0 #bababc}[data-tooltip]{position:relative}[data-tooltip]:before{content:"";width:.71428571em;height:.71428571em;transform:rotate(45deg);z-index:1901;box-shadow:1px 1px 0 0 #bababc}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;position:absolute;font-size:1rem;background:#fff}[data-tooltip]:after{content:attr(data-tooltip);text-transform:none;text-align:left;text-shadow:none;white-space:nowrap;border:1px solid #d4d4d5;line-height:1.4285em;max-width:none;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.28571429rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);z-index:1900}[data-tooltip]:not([data-position]):before{top:auto;right:auto;bottom:100%;left:50%;background:#fff;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-tooltip]:not([data-position]):after{left:50%;transform:translateX(-50%);bottom:100%;margin-bottom:.5em}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden;opacity:0;transition:transform .1s ease,opacity .1s ease}[data-tooltip]:before{transform:rotate(45deg) scale(0)!important;transform-origin:center top}[data-tooltip]:after{transform-origin:center bottom}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto;opacity:1}[data-tooltip]:hover:before{transform:rotate(45deg) scale(1)!important}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translateX(-50%) scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translateX(-50%) scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%) scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%) scale(1)!important;-moz-transform:translateY(-50%) scale(1.0001)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-variation~=fixed]:after{white-space:normal;width:250px}[data-tooltip][data-variation*="wide fixed"]:after{width:350px}[data-tooltip][data-variation*="very wide fixed"]:after{width:550px}@media only screen and (max-width:767.98px){[data-tooltip][data-variation~=fixed]:after{width:250px}}[data-tooltip][data-inverted]:before{box-shadow:none!important;background:#1b1c1d}[data-tooltip][data-inverted]:after{background:#1b1c1d;color:#fff;border:none;box-shadow:none}[data-tooltip][data-inverted]:after .header{background:0 0;color:#fff}[data-position~=top][data-tooltip]:before{background:#fff}[data-position="top center"][data-tooltip]:after{top:auto;right:auto;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:.5em}[data-position="top center"][data-tooltip]:before{top:auto;right:auto;bottom:100%;left:50%;background:#fff;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="top left"][data-tooltip]:after{top:auto;right:auto;left:0;bottom:100%;margin-bottom:.5em}[data-position="top left"][data-tooltip]:before{top:auto;right:auto;bottom:100%;left:1em;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="top right"][data-tooltip]:after{top:auto;left:auto;right:0;bottom:100%;margin-bottom:.5em}[data-position="top right"][data-tooltip]:before{top:auto;left:auto;bottom:100%;right:1em;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px 0 0 #bababc}[data-position="bottom center"][data-tooltip]:after{bottom:auto;right:auto;left:50%;top:100%;transform:translateX(-50%);margin-top:.5em}[data-position="bottom center"][data-tooltip]:before{bottom:auto;right:auto;top:100%;left:50%;margin-left:-.07142857rem;margin-top:.14285714rem}[data-position="bottom left"][data-tooltip]:after{left:0;top:100%;margin-top:.5em}[data-position="bottom left"][data-tooltip]:before{bottom:auto;right:auto;top:100%;left:1em;margin-left:-.07142857rem;margin-top:.14285714rem}[data-position="bottom right"][data-tooltip]:after{right:0;top:100%;margin-top:.5em}[data-position="bottom right"][data-tooltip]:before{bottom:auto;left:auto;top:100%;right:1em;margin-left:-.14285714rem;margin-top:.07142857rem}[data-position="left center"][data-tooltip]:after{right:100%;top:50%;margin-right:.5em;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{right:100%;top:50%;margin-top:-.14285714rem;margin-right:-.07142857rem;background:#fff;box-shadow:1px -1px 0 0 #bababc}[data-position="right center"][data-tooltip]:after{left:100%;top:50%;margin-left:.5em;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{left:100%;top:50%;margin-top:-.07142857rem;margin-left:.14285714rem;background:#fff;box-shadow:-1px 1px 0 0 #bababc}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px 0 0 #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px 0 0 #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px 0 0 #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:center bottom}[data-position~=bottom][data-tooltip]:after{transform-origin:center top}[data-position="left center"][data-tooltip]:before{transform-origin:top center}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:right center}[data-position="right center"][data-tooltip]:after{transform-origin:left center}[data-tooltip][data-variation~=basic]:before{display:none}.ui.popup{margin:0}.ui.top.popup{margin:0 0 .71428571em}.ui.top.left.popup{transform-origin:left bottom}.ui.top.center.popup{transform-origin:center bottom}.ui.top.right.popup{transform-origin:right bottom}.ui.left.center.popup{margin:0 .71428571em 0 0;transform-origin:right 50%}.ui.right.center.popup{margin:0 0 0 .71428571em;transform-origin:left 50%}.ui.bottom.popup{margin:.71428571em 0 0}.ui.bottom.left.popup{transform-origin:left top}.ui.bottom.center.popup{transform-origin:center top}.ui.bottom.right.popup{transform-origin:right top}.ui.bottom.center.popup:before{margin-left:-.30714286em;top:-.30714286em;left:50%;right:auto;bottom:auto;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.left.popup{margin-left:0}.ui.bottom.left.popup:before{top:-.30714286em;left:1em;right:auto;bottom:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.right.popup{margin-right:0}.ui.bottom.right.popup:before{top:-.30714286em;right:1em;bottom:auto;left:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.30714286em;left:50%;margin-left:-.30714286em}.ui.top.left.popup{margin-left:0}.ui.top.left.popup:before{bottom:-.30714286em;left:1em;top:auto;right:auto;margin-left:0}.ui.top.right.popup{margin-right:0}.ui.top.right.popup:before{bottom:-.30714286em;right:1em;top:auto;left:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.30714286em;bottom:auto;left:auto;margin-top:-.30714286em;box-shadow:1px -1px 0 0 #bababc}.ui.right.center.popup:before{top:50%;left:-.30714286em;bottom:auto;right:auto;margin-top:-.30714286em;box-shadow:-1px 1px 0 0 #bababc}.ui.bottom.popup:before,.ui.left.center.popup:before,.ui.right.center.popup:before,.ui.top.popup:before{background:#fff}.ui.inverted.bottom.popup:before,.ui.inverted.left.center.popup:before,.ui.inverted.right.center.popup:before,.ui.inverted.top.popup:before{background:#1b1c1d}.ui.popup>.ui.grid:not(.padded){width:calc(100% + 1.75rem);margin:-.7rem -.875rem}.ui.loading.popup{display:block;visibility:hidden;z-index:-1}.ui.animating.popup,.ui.visible.popup{display:block}.ui.visible.popup{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.basic.popup:before{display:none}.ui.fixed.popup{width:250px}.ui.wide.popup{max-width:350px}.ui.wide.popup.fixed{width:350px}.ui[class*="very wide"].popup{max-width:550px}.ui[class*="very wide"].popup.fixed{width:550px}@media only screen and (max-width:767.98px){.ui.wide.popup,.ui[class*="very wide"].popup{max-width:250px}.ui.wide.popup.fixed,.ui[class*="very wide"].popup.fixed{width:250px}}.ui.fluid.popup{width:100%;max-width:none}.ui.inverted.popup{background:#1b1c1d;color:#fff;border:none;box-shadow:none}.ui.inverted.popup .header{background-color:none;color:#fff}.ui.inverted.popup:before{background-color:#1b1c1d;box-shadow:none!important}.ui.flowing.popup{max-width:none}.ui.popup{font-size:1rem}.ui.mini.popup,[data-tooltip][data-variation~=mini]:after,[data-tooltip][data-variation~=mini]:before{font-size:.78571429rem}.ui.tiny.popup,[data-tooltip][data-variation~=tiny]:after,[data-tooltip][data-variation~=tiny]:before{font-size:.85714286rem}.ui.small.popup,[data-tooltip][data-variation~=small]:after,[data-tooltip][data-variation~=small]:before{font-size:.92857143rem}.ui.large.popup,[data-tooltip][data-variation~=large]:after,[data-tooltip][data-variation~=large]:before{font-size:1.14285714rem}.ui.big.popup,[data-tooltip][data-variation~=big]:after,[data-tooltip][data-variation~=big]:before{font-size:1.28571429rem}.ui.huge.popup,[data-tooltip][data-variation~=huge]:after,[data-tooltip][data-variation~=huge]:before{font-size:1.42857143rem}.ui.massive.popup,[data-tooltip][data-variation~=massive]:after,[data-tooltip][data-variation~=massive]:before{font-size:1.71428571rem}/*!
+ * # Fomantic-UI - Progress Bar
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.progress{position:relative;display:block;max-width:100%;border:none;margin:1em 0 2.5em;box-shadow:none;background:rgba(0,0,0,.1);padding:0;border-radius:.28571429rem}.ui.progress:first-child{margin:0 0 2.5em}.ui.progress:last-child{margin:0 0 1.5em}.ui.progress .bar{display:block;line-height:1;position:relative;width:0;min-width:2em;background:#888;border-radius:.28571429rem;transition:width .1s ease,background-color .1s ease;overflow:hidden}.ui.ui.ui.progress:not([data-percent]):not(.indeterminate) .bar,.ui.ui.ui.progress[data-percent="0"]:not(.indeterminate) .bar{background:0 0}.ui.progress[data-percent="0"] .bar .progress{color:rgba(0,0,0,.87)}.ui.inverted.progress[data-percent="0"] .bar .progress{color:hsla(0,0%,100%,.9)}.ui.progress .bar>.progress{white-space:nowrap;width:auto;font-size:.92857143em;top:50%;right:.5em;left:auto;color:hsla(0,0%,100%,.7);margin-top:-.5em;text-align:left}.ui.progress .bar>.progress,.ui.progress>.label{position:absolute;bottom:auto;text-shadow:none;font-weight:700}.ui.progress>.label{width:100%;font-size:1em;top:100%;right:auto;left:0;color:rgba(0,0,0,.87);margin-top:.2em;text-align:center;transition:color .4s ease}.ui.indicating.progress[data-percent^="1"] .bar,.ui.indicating.progress[data-percent^="2"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent^="3"] .bar{background-color:#efbc72}.ui.indicating.progress[data-percent^="4"] .bar,.ui.indicating.progress[data-percent^="5"] .bar{background-color:#e6bb48}.ui.indicating.progress[data-percent^="6"] .bar{background-color:#ddc928}.ui.indicating.progress[data-percent^="7"] .bar,.ui.indicating.progress[data-percent^="8"] .bar{background-color:#b4d95c}.ui.indicating.progress[data-percent^="9"] .bar,.ui.indicating.progress[data-percent^="100"] .bar{background-color:#66da81}.ui.indicating.progress[data-percent^="1"] .label,.ui.indicating.progress[data-percent^="2"] .label,.ui.indicating.progress[data-percent^="3"] .label,.ui.indicating.progress[data-percent^="4"] .label,.ui.indicating.progress[data-percent^="5"] .label,.ui.indicating.progress[data-percent^="6"] .label,.ui.indicating.progress[data-percent^="7"] .label,.ui.indicating.progress[data-percent^="8"] .label,.ui.indicating.progress[data-percent^="9"] .label,.ui.indicating.progress[data-percent^="100"] .label{color:rgba(0,0,0,.87)}.ui.inverted.indicating.progress[data-percent^="1"] .label,.ui.inverted.indicating.progress[data-percent^="2"] .label,.ui.inverted.indicating.progress[data-percent^="3"] .label,.ui.inverted.indicating.progress[data-percent^="4"] .label,.ui.inverted.indicating.progress[data-percent^="5"] .label,.ui.inverted.indicating.progress[data-percent^="6"] .label,.ui.inverted.indicating.progress[data-percent^="7"] .label,.ui.inverted.indicating.progress[data-percent^="8"] .label,.ui.inverted.indicating.progress[data-percent^="9"] .label,.ui.inverted.indicating.progress[data-percent^="100"] .label{color:hsla(0,0%,100%,.9)}.ui.indicating.progress[data-percent="1"] .bar,.ui.indicating.progress[data-percent="2"] .bar,.ui.indicating.progress[data-percent="3"] .bar,.ui.indicating.progress[data-percent="4"] .bar,.ui.indicating.progress[data-percent="5"] .bar,.ui.indicating.progress[data-percent="6"] .bar,.ui.indicating.progress[data-percent="7"] .bar,.ui.indicating.progress[data-percent="8"] .bar,.ui.indicating.progress[data-percent="9"] .bar,.ui.indicating.progress[data-percent^="1."] .bar,.ui.indicating.progress[data-percent^="2."] .bar,.ui.indicating.progress[data-percent^="3."] .bar,.ui.indicating.progress[data-percent^="4."] .bar,.ui.indicating.progress[data-percent^="5."] .bar,.ui.indicating.progress[data-percent^="6."] .bar,.ui.indicating.progress[data-percent^="7."] .bar,.ui.indicating.progress[data-percent^="8."] .bar,.ui.indicating.progress[data-percent^="9."] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent="0"] .label,.ui.indicating.progress[data-percent="1"] .label,.ui.indicating.progress[data-percent="2"] .label,.ui.indicating.progress[data-percent="3"] .label,.ui.indicating.progress[data-percent="4"] .label,.ui.indicating.progress[data-percent="5"] .label,.ui.indicating.progress[data-percent="6"] .label,.ui.indicating.progress[data-percent="7"] .label,.ui.indicating.progress[data-percent="8"] .label,.ui.indicating.progress[data-percent="9"] .label,.ui.indicating.progress[data-percent^="0."] .label,.ui.indicating.progress[data-percent^="1."] .label,.ui.indicating.progress[data-percent^="2."] .label,.ui.indicating.progress[data-percent^="3."] .label,.ui.indicating.progress[data-percent^="4."] .label,.ui.indicating.progress[data-percent^="5."] .label,.ui.indicating.progress[data-percent^="6."] .label,.ui.indicating.progress[data-percent^="7."] .label,.ui.indicating.progress[data-percent^="8."] .label,.ui.indicating.progress[data-percent^="9."] .label{color:rgba(0,0,0,.87)}.ui.inverted.indicating.progress[data-percent="0"] .label,.ui.inverted.indicating.progress[data-percent="1"] .label,.ui.inverted.indicating.progress[data-percent="2"] .label,.ui.inverted.indicating.progress[data-percent="3"] .label,.ui.inverted.indicating.progress[data-percent="4"] .label,.ui.inverted.indicating.progress[data-percent="5"] .label,.ui.inverted.indicating.progress[data-percent="6"] .label,.ui.inverted.indicating.progress[data-percent="7"] .label,.ui.inverted.indicating.progress[data-percent="8"] .label,.ui.inverted.indicating.progress[data-percent="9"] .label,.ui.inverted.indicating.progress[data-percent^="0."] .label,.ui.inverted.indicating.progress[data-percent^="1."] .label,.ui.inverted.indicating.progress[data-percent^="2."] .label,.ui.inverted.indicating.progress[data-percent^="3."] .label,.ui.inverted.indicating.progress[data-percent^="4."] .label,.ui.inverted.indicating.progress[data-percent^="5."] .label,.ui.inverted.indicating.progress[data-percent^="6."] .label,.ui.inverted.indicating.progress[data-percent^="7."] .label,.ui.inverted.indicating.progress[data-percent^="8."] .label,.ui.inverted.indicating.progress[data-percent^="9."] .label{color:hsla(0,0%,100%,.9)}.ui.ui.indicating.progress.success .label{color:#1a531b}.ui.multiple.progress{display:flex}.ui.ui.progress.success .bar{background-color:#21ba45}.ui.ui.progress.success .bar,.ui.ui.progress.success .bar:after{-webkit-animation:none;animation:none}.ui.progress.success>.label{color:#1a531b}.ui.ui.progress.warning .bar{background-color:#f2c037}.ui.ui.progress.warning .bar,.ui.ui.progress.warning .bar:after{-webkit-animation:none;animation:none}.ui.progress.warning>.label{color:#794b02}.ui.ui.progress.error .bar{background-color:#db2828}.ui.ui.progress.error .bar,.ui.ui.progress.error .bar:after{-webkit-animation:none;animation:none}.ui.progress.error>.label{color:#912d2b}.ui.active.progress .bar{position:relative;min-width:2em}.ui.active.progress .bar:after{content:"";opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;border-radius:.28571429rem;-webkit-animation:progress-active 2s ease infinite;animation:progress-active 2s ease infinite;transform-origin:left}@-webkit-keyframes progress-active{0%{opacity:.3;transform:scaleX(0)}to{opacity:0;transform:scale(1)}}@keyframes progress-active{0%{opacity:.3;transform:scaleX(0)}to{opacity:0;transform:scale(1)}}.ui.disabled.progress{opacity:.35}.ui.ui.disabled.progress .bar,.ui.ui.disabled.progress .bar:after{-webkit-animation:none;animation:none}.ui.inverted.progress{background:hsla(0,0%,100%,.08);border:none}.ui.inverted.progress .bar{background:#888}.ui.inverted.progress .bar>.progress{color:#1b1c1d}.ui.inverted.progress>.label{color:#fff}.ui.inverted.progress.success>.label{color:#21ba45}.ui.inverted.progress.warning>.label{color:#f2c037}.ui.inverted.progress.error>.label{color:#db2828}.ui.progress.attached{background:0 0;position:relative;border:none;margin:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:.2rem;padding:0;overflow:hidden;border-radius:0 0 .28571429rem .28571429rem}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:0;border-radius:.28571429rem .28571429rem 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.card>.ui.attached.progress,.ui.segment>.ui.attached.progress{position:absolute;top:auto;left:0;bottom:100%;width:100%}.ui.card>.ui.bottom.attached.progress,.ui.segment>.ui.bottom.attached.progress{top:100%;bottom:auto}.ui.indeterminate.primary.progress .bar:before,.ui.primary.progress .bar,.ui.progress .primary.bar{background-color:#2185d0}.ui.inverted.indeterminate.primary.progress .bar:before,.ui.inverted.progress .primary.bar,.ui.primary.inverted.progress .bar{background-color:#54c8ff}.ui.indeterminate.secondary.progress .bar:before,.ui.progress .secondary.bar,.ui.secondary.progress .bar{background-color:#1b1c1d}.ui.inverted.indeterminate.secondary.progress .bar:before,.ui.inverted.progress .secondary.bar,.ui.secondary.inverted.progress .bar{background-color:#545454}.ui.indeterminate.red.progress .bar:before,.ui.progress .red.bar,.ui.red.progress .bar{background-color:#db2828}.ui.inverted.indeterminate.red.progress .bar:before,.ui.inverted.progress .red.bar,.ui.red.inverted.progress .bar{background-color:#ff695e}.ui.indeterminate.orange.progress .bar:before,.ui.orange.progress .bar,.ui.progress .orange.bar{background-color:#f2711c}.ui.inverted.indeterminate.orange.progress .bar:before,.ui.inverted.progress .orange.bar,.ui.orange.inverted.progress .bar{background-color:#ff851b}.ui.indeterminate.yellow.progress .bar:before,.ui.progress .yellow.bar,.ui.yellow.progress .bar{background-color:#fbbd08}.ui.inverted.indeterminate.yellow.progress .bar:before,.ui.inverted.progress .yellow.bar,.ui.yellow.inverted.progress .bar{background-color:#ffe21f}.ui.indeterminate.olive.progress .bar:before,.ui.olive.progress .bar,.ui.progress .olive.bar{background-color:#b5cc18}.ui.inverted.indeterminate.olive.progress .bar:before,.ui.inverted.progress .olive.bar,.ui.olive.inverted.progress .bar{background-color:#d9e778}.ui.green.progress .bar,.ui.indeterminate.green.progress .bar:before,.ui.progress .green.bar{background-color:#21ba45}.ui.green.inverted.progress .bar,.ui.inverted.indeterminate.green.progress .bar:before,.ui.inverted.progress .green.bar{background-color:#2ecc40}.ui.indeterminate.teal.progress .bar:before,.ui.progress .teal.bar,.ui.teal.progress .bar{background-color:#00b5ad}.ui.inverted.indeterminate.teal.progress .bar:before,.ui.inverted.progress .teal.bar,.ui.teal.inverted.progress .bar{background-color:#6dffff}.ui.blue.progress .bar,.ui.indeterminate.blue.progress .bar:before,.ui.progress .blue.bar{background-color:#2185d0}.ui.blue.inverted.progress .bar,.ui.inverted.indeterminate.blue.progress .bar:before,.ui.inverted.progress .blue.bar{background-color:#54c8ff}.ui.indeterminate.violet.progress .bar:before,.ui.progress .violet.bar,.ui.violet.progress .bar{background-color:#6435c9}.ui.inverted.indeterminate.violet.progress .bar:before,.ui.inverted.progress .violet.bar,.ui.violet.inverted.progress .bar{background-color:#a291fb}.ui.indeterminate.purple.progress .bar:before,.ui.progress .purple.bar,.ui.purple.progress .bar{background-color:#a333c8}.ui.inverted.indeterminate.purple.progress .bar:before,.ui.inverted.progress .purple.bar,.ui.purple.inverted.progress .bar{background-color:#dc73ff}.ui.indeterminate.pink.progress .bar:before,.ui.pink.progress .bar,.ui.progress .pink.bar{background-color:#e03997}.ui.inverted.indeterminate.pink.progress .bar:before,.ui.inverted.progress .pink.bar,.ui.pink.inverted.progress .bar{background-color:#ff8edf}.ui.brown.progress .bar,.ui.indeterminate.brown.progress .bar:before,.ui.progress .brown.bar{background-color:#a5673f}.ui.brown.inverted.progress .bar,.ui.inverted.indeterminate.brown.progress .bar:before,.ui.inverted.progress .brown.bar{background-color:#d67c1c}.ui.grey.progress .bar,.ui.indeterminate.grey.progress .bar:before,.ui.progress .grey.bar{background-color:#767676}.ui.grey.inverted.progress .bar,.ui.inverted.indeterminate.grey.progress .bar:before,.ui.inverted.progress .grey.bar{background-color:#dcddde}.ui.black.progress .bar,.ui.indeterminate.black.progress .bar:before,.ui.progress .black.bar{background-color:#1b1c1d}.ui.black.inverted.progress .bar,.ui.inverted.indeterminate.black.progress .bar:before,.ui.inverted.progress .black.bar{background-color:#545454}.ui.progress{font-size:1rem}.ui.progress .bar{height:1.75em}.ui.mini.progress{font-size:.78571429rem}.ui.mini.progress .bar{height:.3em}.ui.tiny.progress{font-size:.85714286rem}.ui.tiny.progress .bar{height:.5em}.ui.small.progress{font-size:.92857143rem}.ui.small.progress .bar{height:1em}.ui.large.progress{font-size:1.14285714rem}.ui.large.progress .bar{height:2.5em}.ui.big.progress{font-size:1.28571429rem}.ui.big.progress .bar{height:3.5em}.ui.huge.progress{font-size:1.42857143rem}.ui.huge.progress .bar{height:4em}.ui.massive.progress{font-size:1.71428571rem}.ui.massive.progress .bar{height:5em}.ui.indeterminate.progress .bar{width:100%}.ui.indeterminate.progress .bar .progress,.ui.progress .bar .centered.progress{text-align:center;position:relative}.ui.indeterminate.progress .bar:before{content:"";position:absolute;top:0;bottom:0;border-radius:.28571429rem;-webkit-animation:progress-pulsating 2s ease infinite;animation:progress-pulsating 2s ease infinite;transform-origin:center;width:100%}.ui.slow.indeterminate.progress .bar:before{-webkit-animation-duration:4s;animation-duration:4s}.ui.fast.indeterminate.progress .bar:before{-webkit-animation-duration:1s;animation-duration:1s}.ui.swinging.indeterminate.progress .bar:before{transform-origin:left;-webkit-animation-name:progress-swinging;animation-name:progress-swinging}.ui.sliding.indeterminate.progress .bar:before{transform-origin:left;-webkit-animation-name:progress-sliding;animation-name:progress-sliding}.ui.filling.indeterminate.progress .bar:before{-webkit-animation-name:progress-filling;animation-name:progress-filling}.ui.indeterminate.progress:not(.sliding):not(.filling):not(.swinging) .bar:before{background:#fff}.ui.filling.indeterminate.progress .bar,.ui.sliding.indeterminate.progress .bar,.ui.swinging.indeterminate.progress .bar{background:rgba(0,0,0,.1)}.ui.sliding.indeterminate.progress .bar .progress,.ui.swinging.indeterminate.progress .bar .progress{color:#1b1c1d}.ui.inverted.filling.indeterminate.progress .bar,.ui.inverted.sliding.indeterminate.progress .bar,.ui.inverted.swinging.indeterminate.progress .bar{background:hsla(0,0%,100%,.08)}.ui.inverted.sliding.indeterminate.progress .bar .progress,.ui.inverted.swinging.indeterminate.progress .bar .progress{color:hsla(0,0%,100%,.7)}@-webkit-keyframes progress-swinging{0%,to{width:10%;left:-25%}25%,65%{width:70%}50%{width:10%;left:100%}}@keyframes progress-swinging{0%,to{width:10%;left:-25%}25%,65%{width:70%}50%{width:10%;left:100%}}@-webkit-keyframes progress-sliding{0%{width:10%;left:-25%}50%{width:70%}to{width:10%;left:100%}}@keyframes progress-sliding{0%{width:10%;left:-25%}50%{width:70%}to{width:10%;left:100%}}@-webkit-keyframes progress-filling{0%{transform:scaleX(0)}80%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes progress-filling{0%{transform:scaleX(0)}80%{transform:scale(1);opacity:1}to{opacity:0}}@-webkit-keyframes progress-pulsating{0%{transform:scaleX(0);opacity:.7}to{transform:scale(1);opacity:0}}@keyframes progress-pulsating{0%{transform:scaleX(0);opacity:.7}to{transform:scale(1);opacity:0}}.ui.slider:not(.vertical):not(.checkbox){width:100%;padding:1em .5em}.ui.slider:not(.checkbox){position:relative}.ui.slider:not(.checkbox):focus{outline:0}.ui.slider .inner{position:relative;z-index:2}.ui.slider:not(.vertical) .inner{height:1.5em}.ui.slider .inner:hover{cursor:auto}.ui.slider .inner .track{position:absolute;border-radius:4px;background-color:rgba(0,0,0,.05)}.ui.slider:not(.vertical) .inner .track{width:100%;height:.4em;top:.55em;left:0}.ui.slider .inner .track-fill{position:absolute;border-radius:4px;background-color:#1b1c1d}.ui.slider:not(.vertical) .inner .track-fill{height:.4em;top:.55em;left:0}.ui.slider .inner .thumb{position:absolute;left:0;top:0;height:1.5em;width:1.5em;background:#fff linear-gradient(transparent,rgba(0,0,0,.05));border-radius:100%;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);transition:background .3s ease}.ui.slider:not(.disabled) .inner .thumb:hover{cursor:pointer}.ui.slider:not(.disabled) .inner .thumb:hover,.ui.slider:not(.disabled):focus .inner .thumb{background:#f2f2f2 linear-gradient(transparent,rgba(0,0,0,.05))}.ui.disabled.slider:not(.checkbox){opacity:.5}.ui.disabled.slider .inner:hover{cursor:auto}.ui.disabled.slider .inner .track-fill{background:#ccc}.ui.reversed.slider .inner .track-fill,.ui.reversed.slider:not(.vertical) .inner .thumb{left:auto;right:0}.ui.reversed.vertical.slider .inner .thumb{left:.03em}.ui.labeled.reversed.slider>.labels .label{transform:translate(-100%,-100%)}.ui.vertical.slider{height:100%;width:1.5em;padding:.5em 1em}.ui.vertical.slider .inner{height:100%}.ui.vertical.slider .inner .track{height:100%;width:.4em;left:.55em;top:0}.ui.vertical.slider .inner .track-fill{width:.4em;left:.55em;top:0}.ui.vertical.reversed.slider .inner .thumb,.ui.vertical.reversed.slider .inner .track-fill{top:auto;bottom:0}.ui.labeled.slider>.labels{height:1.5em;width:auto;margin:0;padding:0;position:absolute;top:50%;left:0;right:0}.ui.labeled.slider:not(.vertical)>.labels{transform:translateY(-50%)}.ui.labeled.slider>.labels .label{display:inline-flex;padding:.2em 0;position:absolute;transform:translate(-50%,-100%);white-space:nowrap}.ui.bottom.aligned.labeled.slider>.labels .label{transform:translate(-50%,100%)}.ui.labeled.ticked.slider>.labels .label:after{content:" ";height:1.5em;width:1px;background:#ccc;position:absolute;top:100%;left:50%}.ui.bottom.aligned.labeled.ticked.slider>.labels .label:after{top:-100%}.ui.labeled.ticked.slider>.labels .halftick.label:after{height:.75em}.ui.labeled.vertical.slider>.labels{width:1.5em;height:auto;left:50%;top:0;bottom:0;transform:translateX(-50%)}.ui.labeled.vertical.slider>.labels .label{transform:translate(-100%,-50%)}.ui.labeled.vertical.slider>.labels .label:after{width:1.5em;height:1px;left:100%;top:50%}.ui.labeled.vertical.slider>.labels .halftick.label:after{width:.75em;height:1px}.ui.labeled.vertical.reversed.slider>.labels .label{transform:translate(-100%,50%)}.ui.hover.slider .inner .thumb{opacity:0;transition:opacity .2s linear}.ui.hover.slider:not(.disabled):focus .inner .thumb,.ui.hover.slider:not(.disabled):hover .inner .thumb{opacity:1}.ui.inverted.slider .inner .track-fill{background-color:#545454}.ui.inverted.slider .inner .track{background-color:hsla(0,0%,100%,.08)}.ui.primary.slider .inner .track-fill{background-color:#2185d0}.ui.primary.inverted.slider .inner .track-fill{background-color:#54c8ff}.ui.primary.slider.basic .inner .thumb{background-color:#2185d0}.ui.primary.slider.basic .inner .thumb:hover,.ui.primary.slider.basic:focus .inner .thumb{background-color:#1678c2}.ui.primary.inverted.slider.basic .inner .thumb{background-color:#54c8ff}.ui.primary.inverted.slider.basic .inner .thumb:hover,.ui.primary.inverted.slider.basic:focus .inner .thumb{background-color:#21b8ff}.ui.secondary.slider .inner .track-fill{background-color:#1b1c1d}.ui.secondary.inverted.slider .inner .track-fill{background-color:#545454}.ui.secondary.slider.basic .inner .thumb{background-color:#1b1c1d}.ui.secondary.slider.basic .inner .thumb:hover,.ui.secondary.slider.basic:focus .inner .thumb{background-color:#27292a}.ui.secondary.inverted.slider.basic .inner .thumb{background-color:#545454}.ui.secondary.inverted.slider.basic .inner .thumb:hover,.ui.secondary.inverted.slider.basic:focus .inner .thumb{background-color:#6e6e6e}.ui.red.slider .inner .track-fill{background-color:#db2828}.ui.red.inverted.slider .inner .track-fill{background-color:#ff695e}.ui.red.slider.basic .inner .thumb{background-color:#db2828}.ui.red.slider.basic .inner .thumb:hover,.ui.red.slider.basic:focus .inner .thumb{background-color:#d01919}.ui.red.inverted.slider.basic .inner .thumb{background-color:#ff695e}.ui.red.inverted.slider.basic .inner .thumb:hover,.ui.red.inverted.slider.basic:focus .inner .thumb{background-color:#ff392b}.ui.orange.slider .inner .track-fill{background-color:#f2711c}.ui.orange.inverted.slider .inner .track-fill{background-color:#ff851b}.ui.orange.slider.basic .inner .thumb{background-color:#f2711c}.ui.orange.slider.basic .inner .thumb:hover,.ui.orange.slider.basic:focus .inner .thumb{background-color:#f26202}.ui.orange.inverted.slider.basic .inner .thumb{background-color:#ff851b}.ui.orange.inverted.slider.basic .inner .thumb:hover,.ui.orange.inverted.slider.basic:focus .inner .thumb{background-color:#e76b00}.ui.yellow.slider .inner .track-fill{background-color:#fbbd08}.ui.yellow.inverted.slider .inner .track-fill{background-color:#ffe21f}.ui.yellow.slider.basic .inner .thumb{background-color:#fbbd08}.ui.yellow.slider.basic .inner .thumb:hover,.ui.yellow.slider.basic:focus .inner .thumb{background-color:#eaae00}.ui.yellow.inverted.slider.basic .inner .thumb{background-color:#ffe21f}.ui.yellow.inverted.slider.basic .inner .thumb:hover,.ui.yellow.inverted.slider.basic:focus .inner .thumb{background-color:#ebcd00}.ui.olive.slider .inner .track-fill{background-color:#b5cc18}.ui.olive.inverted.slider .inner .track-fill{background-color:#d9e778}.ui.olive.slider.basic .inner .thumb{background-color:#b5cc18}.ui.olive.slider.basic .inner .thumb:hover,.ui.olive.slider.basic:focus .inner .thumb{background-color:#a7bd0d}.ui.olive.inverted.slider.basic .inner .thumb{background-color:#d9e778}.ui.olive.inverted.slider.basic .inner .thumb:hover,.ui.olive.inverted.slider.basic:focus .inner .thumb{background-color:#d2e745}.ui.green.slider .inner .track-fill{background-color:#21ba45}.ui.green.inverted.slider .inner .track-fill{background-color:#2ecc40}.ui.green.slider.basic .inner .thumb{background-color:#21ba45}.ui.green.slider.basic .inner .thumb:hover,.ui.green.slider.basic:focus .inner .thumb{background-color:#16ab39}.ui.green.inverted.slider.basic .inner .thumb{background-color:#2ecc40}.ui.green.inverted.slider.basic .inner .thumb:hover,.ui.green.inverted.slider.basic:focus .inner .thumb{background-color:#1ea92e}.ui.teal.slider .inner .track-fill{background-color:#00b5ad}.ui.teal.inverted.slider .inner .track-fill{background-color:#6dffff}.ui.teal.slider.basic .inner .thumb{background-color:#00b5ad}.ui.teal.slider.basic .inner .thumb:hover,.ui.teal.slider.basic:focus .inner .thumb{background-color:#009c95}.ui.teal.inverted.slider.basic .inner .thumb{background-color:#6dffff}.ui.teal.inverted.slider.basic .inner .thumb:hover,.ui.teal.inverted.slider.basic:focus .inner .thumb{background-color:#3affff}.ui.blue.slider .inner .track-fill{background-color:#2185d0}.ui.blue.inverted.slider .inner .track-fill{background-color:#54c8ff}.ui.blue.slider.basic .inner .thumb{background-color:#2185d0}.ui.blue.slider.basic .inner .thumb:hover,.ui.blue.slider.basic:focus .inner .thumb{background-color:#1678c2}.ui.blue.inverted.slider.basic .inner .thumb{background-color:#54c8ff}.ui.blue.inverted.slider.basic .inner .thumb:hover,.ui.blue.inverted.slider.basic:focus .inner .thumb{background-color:#21b8ff}.ui.violet.slider .inner .track-fill{background-color:#6435c9}.ui.violet.inverted.slider .inner .track-fill{background-color:#a291fb}.ui.violet.slider.basic .inner .thumb{background-color:#6435c9}.ui.violet.slider.basic .inner .thumb:hover,.ui.violet.slider.basic:focus .inner .thumb{background-color:#5829bb}.ui.violet.inverted.slider.basic .inner .thumb{background-color:#a291fb}.ui.violet.inverted.slider.basic .inner .thumb:hover,.ui.violet.inverted.slider.basic:focus .inner .thumb{background-color:#745aff}.ui.purple.slider .inner .track-fill{background-color:#a333c8}.ui.purple.inverted.slider .inner .track-fill{background-color:#dc73ff}.ui.purple.slider.basic .inner .thumb{background-color:#a333c8}.ui.purple.slider.basic .inner .thumb:hover,.ui.purple.slider.basic:focus .inner .thumb{background-color:#9627ba}.ui.purple.inverted.slider.basic .inner .thumb{background-color:#dc73ff}.ui.purple.inverted.slider.basic .inner .thumb:hover,.ui.purple.inverted.slider.basic:focus .inner .thumb{background-color:#cf40ff}.ui.pink.slider .inner .track-fill{background-color:#e03997}.ui.pink.inverted.slider .inner .track-fill{background-color:#ff8edf}.ui.pink.slider.basic .inner .thumb{background-color:#e03997}.ui.pink.slider.basic .inner .thumb:hover,.ui.pink.slider.basic:focus .inner .thumb{background-color:#e61a8d}.ui.pink.inverted.slider.basic .inner .thumb{background-color:#ff8edf}.ui.pink.inverted.slider.basic .inner .thumb:hover,.ui.pink.inverted.slider.basic:focus .inner .thumb{background-color:#ff5bd1}.ui.brown.slider .inner .track-fill{background-color:#a5673f}.ui.brown.inverted.slider .inner .track-fill{background-color:#d67c1c}.ui.brown.slider.basic .inner .thumb{background-color:#a5673f}.ui.brown.slider.basic .inner .thumb:hover,.ui.brown.slider.basic:focus .inner .thumb{background-color:#975b33}.ui.brown.inverted.slider.basic .inner .thumb{background-color:#d67c1c}.ui.brown.inverted.slider.basic .inner .thumb:hover,.ui.brown.inverted.slider.basic:focus .inner .thumb{background-color:#b0620f}.ui.grey.slider .inner .track-fill{background-color:#767676}.ui.grey.inverted.slider .inner .track-fill{background-color:#dcddde}.ui.grey.slider.basic .inner .thumb{background-color:#767676}.ui.grey.slider.basic .inner .thumb:hover,.ui.grey.slider.basic:focus .inner .thumb{background-color:#838383}.ui.grey.inverted.slider.basic .inner .thumb{background-color:#dcddde}.ui.grey.inverted.slider.basic .inner .thumb:hover,.ui.grey.inverted.slider.basic:focus .inner .thumb{background-color:#c2c4c5}.ui.black.slider .inner .track-fill{background-color:#1b1c1d}.ui.black.inverted.slider .inner .track-fill{background-color:#545454}.ui.black.slider.basic .inner .thumb{background-color:#1b1c1d}.ui.black.slider.basic .inner .thumb:hover,.ui.black.slider.basic:focus .inner .thumb{background-color:#27292a}.ui.black.inverted.slider.basic .inner .thumb{background-color:#545454}.ui.black.inverted.slider.basic .inner .thumb:hover,.ui.black.inverted.slider.basic:focus .inner .thumb{background-color:#000}.ui.slider.basic .inner .thumb{background-color:#1b1c1d}.ui.slider.basic .inner .thumb:hover,.ui.slider.basic:focus .inner .thumb{background-color:#27292a}.ui.inverted.slider.basic .inner .thumb{background-color:#545454}.ui.inverted.slider.basic .inner .thumb:hover,.ui.inverted.slider.basic:focus .inner .thumb{background-color:#000}.ui.slider.small .inner .thumb{height:1em;width:1em}.ui.slider.small:not(.vertical) .inner{height:1em}.ui.slider.small:not(.vertical) .inner .track,.ui.slider.small:not(.vertical) .inner .track-fill{height:.3em;top:.35em}.ui.small.labeled.slider:not(.vertical)>.labels,.ui.small.labeled.slider:not(.vertical)>.labels .label:after{height:1em}.ui.small.labeled.slider:not(.vertical)>.labels .halftick.label:after{height:.5em}.ui.slider.small.vertical .inner{width:1em}.ui.slider.small.vertical .inner .track,.ui.slider.small.vertical .inner .track-fill{width:.3em;left:.35em}.ui.small.labeled.vertical.slider>.labels,.ui.small.labeled.vertical.slider>.labels .label:after{width:1em}.ui.small.labeled.vertical.slider>.labels .halftick.label:after{width:.5em}.ui.slider.large .inner .thumb{height:2em;width:2em}.ui.slider.large:not(.vertical) .inner{height:2em}.ui.slider.large:not(.vertical) .inner .track,.ui.slider.large:not(.vertical) .inner .track-fill{height:.5em;top:.75em}.ui.large.labeled.slider:not(.vertical)>.labels,.ui.large.labeled.slider:not(.vertical)>.labels .label:after{height:2em}.ui.large.labeled.slider:not(.vertical)>.labels .halftick.label:after{height:1em}.ui.slider.large.vertical .inner{width:2em}.ui.slider.large.vertical .inner .track,.ui.slider.large.vertical .inner .track-fill{width:.5em;left:.75em}.ui.large.labeled.vertical.slider>.labels,.ui.large.labeled.vertical.slider>.labels .label:after{width:2em}.ui.large.labeled.vertical.slider>.labels .halftick.label:after{width:1em}.ui.slider.big .inner .thumb{height:2.5em;width:2.5em}.ui.slider.big:not(.vertical) .inner{height:2.5em}.ui.slider.big:not(.vertical) .inner .track,.ui.slider.big:not(.vertical) .inner .track-fill{height:.6em;top:.95em}.ui.big.labeled.slider:not(.vertical)>.labels,.ui.big.labeled.slider:not(.vertical)>.labels .label:after{height:2.5em}.ui.big.labeled.slider:not(.vertical)>.labels .halftick.label:after{height:1.25em}.ui.slider.big.vertical .inner{width:2.5em}.ui.slider.big.vertical .inner .track,.ui.slider.big.vertical .inner .track-fill{width:.6em;left:.95em}.ui.big.labeled.vertical.slider>.labels,.ui.big.labeled.vertical.slider>.labels .label:after{width:2.5em}.ui.big.labeled.vertical.slider>.labels .halftick.label:after{width:1.25em}/*!
+ * # Fomantic-UI - Rating
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.rating{display:inline-flex;white-space:nowrap;vertical-align:baseline}.ui.rating:last-child{margin-right:0}.ui.rating .icon{padding:0;margin:0;text-align:center;font-weight:400;font-style:normal;flex:1 0 auto;cursor:pointer;width:1.25em;height:auto;transition:opacity .1s ease,background .1s ease,text-shadow .1s ease,color .1s ease;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:0 0;color:rgba(0,0,0,.15)}.ui.rating .active.icon{background:0 0;color:rgba(0,0,0,.85)}.ui.rating .icon.partial.active{background:linear-gradient(90deg,rgba(0,0,0,.85) 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.ui.rating .icon.selected,.ui.rating .icon.selected.active,.ui.rating .icon.selected.partial.active{background:0 0;color:rgba(0,0,0,.87);background-clip:unset}.ui.primary.rating .active.icon{color:#54c8ff;text-shadow:0 -1px 0 #2185d0,-1px 0 0 #2185d0,0 1px 0 #2185d0,1px 0 0 #2185d0}.ui.primary.rating .icon.selected,.ui.primary.rating .icon.selected.active,.ui.primary.rating .icon.selected.partial.active{background:inherit;color:#21b8ff;text-shadow:0 -1px 0 #1678c2,-1px 0 0 #1678c2,0 1px 0 #1678c2,1px 0 0 #1678c2;-webkit-text-stroke:unset;background-clip:unset}.ui.primary.rating .icon.partial.active{background:linear-gradient(90deg,#54c8ff 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#2185d0 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.secondary.rating .active.icon{color:#545454;text-shadow:0 -1px 0 #1b1c1d,-1px 0 0 #1b1c1d,0 1px 0 #1b1c1d,1px 0 0 #1b1c1d}.ui.secondary.rating .icon.selected,.ui.secondary.rating .icon.selected.active,.ui.secondary.rating .icon.selected.partial.active{background:inherit;color:#6e6e6e;text-shadow:0 -1px 0 #27292a,-1px 0 0 #27292a,0 1px 0 #27292a,1px 0 0 #27292a;-webkit-text-stroke:unset;background-clip:unset}.ui.secondary.rating .icon.partial.active{background:linear-gradient(90deg,#545454 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#1b1c1d .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.red.rating .active.icon{color:#ff695e;text-shadow:0 -1px 0 #db2828,-1px 0 0 #db2828,0 1px 0 #db2828,1px 0 0 #db2828}.ui.red.rating .icon.selected,.ui.red.rating .icon.selected.active,.ui.red.rating .icon.selected.partial.active{background:inherit;color:#ff392b;text-shadow:0 -1px 0 #d01919,-1px 0 0 #d01919,0 1px 0 #d01919,1px 0 0 #d01919;-webkit-text-stroke:unset;background-clip:unset}.ui.red.rating .icon.partial.active{background:linear-gradient(90deg,#ff695e 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#db2828 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.orange.rating .active.icon{color:#ff851b;text-shadow:0 -1px 0 #f2711c,-1px 0 0 #f2711c,0 1px 0 #f2711c,1px 0 0 #f2711c}.ui.orange.rating .icon.selected,.ui.orange.rating .icon.selected.active,.ui.orange.rating .icon.selected.partial.active{background:inherit;color:#e76b00;text-shadow:0 -1px 0 #f26202,-1px 0 0 #f26202,0 1px 0 #f26202,1px 0 0 #f26202;-webkit-text-stroke:unset;background-clip:unset}.ui.orange.rating .icon.partial.active{background:linear-gradient(90deg,#ff851b 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#f2711c .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.yellow.rating .active.icon{color:#ffe21f;text-shadow:0 -1px 0 #fbbd08,-1px 0 0 #fbbd08,0 1px 0 #fbbd08,1px 0 0 #fbbd08}.ui.yellow.rating .icon.selected,.ui.yellow.rating .icon.selected.active,.ui.yellow.rating .icon.selected.partial.active{background:inherit;color:#ebcd00;text-shadow:0 -1px 0 #eaae00,-1px 0 0 #eaae00,0 1px 0 #eaae00,1px 0 0 #eaae00;-webkit-text-stroke:unset;background-clip:unset}.ui.yellow.rating .icon.partial.active{background:linear-gradient(90deg,#ffe21f 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#fbbd08 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.olive.rating .active.icon{color:#d9e778;text-shadow:0 -1px 0 #b5cc18,-1px 0 0 #b5cc18,0 1px 0 #b5cc18,1px 0 0 #b5cc18}.ui.olive.rating .icon.selected,.ui.olive.rating .icon.selected.active,.ui.olive.rating .icon.selected.partial.active{background:inherit;color:#d2e745;text-shadow:0 -1px 0 #a7bd0d,-1px 0 0 #a7bd0d,0 1px 0 #a7bd0d,1px 0 0 #a7bd0d;-webkit-text-stroke:unset;background-clip:unset}.ui.olive.rating .icon.partial.active{background:linear-gradient(90deg,#d9e778 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#b5cc18 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.green.rating .active.icon{color:#2ecc40;text-shadow:0 -1px 0 #21ba45,-1px 0 0 #21ba45,0 1px 0 #21ba45,1px 0 0 #21ba45}.ui.green.rating .icon.selected,.ui.green.rating .icon.selected.active,.ui.green.rating .icon.selected.partial.active{background:inherit;color:#1ea92e;text-shadow:0 -1px 0 #16ab39,-1px 0 0 #16ab39,0 1px 0 #16ab39,1px 0 0 #16ab39;-webkit-text-stroke:unset;background-clip:unset}.ui.green.rating .icon.partial.active{background:linear-gradient(90deg,#2ecc40 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#21ba45 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.teal.rating .active.icon{color:#6dffff;text-shadow:0 -1px 0 #00b5ad,-1px 0 0 #00b5ad,0 1px 0 #00b5ad,1px 0 0 #00b5ad}.ui.teal.rating .icon.selected,.ui.teal.rating .icon.selected.active,.ui.teal.rating .icon.selected.partial.active{background:inherit;color:#3affff;text-shadow:0 -1px 0 #009c95,-1px 0 0 #009c95,0 1px 0 #009c95,1px 0 0 #009c95;-webkit-text-stroke:unset;background-clip:unset}.ui.teal.rating .icon.partial.active{background:linear-gradient(90deg,#6dffff 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#00b5ad .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.blue.rating .active.icon{color:#54c8ff;text-shadow:0 -1px 0 #2185d0,-1px 0 0 #2185d0,0 1px 0 #2185d0,1px 0 0 #2185d0}.ui.blue.rating .icon.selected,.ui.blue.rating .icon.selected.active,.ui.blue.rating .icon.selected.partial.active{background:inherit;color:#21b8ff;text-shadow:0 -1px 0 #1678c2,-1px 0 0 #1678c2,0 1px 0 #1678c2,1px 0 0 #1678c2;-webkit-text-stroke:unset;background-clip:unset}.ui.blue.rating .icon.partial.active{background:linear-gradient(90deg,#54c8ff 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#2185d0 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.violet.rating .active.icon{color:#a291fb;text-shadow:0 -1px 0 #6435c9,-1px 0 0 #6435c9,0 1px 0 #6435c9,1px 0 0 #6435c9}.ui.violet.rating .icon.selected,.ui.violet.rating .icon.selected.active,.ui.violet.rating .icon.selected.partial.active{background:inherit;color:#745aff;text-shadow:0 -1px 0 #5829bb,-1px 0 0 #5829bb,0 1px 0 #5829bb,1px 0 0 #5829bb;-webkit-text-stroke:unset;background-clip:unset}.ui.violet.rating .icon.partial.active{background:linear-gradient(90deg,#a291fb 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#6435c9 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.purple.rating .active.icon{color:#dc73ff;text-shadow:0 -1px 0 #a333c8,-1px 0 0 #a333c8,0 1px 0 #a333c8,1px 0 0 #a333c8}.ui.purple.rating .icon.selected,.ui.purple.rating .icon.selected.active,.ui.purple.rating .icon.selected.partial.active{background:inherit;color:#cf40ff;text-shadow:0 -1px 0 #9627ba,-1px 0 0 #9627ba,0 1px 0 #9627ba,1px 0 0 #9627ba;-webkit-text-stroke:unset;background-clip:unset}.ui.purple.rating .icon.partial.active{background:linear-gradient(90deg,#dc73ff 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#a333c8 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.pink.rating .active.icon{color:#ff8edf;text-shadow:0 -1px 0 #e03997,-1px 0 0 #e03997,0 1px 0 #e03997,1px 0 0 #e03997}.ui.pink.rating .icon.selected,.ui.pink.rating .icon.selected.active,.ui.pink.rating .icon.selected.partial.active{background:inherit;color:#ff5bd1;text-shadow:0 -1px 0 #e61a8d,-1px 0 0 #e61a8d,0 1px 0 #e61a8d,1px 0 0 #e61a8d;-webkit-text-stroke:unset;background-clip:unset}.ui.pink.rating .icon.partial.active{background:linear-gradient(90deg,#ff8edf 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#e03997 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.brown.rating .active.icon{color:#d67c1c;text-shadow:0 -1px 0 #a5673f,-1px 0 0 #a5673f,0 1px 0 #a5673f,1px 0 0 #a5673f}.ui.brown.rating .icon.selected,.ui.brown.rating .icon.selected.active,.ui.brown.rating .icon.selected.partial.active{background:inherit;color:#b0620f;text-shadow:0 -1px 0 #975b33,-1px 0 0 #975b33,0 1px 0 #975b33,1px 0 0 #975b33;-webkit-text-stroke:unset;background-clip:unset}.ui.brown.rating .icon.partial.active{background:linear-gradient(90deg,#d67c1c 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#a5673f .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.grey.rating .active.icon{color:#dcddde;text-shadow:0 -1px 0 #767676,-1px 0 0 #767676,0 1px 0 #767676,1px 0 0 #767676}.ui.grey.rating .icon.selected,.ui.grey.rating .icon.selected.active,.ui.grey.rating .icon.selected.partial.active{background:inherit;color:#c2c4c5;text-shadow:0 -1px 0 #838383,-1px 0 0 #838383,0 1px 0 #838383,1px 0 0 #838383;-webkit-text-stroke:unset;background-clip:unset}.ui.grey.rating .icon.partial.active{background:linear-gradient(90deg,#dcddde 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#767676 .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.black.rating .active.icon{color:#545454;text-shadow:0 -1px 0 #1b1c1d,-1px 0 0 #1b1c1d,0 1px 0 #1b1c1d,1px 0 0 #1b1c1d}.ui.black.rating .icon.selected,.ui.black.rating .icon.selected.active,.ui.black.rating .icon.selected.partial.active{background:inherit;color:#000;text-shadow:0 -1px 0 #27292a,-1px 0 0 #27292a,0 1px 0 #27292a,1px 0 0 #27292a;-webkit-text-stroke:unset;background-clip:unset}.ui.black.rating .icon.partial.active{background:linear-gradient(90deg,#545454 0 var(--full),rgba(0,0,0,.15) var(--full) 100%);text-shadow:none;-webkit-text-stroke:#1b1c1d .78px;-webkit-background-clip:text;background-clip:text;color:transparent}.ui.disabled.rating .icon{cursor:default}.ui.rating .icon.selected,.ui.rating.selected .active.icon,.ui.rating.selected .icon.selected{opacity:1}.ui.rating{font-size:1rem}.ui.mini.rating{font-size:.78571429rem}.ui.tiny.rating{font-size:.85714286rem}.ui.small.rating{font-size:.92857143rem}.ui.large.rating{font-size:1.14285714rem}.ui.big.rating{font-size:1.28571429rem}.ui.huge.rating{font-size:1.42857143rem}.ui.massive.rating{font-size:2rem}/*!
+ * # Fomantic-UI - Search
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.search{position:relative}.ui.search>.prompt{margin:0;outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:inset 0 0 0 0 transparent;transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;transform-origin:center top;white-space:normal;text-align:left;text-transform:none;background:#fff;margin-top:.5em;width:18em;border-radius:.28571429rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);border:1px solid #d4d4d5;z-index:998}.ui.search>.results>:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.search>.results>:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.85714286em 1.14285714em;color:rgba(0,0,0,.87);line-height:1.33;border-bottom:1px solid rgba(34,36,38,.1)}.ui.search>.results .result:last-child{border-bottom:none!important}.ui.search>.results .result .image{float:right;overflow:hidden;background:0 0;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{margin:-.14285714em 0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.92857143em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#21ba45}.ui.search>.results>.message{padding:1em}.ui.search>.results>.message .header{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1rem;font-weight:700;color:rgba(0,0,0,.87)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.87)}.ui.search>.results>.action{display:block;border-top:none;background:#f3f4f5;padding:.92857143em 1em;color:rgba(0,0,0,.87);font-weight:700;text-align:center}.ui.search>.prompt:focus{border-color:rgba(34,36,38,.35);background:#fff;color:rgba(0,0,0,.95)}.ui.loading.search .input>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>i.icon:after,.ui.loading.search .input>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.search .input>i.icon:after{-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#f9fafb}.ui.search .action:hover:not(div){background:#e0e0e0}.ui.category.search>.results .category.active{background:#f3f4f5}.ui.category.search>.results .category.active>.name{color:rgba(0,0,0,.87)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:rgba(34,36,38,.1);background:#f3f4f5;box-shadow:none}.ui.search>.results .result.active .description,.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.disabled.search{cursor:default;pointer-events:none;opacity:.45}.ui.search.selection .prompt{border-radius:.28571429rem}.ui.search.selection>.icon.input>.remove.icon{pointer-events:none;position:absolute;left:auto;opacity:0;color:"";top:0;right:0;transition:color .1s ease,opacity .1s ease}.ui.search.selection>.icon.input>.active.remove.icon{cursor:pointer;opacity:.8;pointer-events:auto}.ui.search.selection>.icon.input:not([class*="left icon"])>.icon~.remove.icon{right:1.85714em}.ui.search.selection>.icon.input>.remove.icon:hover{opacity:1;color:#db2828}.ui.category.search .results{width:28em}.ui.category.search .results.animating,.ui.category.search .results.visible{display:table}.ui.category.search>.results .category{display:table-row;background:#f3f4f5;box-shadow:none;transition:background .1s ease,border-color .1s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category:first-child .name+.result{border-radius:0 .28571429rem 0 0}.ui.category.search>.results .category:last-child .result:last-child{border-radius:0 0 .28571429rem 0}.ui.category.search>.results .category>.name{display:table-cell;text-overflow:ellipsis;width:100px;white-space:nowrap;background:0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4);border-bottom:1px solid rgba(34,36,38,.1)}.ui.category.search>.results .category .results{display:table-cell;background:#fff;border-left:1px solid rgba(34,36,38,.15);border-bottom:1px solid rgba(34,36,38,.1)}.ui.category.search>.results .category .result{border-bottom:1px solid rgba(34,36,38,.1);transition:background .1s ease,border-color .1s ease;padding:.85714286em 1.14285714em}.ui.scrolling.search>.results,.ui.search.long>.results,.ui.search.short>.results{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}@media only screen and (max-width:767.98px){.ui.scrolling.search>.results{max-height:12.17714286em}}@media only screen and (min-width:768px){.ui.scrolling.search>.results{max-height:18.26571429em}}@media only screen and (min-width:992px){.ui.scrolling.search>.results{max-height:24.35428571em}}@media only screen and (min-width:1920px){.ui.scrolling.search>.results{max-height:36.53142857em}}@media only screen and (max-width:767.98px){.ui.search.short>.results{max-height:12.17714286em}.ui.search[class*="very short"]>.results{max-height:9.13285714em}.ui.search.long>.results{max-height:24.35428571em}.ui.search[class*="very long"]>.results{max-height:36.53142857em}}@media only screen and (min-width:768px){.ui.search.short>.results{max-height:18.26571429em}.ui.search[class*="very short"]>.results{max-height:13.69928571em}.ui.search.long>.results{max-height:36.53142857em}.ui.search[class*="very long"]>.results{max-height:54.79714286em}}@media only screen and (min-width:992px){.ui.search.short>.results{max-height:24.35428571em}.ui.search[class*="very short"]>.results{max-height:18.26571429em}.ui.search.long>.results{max-height:48.70857143em}.ui.search[class*="very long"]>.results{max-height:73.06285714em}}@media only screen and (min-width:1920px){.ui.search.short>.results{max-height:36.53142857em}.ui.search[class*="very short"]>.results{max-height:27.39857143em}.ui.search.long>.results{max-height:73.06285714em}.ui.search[class*="very long"]>.results{max-height:109.59428571em}}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.search{font-size:1em}.ui.mini.search{font-size:.78571429em}.ui.tiny.search{font-size:.85714286em}.ui.small.search{font-size:.92857143em}.ui.large.search{font-size:1.14285714em}.ui.big.search{font-size:1.28571429em}.ui.huge.search{font-size:1.42857143em}.ui.massive.search{font-size:1.71428571em}@media only screen and (max-width:767.98px){.ui.search .results{max-width:calc(100vw - 2rem)}}/*!
+ * # Fomantic-UI - Shape
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.shape{position:relative;vertical-align:top;display:inline-block;perspective:2000px;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape .side,.ui.shape .sides{transform-style:preserve-3d}.ui.shape .side{display:none;opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape.animating .side{transition:opacity .6s ease-in-out}.ui.shape .animating.side *,.ui.shape.animating .side *{transition:none}.ui.shape .active.side{display:block}/*!
+ * # Fomantic-UI - Sidebar
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.sidebar{position:fixed;top:0;left:0;transition:none;will-change:transform;transform:translateZ(0);visibility:hidden;-webkit-overflow-scrolling:touch;height:100%!important;max-height:100%;border-radius:0!important;margin:0!important;overflow-y:auto!important;z-index:102}.ui.sidebar,.ui.sidebar>*{-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.left.sidebar{right:auto;left:0;transform:translate3d(-100%,0,0)}.ui.right.sidebar{right:0!important;left:auto!important;transform:translate3d(100%,0,0)}.ui.bottom.sidebar,.ui.top.sidebar{width:100%!important;height:auto!important}.ui.top.sidebar{top:0!important;bottom:auto!important;transform:translate3d(0,-100%,0)}.ui.bottom.sidebar{top:auto!important;bottom:0!important;transform:translate3d(0,100%,0)}.pushable{height:100%;overflow-x:hidden;padding:0!important}body.pushable{background:#545454}body.pushable.dimmed{background:inherit}.pushable:not(body){transform:translateZ(0);overflow-y:hidden}.pushable:not(body)>.fixed,.pushable:not(body)>.pusher:after,.pushable:not(body)>.ui.sidebar{position:absolute}.pushable>.fixed{position:fixed;will-change:transform;z-index:101}.pushable>.fixed,.pushable>.pusher{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .5s ease}.pushable>.pusher{position:relative;overflow:hidden;min-height:100%;z-index:2;background:inherit}body.pushable>.pusher{background:#fff}.pushable>.pusher:after{position:fixed;top:0;right:0;content:"";background:rgba(0,0,0,.4);overflow:hidden;opacity:0;transition:opacity .5s;will-change:opacity;z-index:1000}.ui.sidebar.menu .item{border-radius:0!important}.pushable>.pusher.dimmed:after{width:100%!important;height:100%!important;opacity:1!important}.ui.animating.sidebar{visibility:visible}.ui.visible.sidebar{visibility:visible;transform:translateZ(0)}.ui.bottom.visible.sidebar,.ui.left.visible.sidebar,.ui.right.visible.sidebar,.ui.top.visible.sidebar{box-shadow:0 0 20px rgba(34,36,38,.15)}.ui.visible.left.sidebar~.fixed,.ui.visible.left.sidebar~.pusher{transform:translate3d(260px,0,0)}.ui.visible.right.sidebar~.fixed,.ui.visible.right.sidebar~.pusher{transform:translate3d(-260px,0,0)}.ui.visible.top.sidebar~.fixed,.ui.visible.top.sidebar~.pusher{transform:translate3d(0,36px,0)}.ui.visible.bottom.sidebar~.fixed,.ui.visible.bottom.sidebar~.pusher{transform:translate3d(0,-36px,0)}.ui.visible.left.sidebar~.ui.visible.right.sidebar~.fixed,.ui.visible.left.sidebar~.ui.visible.right.sidebar~.pusher,.ui.visible.right.sidebar~.ui.visible.left.sidebar~.fixed,.ui.visible.right.sidebar~.ui.visible.left.sidebar~.pusher{transform:translateZ(0)}.ui.thin.left.sidebar,.ui.thin.right.sidebar{width:150px}.ui[class*="very thin"].left.sidebar,.ui[class*="very thin"].right.sidebar{width:60px}.ui.left.sidebar,.ui.right.sidebar{width:260px}.ui.wide.left.sidebar,.ui.wide.right.sidebar{width:350px}.ui[class*="very wide"].left.sidebar,.ui[class*="very wide"].right.sidebar{width:475px}.ui.visible.thin.left.sidebar~.fixed,.ui.visible.thin.left.sidebar~.pusher{transform:translate3d(150px,0,0)}.ui.visible[class*="very thin"].left.sidebar~.fixed,.ui.visible[class*="very thin"].left.sidebar~.pusher{transform:translate3d(60px,0,0)}.ui.visible.wide.left.sidebar~.fixed,.ui.visible.wide.left.sidebar~.pusher{transform:translate3d(350px,0,0)}.ui.visible[class*="very wide"].left.sidebar~.fixed,.ui.visible[class*="very wide"].left.sidebar~.pusher{transform:translate3d(475px,0,0)}.ui.visible.thin.right.sidebar~.fixed,.ui.visible.thin.right.sidebar~.pusher{transform:translate3d(-150px,0,0)}.ui.visible[class*="very thin"].right.sidebar~.fixed,.ui.visible[class*="very thin"].right.sidebar~.pusher{transform:translate3d(-60px,0,0)}.ui.visible.wide.right.sidebar~.fixed,.ui.visible.wide.right.sidebar~.pusher{transform:translate3d(-350px,0,0)}.ui.visible[class*="very wide"].right.sidebar~.fixed,.ui.visible[class*="very wide"].right.sidebar~.pusher{transform:translate3d(-475px,0,0)}.ui.overlay.sidebar{z-index:102}.ui.left.overlay.sidebar{transform:translate3d(-100%,0,0)}.ui.right.overlay.sidebar{transform:translate3d(100%,0,0)}.ui.top.overlay.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.overlay.sidebar{transform:translate3d(0,100%,0)}.animating.ui.overlay.sidebar,.ui.visible.overlay.sidebar{transition:transform .5s ease}.ui.visible.bottom.overlay.sidebar,.ui.visible.left.overlay.sidebar,.ui.visible.right.overlay.sidebar,.ui.visible.top.overlay.sidebar{transform:translateZ(0)}.ui.visible.overlay.sidebar~.fixed,.ui.visible.overlay.sidebar~.pusher{transform:none!important}.ui.push.sidebar{transition:transform .5s ease;z-index:102}.ui.left.push.sidebar{transform:translate3d(-100%,0,0)}.ui.right.push.sidebar{transform:translate3d(100%,0,0)}.ui.top.push.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.push.sidebar{transform:translate3d(0,100%,0)}.ui.uncover.sidebar,.ui.visible.push.sidebar{transform:translateZ(0)}.ui.uncover.sidebar{z-index:1}.ui.visible.uncover.sidebar{transform:translateZ(0);transition:transform .5s ease}.ui.slide.along.sidebar{z-index:1}.ui.left.slide.along.sidebar{transform:translate3d(-50%,0,0)}.ui.right.slide.along.sidebar{transform:translate3d(50%,0,0)}.ui.top.slide.along.sidebar{transform:translate3d(0,-50%,0)}.ui.bottom.slide.along.sidebar{transform:translate3d(0,50%,0)}.ui.animating.slide.along.sidebar{transition:transform .5s ease}.ui.visible.slide.along.sidebar{transform:translateZ(0)}.ui.slide.out.sidebar{z-index:1}.ui.left.slide.out.sidebar{transform:translate3d(50%,0,0)}.ui.right.slide.out.sidebar{transform:translate3d(-50%,0,0)}.ui.top.slide.out.sidebar{transform:translate3d(0,50%,0)}.ui.bottom.slide.out.sidebar{transform:translate3d(0,-50%,0)}.ui.animating.slide.out.sidebar{transition:transform .5s ease}.ui.visible.slide.out.sidebar{transform:translateZ(0)}.ui.scale.down.sidebar{transition:transform .5s ease;z-index:102}.ui.left.scale.down.sidebar{transform:translate3d(-100%,0,0)}.ui.right.scale.down.sidebar{transform:translate3d(100%,0,0)}.ui.top.scale.down.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.scale.down.sidebar{transform:translate3d(0,100%,0)}.ui.scale.down.left.sidebar~.pusher{transform-origin:75% 50%}.ui.scale.down.right.sidebar~.pusher{transform-origin:25% 50%}.ui.scale.down.top.sidebar~.pusher{transform-origin:50% 75%}.ui.scale.down.bottom.sidebar~.pusher{transform-origin:50% 25%}.ui.animating.scale.down>.visible.ui.sidebar{transition:transform .5s ease}.ui.animating.scale.down.sidebar~.pusher,.ui.visible.scale.down.sidebar~.pusher{display:block!important;width:100%;height:100%;overflow:hidden!important}.ui.visible.scale.down.sidebar{transform:translateZ(0)}.ui.visible.scale.down.sidebar~.pusher{transform:scale(.75)}/*!
+ * # Fomantic-UI - Sticky
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.sticky{position:static;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}/*!
+ * # Fomantic-UI - Tab
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:"";top:50%;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:loader .6s linear infinite;animation:loader .6s linear infinite;border:.2em solid #767676;border-radius:500rem;box-shadow:0 0 0 1px transparent}/*!
+ * # Fomantic-UI - Text
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * https://github.com/fomantic/Fomantic-UI/blob/master/LICENSE.md
+ *
+ */span.ui.text{line-height:1}span.ui.primary.text{color:#2185d0}span.ui.inverted.primary.text{color:#54c8ff}span.ui.secondary.text{color:#1b1c1d}span.ui.inverted.secondary.text{color:#545454}span.ui.red.text{color:#db2828}span.ui.inverted.red.text{color:#ff695e}span.ui.orange.text{color:#f2711c}span.ui.inverted.orange.text{color:#ff851b}span.ui.yellow.text{color:#fbbd08}span.ui.inverted.yellow.text{color:#ffe21f}span.ui.olive.text{color:#b5cc18}span.ui.inverted.olive.text{color:#d9e778}span.ui.green.text{color:#21ba45}span.ui.inverted.green.text{color:#2ecc40}span.ui.teal.text{color:#00b5ad}span.ui.inverted.teal.text{color:#6dffff}span.ui.blue.text{color:#2185d0}span.ui.inverted.blue.text{color:#54c8ff}span.ui.violet.text{color:#6435c9}span.ui.inverted.violet.text{color:#a291fb}span.ui.purple.text{color:#a333c8}span.ui.inverted.purple.text{color:#dc73ff}span.ui.pink.text{color:#e03997}span.ui.inverted.pink.text{color:#ff8edf}span.ui.brown.text{color:#a5673f}span.ui.inverted.brown.text{color:#d67c1c}span.ui.grey.text{color:#767676}span.ui.inverted.grey.text{color:#dcddde}span.ui.black.text{color:#1b1c1d}span.ui.inverted.black.text{color:#545454}span.ui.error.text{color:#db2828}span.ui.info.text{color:#31ccec}span.ui.success.text{color:#21ba45}span.ui.warning.text{color:#f2c037}span.ui.disabled.text{opacity:.45}span.ui.medium.text{font-size:1em}span.ui.mini.text{font-size:.4em}span.ui.tiny.text{font-size:.5em}span.ui.small.text{font-size:.75em}span.ui.large.text{font-size:1.5em}span.ui.big.text{font-size:2em}span.ui.huge.text{font-size:4em}span.ui.massive.text{font-size:8em}/*!
+ * # Fomantic-UI - Toast
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.toast-container{position:fixed;z-index:9999}.ui.toast-container.top.right{top:.85714286em;right:.85714286em;margin-left:.85714286em}.ui.toast-container.top.left{top:.85714286em;left:.85714286em;margin-right:.85714286em}.ui.toast-container.top.center{left:50%;transform:translate(-50%);top:.85714286em}.ui.toast-container.bottom.right{bottom:.85714286em;right:.85714286em;margin-left:.85714286em}.ui.toast-container.bottom.left{bottom:.85714286em;left:.85714286em;margin-right:.85714286em}.ui.toast-container.bottom.center{left:50%;transform:translate(-50%);bottom:.85714286em}.ui.toast-container .animating.toast-box,.ui.toast-container .toast-box,.ui.toast-container .visible.toast-box{display:table!important}.ui.toast-container .toast-box{margin-bottom:.5em;border-radius:.28571429rem;cursor:default}.ui.toast-container .toast-box:hover{opacity:1}.ui.toast-container .toast-box:not(.unclickable):hover{cursor:pointer}.ui.toast-container .toast-box.floating,.ui.toast-container .toast-box.hoverfloating:hover{box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);border:1px solid rgba(34,36,38,.12)}.ui.toast-container .toast-box.compact,.ui.toast-container .toast-box>.compact{width:350px}.ui.toast-container .toast-box>.ui.message,.ui.toast-container .toast-box>.ui.toast{margin:0 -1px -.01em;position:relative}.ui.toast-container .toast-box>.attached.progress{z-index:1}.ui.toast-container .toast-box>.attached.progress.bottom{margin:-.2em -1px -.01em}.ui.toast-container .toast-box>.attached.progress.top{margin:-.01em -1px -.2em}.ui.toast-container .toast-box>.attached.progress .bar{min-width:0}.ui.toast-container .toast-box>.attached.progress.info .bar.bar.bar{background:#12a1bf}.ui.toast-container .toast-box>.attached.progress.warning .bar.bar.bar{background:#cf9b0d}.ui.toast-container .toast-box>.attached.progress.success .bar.bar.bar{background:#15792d}.ui.toast-container .toast-box>.attached.progress.error .bar.bar.bar{background:#9c1a1a}.ui.toast-container .toast-box>.attached.progress.neutral .bar.bar.bar{background:#d9d9d9}.ui.toast-container .toast-box>.ui.message>.close.icon{top:.3em;right:.3em}.ui.toast-container .toast-box>.ui.message>.actions:last-child{margin-bottom:-1em}.ui.toast-container .toast-box>.ui.message.icon{align-items:inherit}.ui.toast-container .toast-box>.ui.message.icon>:not(.icon):not(.actions){padding-left:5rem}.ui.toast-container .toast-box>.ui.message.icon>i.icon:not(.close){display:inline-block;position:absolute;width:4rem;top:50%;transform:translateY(-50%)}.ui.toast-container .toast-box>.ui.message.icon:not(.vertical).actions>i.icon:not(.close){top:calc(50% - 1.2em);transform:none}.ui.toast-container .toast-box>.ui.message.icon:not(.vertical).icon.icon.icon{display:block}.ui.toast-container .toast-box .ui.toast>.close.icon{cursor:pointer;margin:0;opacity:.7;transition:opacity .1s ease}.ui.toast-container .toast-box .ui.toast>.close.icon:hover{opacity:1}.ui.toast-container .toast-box .ui.toast.vertical>.close.icon{margin-top:-.3em;margin-right:-.3em}.ui.toast-container .toast-box .ui.toast:not(.vertical)>.close.icon{position:absolute;top:.3em}.ui.toast-container .toast-box .ui.toast:not(.vertical)>.close.icon:not(.left){right:.3em}.ui.toast-container .toast-box .ui.toast:not(.vertical)>.close.icon.left{margin-left:-.3em}.ui.toast-container .toast-box .ui.card{margin:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).bottom{border-top-left-radius:0;border-top-right-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).bottom.horizontal>.image>img{border-top-left-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).bottom.horizontal>.image:last-child>img{border-top-right-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).top{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).top.horizontal>.image>img{border-bottom-left-radius:0}.ui.toast-container .toast-box .ui.card.attached:not(.vertical).top.horizontal>.image:last-child>img{border-bottom-right-radius:0}.ui.toast-container .toast-box .ui.card.horizontal.actions>.image>img{border-bottom-left-radius:0}.ui.toast-container .toast-box .ui.card.horizontal.actions>.image:last-child>img{border-bottom-right-radius:0}.ui.toast-container .toast-box .progressing{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-timing-function:linear;animation-timing-function:linear}.ui.toast-container .toast-box .progressing.up{-webkit-animation-name:progressUp;animation-name:progressUp}.ui.toast-container .toast-box .progressing.down{-webkit-animation-name:progressDown;animation-name:progressDown}.ui.toast-container .toast-box .progressing.wait{-webkit-animation-name:progressWait;animation-name:progressWait}.ui.toast-container .toast-box:hover .pausable.progressing{-webkit-animation-play-state:paused;animation-play-state:paused}.ui.toast-container .toast-box .ui.toast:not(.vertical){display:block}.ui.toast-container .toast-box :not(.comment):not(.card) .actions{margin:.5em -1em -1em}.ui.toast-container .toast-box :not(.comment) .actions{padding:.5em .5em .75em;text-align:right}.ui.toast-container .toast-box :not(.comment) .actions.attached:not(.vertical){margin-right:1px}.ui.toast-container .toast-box :not(.comment) .actions:not(.basic):not(.attached){background:hsla(0,0%,100%,.25);border-top:1px solid rgba(0,0,0,.2)}.ui.toast-container .toast-box :not(.comment) .actions.left{text-align:left}.ui.toast-container .toast-box .vertical.actions>.button,.ui.toast-container .toast-box>.vertical.vertical.vertical,.ui.toast-container .toast-box>.vertical>.vertical.vertical{display:flex}.ui.toast-container .toast-box :not(.comment) .vertical.actions{flex-direction:column}.ui.toast-container .toast-box :not(.comment) .vertical.actions>.button{justify-content:center}.ui.toast-container .toast-box :not(.comment) .vertical.actions.attached>.button{align-items:center}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached){border-top:0;margin-top:-.75em;margin-bottom:-.75em;margin-left:1em;justify-content:space-around}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached):not(.basic){border-left:1px solid rgba(0,0,0,.2)}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached)>.button:not(:last-child){margin-bottom:.3em}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached).top{justify-content:flex-start}.ui.toast-container .toast-box :not(.comment) .vertical.actions:not(.attached).bottom{justify-content:flex-end}.ui.vertical.attached:not(.left).card>.image>img{border-top-right-radius:0}.ui.vertical.attached:not(.left).card,.ui.vertical.attached:not(.left).card.horizontal>.image:last-child>img,.ui.vertical.attached:not(.left).toast{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.attached:not(.left).actions{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.vertical.attached:not(.left).actions .button:first-child,.ui.vertical.attached:not(.left).actions .button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.ui.vertical.attached:not(.left).message{border-top-right-radius:0;border-bottom-left-radius:.28571429rem}.ui.vertical.attached.left.card>.image>img{border-top-left-radius:0}.ui.vertical.attached.left.card,.ui.vertical.attached.left.card.horizontal>.image>img,.ui.vertical.attached.left.toast{border-top-left-radius:0;border-bottom-left-radius:0}.ui.vertical.attached.left.actions{border-top-left-radius:.28571429rem;border-bottom-left-radius:.28571429rem}.ui.vertical.attached.left.actions .button:first-child,.ui.vertical.attached.left.actions .button:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.attached.left.actions .button:not(:first-child):not(:last-child){margin-left:-1px}.ui.vertical.attached.left.message.message.message{border-top-right-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.attached:not(.vertical):not(.top).actions{border-bottom-left-radius:.28571429rem;border-bottom-right-radius:.28571429rem}.ui.attached:not(.vertical):not(.top).actions .button:first-child{border-bottom-left-radius:.28571429rem}.ui.attached:not(.vertical):not(.top).actions .button:last-child{border-bottom-right-radius:.28571429rem}.ui.attached:not(.vertical).top.actions{border-top-left-radius:.28571429rem;border-top-right-radius:.28571429rem}.ui.attached:not(.vertical).top.actions .button:first-child{border-top-left-radius:.28571429rem}.ui.attached:not(.vertical).top.actions .button:last-child{border-top-right-radius:.28571429rem}.ui.toast{display:none;border-radius:.28571429rem;padding:.78571429em 1em;margin:0 -1px -.01em;color:rgba(0,0,0,.87);background-color:#fff}.ui.toast>.content>.header{font-weight:700;color:inherit;margin:0}.ui.toast.info{background-color:#31ccec;color:hsla(0,0%,100%,.9)}.ui.toast.warning{background-color:#f2c037;color:hsla(0,0%,100%,.9)}.ui.toast.success{background-color:#21ba45;color:hsla(0,0%,100%,.9)}.ui.toast.error{background-color:#db2828;color:hsla(0,0%,100%,.9)}.ui.toast.neutral{background-color:#fff;color:rgba(0,0,0,.87)}.ui.toast>i.icon:not(.close){font-size:1.5em}.ui.toast:not(.vertical)>i.icon:not(.close){position:absolute}.ui.toast:not(.vertical)>i.icon:not(.close)+.content{padding-left:3em}.ui.toast:not(.vertical)>.close.icon+.content{padding-left:1.5em}.ui.toast:not(.vertical)>.ui.image{position:absolute}.ui.toast:not(.vertical)>.ui.image.avatar+.content{padding-left:3em;min-height:2em}.ui.toast:not(.vertical)>.ui.image.mini+.content{padding-left:3.4em;min-height:35px}.ui.toast:not(.vertical)>.ui.image.tiny+.content{padding-left:7em;min-height:80px}.ui.toast:not(.vertical)>.ui.image.small+.content{padding-left:12em;min-height:150px}.ui.toast:not(.vertical)>.centered.icon,.ui.toast:not(.vertical)>.centered.image{transform:translateY(-50%);top:50%}.ui.toast:not(.vertical).actions>.centered.image{top:calc(50% - 2em)}.ui.toast:not(.vertical).actions>.centered.icon{top:calc(50% - 1.2em)}.ui.toast.vertical>.close.icon+.content,.ui.toast.vertical>.ui.image+.content,.ui.toast.vertical>i.icon:not(.close)+.content{padding-left:1em}.ui.toast.vertical>.ui.image{align-self:flex-start;flex-shrink:0}.ui.toast.vertical>.centered.icon,.ui.toast.vertical>.centered.image{align-self:center}.ui.toast.attached.bottom{border-top-left-radius:0;border-top-right-radius:0}.ui.toast.attached.top{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.hoverfloating.message:hover{box-shadow:inset 0 0 0 1px,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.center.toast-container .toast-box,.ui.right.toast-container .toast-box{margin-left:auto}.ui.center.toast-container .toast-box{margin-right:auto}.ui.primary.toast{background-color:#2185d0;color:hsla(0,0%,100%,.9)}.ui.inverted.primary.toast,.ui.toast-container .toast-box>.inverted.primary.attached.progress .bar{background-color:#54c8ff;color:rgba(0,0,0,.87)}.ui.secondary.toast{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.secondary.toast,.ui.toast-container .toast-box>.inverted.secondary.attached.progress .bar{background-color:#545454;color:rgba(0,0,0,.87)}.ui.red.toast{background-color:#db2828;color:hsla(0,0%,100%,.9)}.ui.inverted.red.toast,.ui.toast-container .toast-box>.inverted.red.attached.progress .bar{background-color:#ff695e;color:rgba(0,0,0,.87)}.ui.orange.toast{background-color:#f2711c;color:hsla(0,0%,100%,.9)}.ui.inverted.orange.toast,.ui.toast-container .toast-box>.inverted.orange.attached.progress .bar{background-color:#ff851b;color:rgba(0,0,0,.87)}.ui.yellow.toast{background-color:#fbbd08;color:hsla(0,0%,100%,.9)}.ui.inverted.yellow.toast,.ui.toast-container .toast-box>.inverted.yellow.attached.progress .bar{background-color:#ffe21f;color:rgba(0,0,0,.87)}.ui.olive.toast{background-color:#b5cc18;color:hsla(0,0%,100%,.9)}.ui.inverted.olive.toast,.ui.toast-container .toast-box>.inverted.olive.attached.progress .bar{background-color:#d9e778;color:rgba(0,0,0,.87)}.ui.green.toast{background-color:#21ba45;color:hsla(0,0%,100%,.9)}.ui.inverted.green.toast,.ui.toast-container .toast-box>.inverted.green.attached.progress .bar{background-color:#2ecc40;color:rgba(0,0,0,.87)}.ui.teal.toast{background-color:#00b5ad;color:hsla(0,0%,100%,.9)}.ui.inverted.teal.toast,.ui.toast-container .toast-box>.inverted.teal.attached.progress .bar{background-color:#6dffff;color:rgba(0,0,0,.87)}.ui.blue.toast{background-color:#2185d0;color:hsla(0,0%,100%,.9)}.ui.inverted.blue.toast,.ui.toast-container .toast-box>.inverted.blue.attached.progress .bar{background-color:#54c8ff;color:rgba(0,0,0,.87)}.ui.violet.toast{background-color:#6435c9;color:hsla(0,0%,100%,.9)}.ui.inverted.violet.toast,.ui.toast-container .toast-box>.inverted.violet.attached.progress .bar{background-color:#a291fb;color:rgba(0,0,0,.87)}.ui.purple.toast{background-color:#a333c8;color:hsla(0,0%,100%,.9)}.ui.inverted.purple.toast,.ui.toast-container .toast-box>.inverted.purple.attached.progress .bar{background-color:#dc73ff;color:rgba(0,0,0,.87)}.ui.pink.toast{background-color:#e03997;color:hsla(0,0%,100%,.9)}.ui.inverted.pink.toast,.ui.toast-container .toast-box>.inverted.pink.attached.progress .bar{background-color:#ff8edf;color:rgba(0,0,0,.87)}.ui.brown.toast{background-color:#a5673f;color:hsla(0,0%,100%,.9)}.ui.inverted.brown.toast,.ui.toast-container .toast-box>.inverted.brown.attached.progress .bar{background-color:#d67c1c;color:rgba(0,0,0,.87)}.ui.grey.toast{background-color:#767676;color:hsla(0,0%,100%,.9)}.ui.inverted.grey.toast,.ui.toast-container .toast-box>.inverted.grey.attached.progress .bar{background-color:#dcddde;color:rgba(0,0,0,.87)}.ui.black.toast{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.black.toast,.ui.toast-container .toast-box>.inverted.black.attached.progress .bar{background-color:#545454;color:rgba(0,0,0,.87)}.ui.inverted.toast{color:hsla(0,0%,100%,.9);background-color:#1b1c1d}@media only screen and (max-width:420px){.ui.toast-container .toast-box.toast-box,.ui.toast-container .toast-box>*,.ui.toast-container .toast-box>.compact,.ui.toast-container .toast-box>.vertical>*{width:auto;max-width:100%}.ui.toast-container .toast-box>:not(.vertical){min-width:280px}.ui.toast-container .toast-box>.ui.card.horizontal,.ui.toast-container .toast-box>.vertical>.ui.horizontal.card{min-width:0}}@-webkit-keyframes progressDown{0%{width:100%}to{width:0}}@keyframes progressDown{0%{width:100%}to{width:0}}@-webkit-keyframes progressUp{0%{width:0}to{width:100%}}@keyframes progressUp{0%{width:0}to{width:100%}}@-webkit-keyframes progressWait{0%{opacity:1}to{opacity:0}}@keyframes progressWait{0%{opacity:1}to{opacity:0}}/*!
+ * # Fomantic-UI - Transition
+ * http://github.com/fomantic/Fomantic-UI/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0) rotateX(0)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0) rotateX(0) translateZ(-10px);opacity:0}}.drop.transition{transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0);opacity:1}}@keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0);opacity:1}}@keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@-webkit-keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:right center}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:left center}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:right center}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:left center}@-webkit-keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:right center}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:left center}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:right center}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:left center}@-webkit-keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0)}}@keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0)}}@-webkit-keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0)}}@keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0)}}@-webkit-keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@-webkit-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@-webkit-keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.7}to{transform:scale(1);opacity:1}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.7}to{transform:scale(1);opacity:1}}@-webkit-keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@media only screen and (max-width:767px){body#imagine-app [class*="computer only"]:not(.mobile),body#imagine-app [class*="large monitor only"]:not(.mobile),body#imagine-app [class*="mobile hidden"],body#imagine-app [class*="or lower hidden"],body#imagine-app [class*="tablet only"]:not(.mobile),body#imagine-app [class*="widescreen monitor only"]:not(.mobile){display:none!important}body#imagine-app table td>a:first-child{display:block;margin:-.75em 0;padding:.75em 0}body#imagine-app .ui.icon.input{width:100%;margin-top:.5em}}@media only screen and (min-width:768px)and (max-width:991px){body#imagine-app [class*="computer only"]:not(.tablet),body#imagine-app [class*="large monitor only"]:not(.tablet),body#imagine-app [class*="mobile only"]:not(.tablet),body#imagine-app [class*="or lower hidden"]:not(.mobile),body#imagine-app [class*="tablet hidden"],body#imagine-app [class*="widescreen monitor only"]:not(.tablet){display:none!important}}@media only screen and (min-width:992px)and (max-width:1199px){body#imagine-app [class*="computer hidden"],body#imagine-app [class*="large monitor only"]:not(.computer),body#imagine-app [class*="mobile only"]:not(.computer),body#imagine-app [class*="or lower hidden"]:not(.tablet):not(.mobile),body#imagine-app [class*="tablet only"]:not(.computer),body#imagine-app [class*="widescreen monitor only"]:not(.computer){display:none!important}}@media only screen and (min-width:1200px)and (max-width:1919px){body#imagine-app [class*="computer only"]:not([class*="large monitor"]),body#imagine-app [class*="large monitor hidden"],body#imagine-app [class*="mobile only"]:not([class*="large monitor"]),body#imagine-app [class*="or lower hidden"]:not(.computer):not(.tablet):not(.mobile),body#imagine-app [class*="tablet only"]:not([class*="large monitor"]),body#imagine-app [class*="widescreen monitor only"]:not([class*="large monitor"]){display:none!important}}@media only screen and (min-width:1920px){body#imagine-app [class*="computer only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="large monitor only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="mobile only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="tablet only"]:not([class*="widescreen monitor"]),body#imagine-app [class*="widescreen monitor hidden"],body#imagine-app [class*="widescreen monitor or lower hidden"]{display:none!important}}#mobile-menu{background-color:rgba(0,0,0,.9);min-height:100vh}.slideout-menu{position:fixed;top:0;bottom:0;width:210px;min-height:100vh;overflow-y:scroll;-webkit-overflow-scrolling:touch;z-index:0;display:none}.slideout-menu-left{left:0}.slideout-menu-right{right:0}.slideout-panel{position:relative;z-index:1;will-change:transform;background-color:#fff;min-height:100vh}.slideout-open,.slideout-open .slideout-panel,.slideout-open body{overflow:hidden}.slideout-open .slideout-menu{display:block}.panel:before{content:"";display:block;background-color:transparent;transition:background-color .5s ease-in-out}.panel-open:before{position:absolute;top:0;bottom:0;width:100%;background-color:rgba(0,0,0,.5);z-index:99}@media only screen and (max-width:767px){body#imagine-app #content-container{min-height:90vh}body#imagine-app .button-bar *{width:32px;height:32px;padding:8px 0 0!important;color:transparent;overflow:hidden}body#imagine-app .button-bar * i{color:initial;margin:0}body#imagine-app .button-bar .negative{margin-left:10px}}body#imagine-app #content-container{padding-top:10px;min-height:80vh}body#imagine-app #panel .mobile.only .menu,body#imagine-app footer.inverted.segment{border-radius:0}body#imagine-app #HW_badge_cont{height:auto}body#imagine-app #HW_badge{top:-7px;left:4px}body#imagine-app .button-bar{margin-bottom:6px}body#imagine-app .button-bar form{display:inline-block}body#imagine-app .button-bar *{margin-bottom:4px}body#imagine-app footer{margin-top:30px}body#imagine-app form .actions{background-color:#eee;position:-webkit-sticky;position:sticky;bottom:0;padding:10px;z-index:10}body#imagine-app #Imagine-Properties-Modal .close{top:.25rem;right:.15rem}body#imagine-app #Imagine-Properties-Modal .header{line-height:1.1;padding:.9rem 1.5rem}body#imagine-app #Imagine-Properties-Modal .content{max-height:67vh;overflow:scroll}body#imagine-app #Imagine-Properties-Modal .fields.flex .field{flex:1 1 auto}body#imagine-app .CodeMirror{height:auto}body#imagine-app .ui.table{margin:1em 0}body#imagine-app table.summary.table{max-width:450px}body#imagine-app .ui.toast-container.top.right{top:50px!important;right:10px!important}body#imagine-app .page-browser{margin:0 0 20px}body#imagine-app .page-browser .track{display:flex}body#imagine-app .page-browser .column{flex:0 0 auto;box-sizing:border-box;width:220px;min-width:180px;max-width:60vw;resize:horizontal;min-height:250px;max-height:60vh;border:1px solid #ccc;border-left-width:0;overflow:scroll}body#imagine-app .page-browser .column:first-child{border-width:1px}body#imagine-app .page-browser .list .item{border-radius:0}body#imagine-app .page-browser .list .item.selected{background-color:#e0e0e0}body#imagine-app .page-browser .list .item.offline{opacity:.65}body#imagine-app .page-browser .list .item .description,body#imagine-app .page-browser .list .item .header{width:calc(100% - 1.55em);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
\ No newline at end of file
diff --git a/priv/static/dist/themes/default/assets/fonts/brand-icons.eot b/priv/static/dist/themes/default/assets/fonts/brand-icons.eot
new file mode 100644
index 0000000..a1bc094
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/brand-icons.eot differ
diff --git a/priv/static/dist/themes/default/assets/fonts/brand-icons.svg b/priv/static/dist/themes/default/assets/fonts/brand-icons.svg
new file mode 100644
index 0000000..2d4771e
--- /dev/null
+++ b/priv/static/dist/themes/default/assets/fonts/brand-icons.svg
@@ -0,0 +1,3570 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/priv/static/dist/themes/default/assets/fonts/brand-icons.ttf b/priv/static/dist/themes/default/assets/fonts/brand-icons.ttf
new file mode 100644
index 0000000..948a2a6
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/brand-icons.ttf differ
diff --git a/priv/static/dist/themes/default/assets/fonts/brand-icons.woff b/priv/static/dist/themes/default/assets/fonts/brand-icons.woff
new file mode 100644
index 0000000..2a89d52
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/brand-icons.woff differ
diff --git a/priv/static/dist/themes/default/assets/fonts/brand-icons.woff2 b/priv/static/dist/themes/default/assets/fonts/brand-icons.woff2
new file mode 100644
index 0000000..141a90a
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/brand-icons.woff2 differ
diff --git a/priv/static/dist/themes/default/assets/fonts/icons.eot b/priv/static/dist/themes/default/assets/fonts/icons.eot
new file mode 100644
index 0000000..d3b77c2
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/icons.eot differ
diff --git a/priv/static/dist/themes/default/assets/fonts/icons.svg b/priv/static/dist/themes/default/assets/fonts/icons.svg
new file mode 100644
index 0000000..5543afa
--- /dev/null
+++ b/priv/static/dist/themes/default/assets/fonts/icons.svg
@@ -0,0 +1,4938 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/priv/static/dist/themes/default/assets/fonts/icons.ttf b/priv/static/dist/themes/default/assets/fonts/icons.ttf
new file mode 100644
index 0000000..5b97903
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/icons.ttf differ
diff --git a/priv/static/dist/themes/default/assets/fonts/icons.woff b/priv/static/dist/themes/default/assets/fonts/icons.woff
new file mode 100644
index 0000000..beec791
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/icons.woff differ
diff --git a/priv/static/dist/themes/default/assets/fonts/icons.woff2 b/priv/static/dist/themes/default/assets/fonts/icons.woff2
new file mode 100644
index 0000000..978a681
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/icons.woff2 differ
diff --git a/priv/static/dist/themes/default/assets/fonts/outline-icons.eot b/priv/static/dist/themes/default/assets/fonts/outline-icons.eot
new file mode 100644
index 0000000..38cf251
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/outline-icons.eot differ
diff --git a/priv/static/dist/themes/default/assets/fonts/outline-icons.svg b/priv/static/dist/themes/default/assets/fonts/outline-icons.svg
new file mode 100644
index 0000000..13180f6
--- /dev/null
+++ b/priv/static/dist/themes/default/assets/fonts/outline-icons.svg
@@ -0,0 +1,803 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/priv/static/dist/themes/default/assets/fonts/outline-icons.ttf b/priv/static/dist/themes/default/assets/fonts/outline-icons.ttf
new file mode 100644
index 0000000..abe99e2
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/outline-icons.ttf differ
diff --git a/priv/static/dist/themes/default/assets/fonts/outline-icons.woff b/priv/static/dist/themes/default/assets/fonts/outline-icons.woff
new file mode 100644
index 0000000..24de566
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/outline-icons.woff differ
diff --git a/priv/static/dist/themes/default/assets/fonts/outline-icons.woff2 b/priv/static/dist/themes/default/assets/fonts/outline-icons.woff2
new file mode 100644
index 0000000..7e0118e
Binary files /dev/null and b/priv/static/dist/themes/default/assets/fonts/outline-icons.woff2 differ
diff --git a/priv/static/dist/themes/default/assets/images/flags.png b/priv/static/dist/themes/default/assets/images/flags.png
new file mode 100644
index 0000000..cdd33c3
Binary files /dev/null and b/priv/static/dist/themes/default/assets/images/flags.png differ
diff --git a/priv/static/fonts/brand-icons.eot b/priv/static/fonts/brand-icons.eot
new file mode 100644
index 0000000..a1bc094
Binary files /dev/null and b/priv/static/fonts/brand-icons.eot differ
diff --git a/priv/static/fonts/brand-icons.ttf b/priv/static/fonts/brand-icons.ttf
new file mode 100644
index 0000000..948a2a6
Binary files /dev/null and b/priv/static/fonts/brand-icons.ttf differ
diff --git a/priv/static/fonts/brand-icons.woff b/priv/static/fonts/brand-icons.woff
new file mode 100644
index 0000000..2a89d52
Binary files /dev/null and b/priv/static/fonts/brand-icons.woff differ
diff --git a/priv/static/fonts/brand-icons.woff2 b/priv/static/fonts/brand-icons.woff2
new file mode 100644
index 0000000..141a90a
Binary files /dev/null and b/priv/static/fonts/brand-icons.woff2 differ
diff --git a/priv/static/fonts/icons.eot b/priv/static/fonts/icons.eot
new file mode 100644
index 0000000..d3b77c2
Binary files /dev/null and b/priv/static/fonts/icons.eot differ
diff --git a/priv/static/fonts/icons.ttf b/priv/static/fonts/icons.ttf
new file mode 100644
index 0000000..5b97903
Binary files /dev/null and b/priv/static/fonts/icons.ttf differ
diff --git a/priv/static/fonts/icons.woff b/priv/static/fonts/icons.woff
new file mode 100644
index 0000000..beec791
Binary files /dev/null and b/priv/static/fonts/icons.woff differ
diff --git a/priv/static/fonts/icons.woff2 b/priv/static/fonts/icons.woff2
new file mode 100644
index 0000000..978a681
Binary files /dev/null and b/priv/static/fonts/icons.woff2 differ
diff --git a/priv/static/fonts/outline-icons.eot b/priv/static/fonts/outline-icons.eot
new file mode 100644
index 0000000..38cf251
Binary files /dev/null and b/priv/static/fonts/outline-icons.eot differ
diff --git a/priv/static/fonts/outline-icons.ttf b/priv/static/fonts/outline-icons.ttf
new file mode 100644
index 0000000..abe99e2
Binary files /dev/null and b/priv/static/fonts/outline-icons.ttf differ
diff --git a/priv/static/fonts/outline-icons.woff b/priv/static/fonts/outline-icons.woff
new file mode 100644
index 0000000..24de566
Binary files /dev/null and b/priv/static/fonts/outline-icons.woff differ
diff --git a/priv/static/fonts/outline-icons.woff2 b/priv/static/fonts/outline-icons.woff2
new file mode 100644
index 0000000..7e0118e
Binary files /dev/null and b/priv/static/fonts/outline-icons.woff2 differ
diff --git a/priv/static/images/brand-icons.svg b/priv/static/images/brand-icons.svg
new file mode 100644
index 0000000..2d4771e
--- /dev/null
+++ b/priv/static/images/brand-icons.svg
@@ -0,0 +1,3570 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/priv/static/images/flags.png b/priv/static/images/flags.png
new file mode 100644
index 0000000..cdd33c3
Binary files /dev/null and b/priv/static/images/flags.png differ
diff --git a/priv/static/images/icons.svg b/priv/static/images/icons.svg
new file mode 100644
index 0000000..5543afa
--- /dev/null
+++ b/priv/static/images/icons.svg
@@ -0,0 +1,4938 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/priv/static/images/outline-icons.svg b/priv/static/images/outline-icons.svg
new file mode 100644
index 0000000..13180f6
--- /dev/null
+++ b/priv/static/images/outline-icons.svg
@@ -0,0 +1,803 @@
+
+
+
+
+
+Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020
+ By Robert Madole
+Copyright (c) Font Awesome
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/priv/static/images/page_loading.gif b/priv/static/images/page_loading.gif
new file mode 100644
index 0000000..f864d5f
Binary files /dev/null and b/priv/static/images/page_loading.gif differ
diff --git a/priv/static/js/imagine_cms.js b/priv/static/js/imagine_cms.js
new file mode 100644
index 0000000..c8c008c
--- /dev/null
+++ b/priv/static/js/imagine_cms.js
@@ -0,0 +1,44 @@
+!function(n){var r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=n,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=14)}([function(e,t,n){e.exports=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,m=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),r=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),i=/Edge\/(\d+)/.exec(e),x=n||r||i,k=x&&(n?document.documentMode||6:+(i||r)[1]),g=!i&&/WebKit\//.test(e),o=g&&/Qt\/\d+\.\d+/.test(e),a=!i&&/Chrome\//.test(e),v=/Opera\//.test(e),c=/Apple Computer/.test(navigator.vendor),s=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),l=/PhantomJS/.test(e),u=!i&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),f=/Android/.test(e),d=u||f||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),b=u||/Mac/.test(t),h=/\bCrOS\b/.test(e),p=/win/i.test(t),y=v&&e.match(/Version\/(\d*\.\d*)/);if(y){y=Number(y[1])}if(y&&y>=15){v=false;g=true}var w=b&&(o||v&&(y==null||y<12.11)),C=m||x&&k>=9;function S(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var T=function(e,t){var n=e.className;var r=S(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}},A;function L(e){for(var t=e.childNodes.length;t>0;--t){e.removeChild(e.firstChild)}return e}function M(e,t){return L(e).appendChild(t)}function N(e,t,n,r){var i=document.createElement(e);if(n){i.className=n}if(r){i.style.cssText=r}if(typeof t=="string"){i.appendChild(document.createTextNode(t))}else if(t){for(var o=0;o=t){return a+(t-o)}a+=s-o;a+=n-a%n;o=s+1}}var j=function(){this.id=null;this.f=null;this.time=0;this.handler=H(this.onTimeout,this)};function W(e,t){for(var n=0;n=t){return r+Math.min(a,t-i)}i+=o-r;i+=n-i%n;r=o+1;if(i>=t){return r}}}var K=[""];function G(e){while(K.length<=e){K.push(X(K)+" ")}return K[e]}function X(e){return e[e.length-1]}function Y(e,t){var n=[];for(var r=0;r""&&(e.toUpperCase()!=e.toLowerCase()||ee.test(e))}function ne(e,t){if(!t){return te(e)}if(t.source.indexOf("\\w")>-1&&te(e)){return true}return t.test(e)}function re(e){for(var t in e){if(e.hasOwnProperty(t)&&e[t]){return false}}return true}var ie=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function oe(e){return e.charCodeAt(0)>=768&&ie.test(e)}function ae(e,t,n){while((n<0?t>0:tn?-1:1;for(;;){if(t==n){return t}var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t){return e(o)?t:n}if(e(o)){n=o}else{t=o+r}}}function le(e,t,n,r){if(!e){return r(t,n,"ltr",0)}var i=false;for(var o=0;ot||t==n&&a.to==t){r(Math.max(a.from,t),Math.min(a.to,n),a.level==1?"rtl":"ltr",o);i=true}}if(!i){r(t,n,"ltr")}}var ue=null;function ce(e,t,n){var r;ue=null;for(var i=0;it){return i}if(o.to==t){if(o.from!=o.to&&n=="before"){r=i}else{ue=i}}if(o.from==t){if(o.from!=o.to&&n!="before"){r=i}else{ue=i}}}return r!=null?r:ue}var fe=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";var n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function R(e){if(e<=247){return t.charAt(e)}else if(1424<=e&&e<=1524){return"R"}else if(1536<=e&&e<=1785){return n.charAt(e-1536)}else if(1774<=e&&e<=2220){return"r"}else if(8192<=e&&e<=8203){return"w"}else if(e==8204){return"b"}else{return"L"}}var j=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;var W=/[stwN]/,q=/[LRr]/,B=/[Lb1n]/,V=/[1n]/;function U(e,t,n){this.level=e;this.from=t;this.to=n}return function(e,t){var n=t=="ltr"?"L":"R";if(e.length==0||t=="ltr"&&!j.test(e)){return false}var r=e.length,i=[];for(var o=0;o-1){r[t]=i.slice(0,o).concat(i.slice(o+1))}}}}function ve(e,t){var n=me(e,t);if(!n.length){return}var r=Array.prototype.slice.call(arguments,2);for(var i=0;i0}function xe(e){e.prototype.on=function(e,t){pe(this,e,t)};e.prototype.off=function(e,t){ge(this,e,t)}}function ke(e){if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}}function Ce(e){if(e.stopPropagation){e.stopPropagation()}else{e.cancelBubble=true}}function Se(e){return e.defaultPrevented!=null?e.defaultPrevented:e.returnValue==false}function Te(e){ke(e);Ce(e)}function Ae(e){return e.target||e.srcElement}function Le(e){var t=e.which;if(t==null){if(e.button&1){t=1}else if(e.button&2){t=3}else if(e.button&4){t=2}}if(b&&e.ctrlKey&&t==1){t=3}return t}var Me=function(){if(x&&k<9){return false}var e=N("div");return"draggable"in e||"dragDrop"in e}(),De,Ee;function Ne(e){if(De==null){var t=N("span","");M(e,N("span",[t,document.createTextNode("x")]));if(e.firstChild.offsetHeight!=0){De=t.offsetWidth<=1&&t.offsetHeight>2&&!(x&&k<8)}}var n=De?N("span",""):N("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");n.setAttribute("cm-text","");return n}function Oe(e){if(Ee!=null){return Ee}var t=M(e,document.createTextNode("AخA"));var n=A(t,0,1).getBoundingClientRect();var r=A(t,1,2).getBoundingClientRect();L(e);if(!n||n.left==n.right){return false}return Ee=r.right-n.right<3}var Ie="\n\nb".split(/\n/).length!=3?function(e){var t=0,n=[],r=e.length;while(t<=r){var i=e.indexOf("\n",t);if(i==-1){i=e.length}var o=e.slice(t,e.charAt(i-1)=="\r"?i-1:i);var a=o.indexOf("\r");if(a!=-1){n.push(o.slice(0,a));t+=a+1}else{n.push(o);t=i+1}}return n}:function(e){return e.split(/\r\n?|\n/)},Pe=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return false}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}if(!t||t.parentElement()!=e){return false}return t.compareEndPoints("StartToEnd",t)!=0},Fe=function(){var e=N("div");if("oncopy"in e){return true}e.setAttribute("oncopy","return;");return typeof e.oncopy=="function"}(),He=null;function ze(e){if(He!=null){return He}var t=M(e,N("span","x"));var n=t.getBoundingClientRect();var r=A(t,0,1).getBoundingClientRect();return He=Math.abs(n.left-r.left)>1}var Re={},je={};function We(e,t){if(2=e.size){throw new Error("There is no line "+(t+e.first)+" in the document.")}var n=e;while(!n.lines){for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn){return it(n,Ye(e,n).text.length)}return dt(t,Ye(e,t.line).text.length)}function dt(e,t){var n=e.ch;if(n==null||n>t){return it(e.line,t)}else if(n<0){return it(e.line,0)}else{return e}}function ht(e,t){var n=[];for(var r=0;r=this.string.length},Xe.prototype.sol=function(){return this.pos==this.lineStart},Xe.prototype.peek=function(){return this.string.charAt(this.pos)||undefined},Xe.prototype.next=function(){if(this.post},Xe.prototype.eatSpace=function(){var e=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos))){++this.pos}return this.pos>e},Xe.prototype.skipToEnd=function(){this.pos=this.string.length},Xe.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1){this.pos=t;return true}},Xe.prototype.backUp=function(e){this.pos-=e},Xe.prototype.column=function(){if(this.lastColumnPos0){return null}if(o&&t!==false){this.pos+=o[0].length}return o}},Xe.prototype.current=function(){return this.string.slice(this.start,this.pos)},Xe.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Xe.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Xe.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var pt=function(e,t){this.state=e;this.lookAhead=t},mt=function(e,t,n,r){this.state=t;this.doc=e;this.line=n;this.maxLookAhead=r||0;this.baseTokens=null;this.baseTokenPos=1};function gt(t,n,r,e){var l=[t.state.modeGen],i={};Tt(t,n.text,t.doc.mode,r,function(e,t){return l.push(e,t)},i,e);var u=r.state;var o=function(e){r.baseTokens=l;var o=t.state.overlays[e],a=1,s=0;r.state=true;Tt(t,n.text,o.mode,r,function(e,t){var n=a;while(se){l.splice(a,1,e,l[a+1],r)}a+=2;s=Math.min(e,r)}if(!t){return}if(o.opaque){l.splice(n,a-n,e,"overlay "+t);a=n+2}else{for(;ne.options.maxHighlightLength&&_e(e.doc.mode,r.state);var o=gt(e,t,r);if(i){r.state=i}t.stateAfter=r.save(!i);t.styles=o.styles;if(o.classes){t.styleClasses=o.classes}else if(t.styleClasses){t.styleClasses=null}if(n===e.doc.highlightFrontier){e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier)}}return t.styles}function bt(n,r,e){var t=n.doc,i=n.display;if(!t.mode.startState){return new mt(t,true,r)}var o=At(n,r,e);var a=o>t.first&&Ye(t,o-1).stateAfter;var s=a?mt.fromSaved(t,a,o):new mt(t,Ge(t.mode),o);t.iter(o,r,function(e){yt(n,e.text,s);var t=s.line;e.stateAfter=t==r-1||t%5==0||t>=i.viewFrom&&tt.start){return o}}throw new Error("Mode "+e.name+" failed to advance stream.")}mt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);if(t!=null&&e>this.maxLookAhead){this.maxLookAhead=e}return t},mt.prototype.baseToken=function(e){if(!this.baseTokens){return null}while(this.baseTokens[this.baseTokenPos]<=e){this.baseTokenPos+=2}var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},mt.prototype.nextLine=function(){this.line++;if(this.maxLookAhead>0){this.maxLookAhead--}},mt.fromSaved=function(e,t,n){if(t instanceof pt){return new mt(e,_e(e.mode,t.state),n,t.lookAhead)}else{return new mt(e,_e(e.mode,t),n)}},mt.prototype.save=function(e){var t=e!==false?_e(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new pt(t,this.maxLookAhead):t};var kt=function(e,t,n){this.start=e.start;this.end=e.pos;this.string=e.current();this.type=t||null;this.state=n};function Ct(e,t,n,r){var i=e.doc,o=i.mode,a;t=ft(i,t);var s=Ye(i,t.line),l=bt(e,t.line,n);var u=new Xe(s.text,e.options.tabSize,l),c;if(r){c=[]}while((r||u.pose.options.maxHighlightLength){s=false;if(a){yt(e,t,r,c.pos)}c.pos=t.length;f=null}else{f=St(xt(n,c,r.state,d),o)}if(d){var h=d[0].name;if(h){f="m-"+(f?h+" "+f:h)}}if(!s||u!=f){while(la;--s){if(s<=o.first){return o.first}var l=Ye(o,s-1),u=l.stateAfter;if(u&&(!n||s+(u instanceof pt?u.lookAhead:0)<=o.modeFrontier)){return s}var c=R(l.text,null,e.options.tabSize);if(i==null||r>c){i=s-1;r=c}}return i}function Lt(e,t){e.modeFrontier=Math.min(e.modeFrontier,t);if(e.highlightFrontiern;r--){var i=Ye(e,r).stateAfter;if(i&&(!(i instanceof pt)||r+i.lookAhead=t:o.to>t);(r||(r=[])).push(new Ot(a,o.from,l?null:o.to))}}}return r}function zt(e,t,n){var r;if(e){for(var i=0;i=t:o.to>t);if(s||o.from==t&&a.type=="bookmark"&&(!n||o.marker.insertLeft)){var l=o.from==null||(a.inclusiveLeft?o.from<=t:o.from0&&s){for(var w=0;w0){continue}var c=[l,1],f=ot(u.from,s.from),d=ot(u.to,s.to);if(f<0||!a.inclusiveLeft&&!f){c.push({from:u.from,to:s.from})}if(d>0||!a.inclusiveRight&&!d){c.push({from:s.to,to:u.to})}i.splice.apply(i,c);l+=c.length-3}}return i}function qt(e){var t=e.markedSpans;if(!t){return}for(var n=0;nt)&&(!r||$t(r,o.marker)<0)){r=o.marker}}}return r}function Yt(e,t,n,r,i){var o=Ye(e,t);var a=Dt&&o.markedSpans;if(a){for(var s=0;s=0&&f<=0||c<=0&&f>=0){continue}if(c<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ot(u.to,n)>=0:ot(u.to,n)>0)||c>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ot(u.from,r)<=0:ot(u.from,r)<0)){return true}}}}function Qt(e){var t;while(t=Kt(e)){e=t.find(-1,true).line}return e}function Zt(e){var t;while(t=Gt(e)){e=t.find(1,true).line}return e}function Jt(e){var t,n;while(t=Gt(e)){e=t.find(1,true).line;(n||(n=[])).push(e)}return n}function en(e,t){var n=Ye(e,t),r=Qt(n);if(n==r){return t}return et(r)}function tn(e,t){if(t>e.lastLine()){return t}var n=Ye(e,t),r;if(!nn(e,n)){return t}while(r=Gt(n)){n=r.find(1,true).line}return et(n)+1}function nn(e,t){var n=Dt&&t.markedSpans;if(n){for(var r=void 0,i=0;in.maxLineLength){n.maxLineLength=t;n.maxLine=e}})}var ln=function(e,t,n){this.text=e;Bt(this,t);this.height=n?n(this):1};function un(e,t,n,r){e.text=t;if(e.stateAfter){e.stateAfter=null}if(e.styles){e.styles=null}if(e.order!=null){e.order=null}qt(e);Bt(e,n);var i=r?r(e):1;if(i!=e.height){Je(e,i)}}function cn(e){e.parent=null;qt(e)}ln.prototype.lineNo=function(){return et(this)},xe(ln);var fn={},dn={};function hn(e,t){if(!e||/^\s*$/.test(e)){return null}var n=t.addModeClass?dn:fn;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function pn(e,t){var n=D("span",null,null,g?"padding-right: .1px":null);var r={pre:D("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:false,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0;r.addToken=gn;if(Oe(e.display.measure)&&(a=de(o,e.doc.direction))){r.addToken=bn(r.addToken,a)}r.map=[];var s=t!=e.display.externalMeasured&&et(o);wn(o,r,vt(e,o,s));if(o.styleClasses){if(o.styleClasses.bgClass){r.bgClass=P(o.styleClasses.bgClass,r.bgClass||"")}if(o.styleClasses.textClass){r.textClass=P(o.styleClasses.textClass,r.textClass||"")}}if(r.map.length==0){r.map.push(0,0,r.content.appendChild(Ne(e.display.measure)))}if(i==0){t.measure.map=r.map;t.measure.cache={}}else{(t.measure.maps||(t.measure.maps=[])).push(r.map);(t.measure.caches||(t.measure.caches=[])).push({})}}if(g){var l=r.content.lastChild;if(/\bcm-tab\b/.test(l.className)||l.querySelector&&l.querySelector(".cm-tab")){r.content.className="cm-tab-wrap-hack"}}ve(e,"renderLine",e,t.line,r.pre);if(r.pre.className){r.textClass=P(r.pre.className,r.textClass||"")}return r}function mn(e){var t=N("span","•","cm-invalidchar");t.title="\\u"+e.charCodeAt(0).toString(16);t.setAttribute("aria-label",t.title);return t}function gn(e,t,n,r,i,o,a){if(!t){return}var s=e.splitSpaces?vn(t,e.trailingSpace):t;var l=e.cm.state.specialChars,u=false;var c;if(!l.test(t)){e.col+=t.length;c=document.createTextNode(s);e.map.push(e.pos,e.pos+t.length,c);if(x&&k<9){u=true}e.pos+=t.length}else{c=document.createDocumentFragment();var f=0;while(true){l.lastIndex=f;var d=l.exec(t);var h=d?d.index-f:t.length-f;if(h){var p=document.createTextNode(s.slice(f,f+h));if(x&&k<9){c.appendChild(N("span",[p]))}else{c.appendChild(p)}e.map.push(e.pos,e.pos+h,p);e.col+=h;e.pos+=h}if(!d){break}f+=h+1;var m=void 0;if(d[0]=="\t"){var g=e.cm.options.tabSize,v=g-e.col%g;m=c.appendChild(N("span",G(v),"cm-tab"));m.setAttribute("role","presentation");m.setAttribute("cm-text","\t");e.col+=v}else if(d[0]=="\r"||d[0]=="\n"){m=c.appendChild(N("span",d[0]=="\r"?"␍":"","cm-invalidchar"));m.setAttribute("cm-text",d[0]);e.col+=1}else{m=e.cm.options.specialCharPlaceholder(d[0]);m.setAttribute("cm-text",d[0]);if(x&&k<9){c.appendChild(N("span",[m]))}else{c.appendChild(m)}e.col+=1}e.map.push(e.pos,e.pos+1,m);e.pos++}}e.trailingSpace=s.charCodeAt(t.length-1)==32;if(n||r||i||u||o){var b=n||"";if(r){b+=r}if(i){b+=i}var y=N("span",[c],b,o);if(a){for(var w in a){if(a.hasOwnProperty(w)&&w!="style"&&w!="class"){y.setAttribute(w,a[w])}}}return e.content.appendChild(y)}e.content.appendChild(c)}function vn(e,t){if(e.length>1&&!/ /.test(e)){return e}var n=t,r="";for(var i=0;is&&u.from<=s){break}}if(u.to>=l){return f(e,t,n,r,i,o,a)}f(e,t.slice(0,u.to-s),n,r,null,o,a);r=null;t=t.slice(u.to-s);s=u.to}}}function yn(e,t,n,r){var i=!r&&n.widgetNode;if(i){e.map.push(e.pos,e.pos+t,i)}if(!r&&e.cm.display.input.needsContentAttribute){if(!i){i=e.content.appendChild(document.createElement("span"))}i.setAttribute("cm-marker",n.id)}if(i){e.cm.display.input.setUneditable(i);e.content.appendChild(i)}e.pos+=t;e.trailingSpace=false}function wn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(!r){for(var a=1;al||C.collapsed&&k.to==l&&k.from==l)){if(k.to!=null&&k.to!=l&&h>k.to){h=k.to;m=""}if(C.className){p+=" "+C.className}if(C.css){d=(d?d+";":"")+C.css}if(C.startStyle&&k.from==l){g+=" "+C.startStyle}if(C.endStyle&&k.to==h){(w||(w=[])).push(C.endStyle,k.to)}if(C.title){(b||(b={})).title=C.title}if(C.attributes){for(var S in C.attributes){(b||(b={}))[S]=C.attributes[S]}}if(C.collapsed&&(!v||$t(v.marker,C)<0)){v=k}}else if(k.from>l&&h>k.from){h=k.from}}if(w){for(var T=0;T=s){break}var L=Math.min(s,h);while(true){if(c){var M=l+c.length;if(!v){var D=M>L?c.slice(0,L-l):c;t.addToken(t,D,f?f+p:p,g,l+D.length==h?m:"",d,b)}if(M>=L){c=c.slice(L-l);l=L;break}l=M;g=""}c=i.slice(o,o=n[u++]);f=hn(n[u++],t.cm.options)}}}function xn(e,t,n){this.line=t;this.rest=Jt(t);this.size=this.rest?et(X(this.rest))-n+1:1;this.node=this.text=null;this.hidden=nn(e,t)}function kn(e,t,n){var r=[],i;for(var o=t;o2){o.push((l.bottom+u.top)/2-n.top)}}}o.push(n.bottom-n.top)}}function Qn(e,t,n){if(e.line==t){return{map:e.measure.map,cache:e.measure.cache}}for(var r=0;rn){return{map:e.measure.maps[i],cache:e.measure.caches[i],before:true}}}}function Zn(e,t){t=Qt(t);var n=et(t);var r=e.display.externalMeasured=new xn(e.doc,t,n);r.lineN=n;var i=r.built=pn(e,r);r.text=i.pre;M(e.display.lineMeasure,i.pre);return r}function Jn(e,t,n,r){return nr(e,tr(e,t),n,r)}function er(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt){o=l-s;i=o-1;if(t>=l){a="right"}}if(i!=null){r=e[u+2];if(s==l&&n==(r.insertLeft?"left":"right")){a=n}if(n=="left"&&i==0){while(u&&e[u-2]==e[u-3]&&e[u-1].insertLeft){r=e[(u-=3)+2];a="left"}}if(n=="right"&&i==l-s){while(u=0;i--){if((n=e[i]).left!=n.right){break}}}return n}function sr(e,t,n,r){var i=or(t.map,n,r);var o=i.node,a=i.start,s=i.end,l=i.collapse;var u;if(o.nodeType==3){for(var c=0;c<4;c++){while(a&&oe(t.line.text.charAt(i.coverStart+a))){--a}while(i.coverStart+s0){l=r="right"}var f;if(e.options.lineWrapping&&(f=o.getClientRects()).length>1){u=f[r=="right"?f.length-1:0]}else{u=o.getBoundingClientRect()}}if(x&&k<9&&!a&&(!u||!u.left&&!u.right)){var d=o.parentNode.getClientRects()[0];if(d){u={left:d.left,right:d.left+Dr(e.display),top:d.top,bottom:d.bottom}}else{u=rr}}var h=u.top-t.rect.top,p=u.bottom-t.rect.top;var m=(h+p)/2;var g=t.view.measure.heights;var v=0;for(;v=o.text.length){t=o.text.length;n="before"}else if(t<=0){t=0;n="after"}if(!u){return l(n=="before"?t-1:t,n=="before")}function c(e,t,n){var r=u[t],i=r.level==1;return l(n?e-1:e,i!=n)}var f=ce(u,t,n);var d=ue;var h=c(t,f,n=="before");if(d!=null){h.other=c(t,d,n!="before")}return h}function yr(e,t){var n=0;t=ft(e.doc,t);if(!e.options.lineWrapping){n=Dr(e.display)*t.ch}var r=Ye(e.doc,t.line);var i=on(r)+Un(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function wr(e,t,n,r,i){var o=it(e,t,n);o.xRel=i;if(r){o.outside=r}return o}function xr(e,t,n){var r=e.doc;n+=e.display.viewOffset;if(n<0){return wr(r.first,0,null,-1,-1)}var i=tt(r,n),o=r.first+r.size-1;if(i>o){return wr(r.first+r.size-1,Ye(r,o).text.length,null,1,1)}if(t<0){t=0}var a=Ye(r,i);for(;;){var s=Tr(e,a,i,t,n);var l=Xt(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l){return s}var u=l.find(1);if(u.line==i){return u}a=Ye(r,i=u.line)}}function kr(t,e,n,r){r-=pr(e);var i=e.text.length;var o=se(function(e){return nr(t,n,e-1).bottom<=r},i,0);i=se(function(e){return nr(t,n,e).top>r},o,i);return{begin:o,end:i}}function Cr(e,t,n,r){if(!n){n=tr(e,t)}var i=mr(e,t,nr(e,n,r),"line").top;return kr(e,t,n,i)}function Sr(e,t,n,r){return e.bottom<=n?false:e.top>n?true:(r?e.left:e.right)>t}function Tr(n,e,t,r,i){i-=on(e);var o=tr(n,e);var a=pr(e);var s=0,l=e.text.length,u=true;var c=de(e,n.doc.direction);if(c){var f=(n.options.lineWrapping?Lr:Ar)(n,e,t,o,c,r,i);u=f.level!=1;s=u?f.from:f.to-1;l=u?f.to:f.from-1}var d=null,h=null;var p=se(function(e){var t=nr(n,o,e);t.top+=a;t.bottom+=a;if(!Sr(t,r,i,false)){return false}if(t.top<=i&&t.left<=r){d=e;h=t}return true},s,l);var m,g,v=false;if(h){var b=r-h.left=w.bottom?1:0}p=ae(e.text,p,1);return wr(t,p,g,v,r-m)}function Ar(r,i,o,a,s,l,u){var e=se(function(e){var t=s[e],n=t.level!=1;return Sr(br(r,it(o,n?t.to:t.from,n?"before":"after"),"line",i,a),l,u,true)},0,s.length-1);var t=s[e];if(e>0){var n=t.level!=1;var c=br(r,it(o,n?t.from:t.to,n?"after":"before"),"line",i,a);if(Sr(c,l,u,true)&&c.top>u){t=s[e-1]}}return t}function Lr(e,t,n,r,i,o,a){var s=kr(e,t,r,a);var l=s.begin;var u=s.end;if(/\s/.test(t.text.charAt(u-1))){u--}var c=null,f=null;for(var d=0;d=u||h.to<=l){continue}var p=h.level!=1;var m=nr(e,r,p?Math.min(u,h.to)-1:Math.max(l,h.from)).right;var g=mg){c=h;f=g}}if(!c){c=i[i.length-1]}if(c.fromu){c={from:c.from,to:u,level:c.level}}return c}function Mr(e){if(e.cachedTextHeight!=null){return e.cachedTextHeight}if(ir==null){ir=N("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t){ir.appendChild(document.createTextNode("x"));ir.appendChild(N("br"))}ir.appendChild(document.createTextNode("x"))}M(e.measure,ir);var n=ir.offsetHeight/50;if(n>3){e.cachedTextHeight=n}L(e.measure);return n||1}function Dr(e){if(e.cachedCharWidth!=null){return e.cachedCharWidth}var t=N("span","xxxxxxxxxx");var n=N("pre",[t],"CodeMirror-line-like");M(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;if(i>2){e.cachedCharWidth=i}return i||10}function Er(e){var t=e.display,n={},r={};var i=t.gutters.clientLeft;for(var o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i;r[s]=o.clientWidth}return{fixedPos:Nr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function Nr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Or(r){var i=Mr(r.display),o=r.options.lineWrapping;var a=o&&Math.max(5,r.display.scroller.clientWidth/Dr(r.display)-3);return function(e){if(nn(r.doc,e)){return 0}var t=0;if(e.widgets){for(var n=0;n0&&(u=Ye(e.doc,l.line).text).length==l.ch){var c=R(u,u.length,e.options.tabSize)-u.length;l=it(l.line,Math.max(0,Math.round((o-_n(e.display).left)/Dr(e.display))-c))}return l}function Fr(e,t){if(t>=e.display.viewTo){return null}t-=e.display.viewFrom;if(t<0){return null}var n=e.display.view;for(var r=0;rt)){i.updateLineNumbers=t}e.curOp.viewChanged=true;if(t>=i.viewTo){if(Dt&&en(e.doc,t)i.viewFrom){Rr(e)}else{i.viewFrom+=r;i.viewTo+=r}}else if(t<=i.viewFrom&&n>=i.viewTo){Rr(e)}else if(t<=i.viewFrom){var o=jr(e,n,n+r,1);if(o){i.view=i.view.slice(o.index);i.viewFrom=o.lineN;i.viewTo+=r}else{Rr(e)}}else if(n>=i.viewTo){var a=jr(e,t,t,-1);if(a){i.view=i.view.slice(0,a.index);i.viewTo=a.lineN}else{Rr(e)}}else{var s=jr(e,t,t,-1);var l=jr(e,n,n+r,1);if(s&&l){i.view=i.view.slice(0,s.index).concat(kn(e,s.lineN,l.lineN)).concat(i.view.slice(l.index));i.viewTo+=r}else{Rr(e)}}var u=i.externalMeasured;if(u){if(n=i.lineN&&t=r.viewTo){return}var o=r.view[Fr(e,t)];if(o.node==null){return}var a=o.changes||(o.changes=[]);if(W(a,n)==-1){a.push(n)}}function Rr(e){e.display.viewFrom=e.display.viewTo=e.doc.first;e.display.view=[];e.display.viewOffset=0}function jr(e,t,n,r){var i=Fr(e,t),o,a=e.display.view;if(!Dt||n==e.doc.first+e.doc.size){return{index:i,lineN:n}}var s=e.display.viewFrom;for(var l=0;l0){if(i==a.length-1){return null}o=s+a[i].size-t;i++}else{o=s-t}t+=o;n+=o}while(en(e.doc,n)!=n){if(i==(r<0?0:a.length-1)){return null}n+=r*a[i-(r<0?1:0)].size;i+=r}return{index:i,lineN:n}}function Wr(e,t,n){var r=e.display,i=r.view;if(i.length==0||t>=r.viewTo||n<=r.viewFrom){r.view=kn(e,t,n);r.viewFrom=t}else{if(r.viewFrom>t){r.view=kn(e,t,r.viewFrom).concat(r.view)}else if(r.viewFromn){r.view=r.view.slice(0,Fr(e,n))}}r.viewTo=n}function qr(e){var t=e.display.view,n=0;for(var r=0;r=e.display.viewTo||s.to().line0){t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate)}else if(e.options.cursorBlinkRate<0){t.cursorDiv.style.visibility="hidden"}}function Gr(e){if(!e.state.focused){e.display.input.focus();Yr(e)}}function Xr(e){e.state.delayingBlurEvent=true;setTimeout(function(){if(e.state.delayingBlurEvent){e.state.delayingBlurEvent=false;Qr(e)}},100)}function Yr(e,t){if(e.state.delayingBlurEvent){e.state.delayingBlurEvent=false}if(e.options.readOnly=="nocursor"){return}if(!e.state.focused){ve(e,"focus",e,t);e.state.focused=true;I(e.display.wrapper,"CodeMirror-focused");if(!e.curOp&&e.display.selForContextMenu!=e.doc.sel){e.display.input.reset();if(g){setTimeout(function(){return e.display.input.reset(true)},20)}}e.display.input.receivedFocus()}Kr(e)}function Qr(e,t){if(e.state.delayingBlurEvent){return}if(e.state.focused){ve(e,"blur",e,t);e.state.focused=false;T(e.display.wrapper,"CodeMirror-focused")}clearInterval(e.display.blinker);setTimeout(function(){if(!e.state.focused){e.display.shift=false}},150)}function Zr(e){var t=e.display;var n=t.lineDiv.offsetTop;for(var r=0;r.005||c<-.005){Je(i.line,a);Jr(i.line);if(i.rest){for(var f=0;fe.display.sizerWidth){var d=Math.ceil(s/Dr(e.display));if(d>e.display.maxLineLength){e.display.maxLineLength=d;e.display.maxLine=i.line;e.display.maxLineChanged=true}}}}function Jr(e){if(e.widgets){for(var t=0;t=a){o=tt(t,on(Ye(t,l))-e.wrapper.clientHeight);a=l}}return{from:o,to:Math.max(a,o+1)}}function ti(e,t){if(be(e,"scrollCursorIntoView")){return}var n=e.display,r=n.sizer.getBoundingClientRect(),i=null;if(t.top+r.top<0){i=true}else if(t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)){i=false}if(i!=null&&!l){var o=N("div","",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Un(e.display))+"px;\n height: "+(t.bottom-t.top+Kn(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o);o.scrollIntoView(i);e.display.lineSpace.removeChild(o)}}function ni(e,t,n,r){if(r==null){r=0}var i;if(!e.options.lineWrapping&&t==n){t=t.ch?it(t.line,t.sticky=="before"?t.ch-1:t.ch,"after"):t;n=t.sticky=="before"?it(t.line,t.ch+1,"before"):t}for(var o=0;o<5;o++){var a=false;var s=br(e,t);var l=!n||n==t?s:br(e,n);i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r};var u=ii(e,i);var c=e.doc.scrollTop,f=e.doc.scrollLeft;if(u.scrollTop!=null){fi(e,u.scrollTop);if(Math.abs(e.doc.scrollTop-c)>1){a=true}}if(u.scrollLeft!=null){hi(e,u.scrollLeft);if(Math.abs(e.doc.scrollLeft-f)>1){a=true}}if(!a){break}}return i}function ri(e,t){var n=ii(e,t);if(n.scrollTop!=null){fi(e,n.scrollTop)}if(n.scrollLeft!=null){hi(e,n.scrollLeft)}}function ii(e,t){var n=e.display,r=Mr(e.display);if(t.top<0){t.top=0}var i=e.curOp&&e.curOp.scrollTop!=null?e.curOp.scrollTop:n.scroller.scrollTop;var o=Xn(e),a={};if(t.bottom-t.top>o){t.bottom=t.top+o}var s=e.doc.height+$n(n);var l=t.tops-r;if(t.topi+o){var c=Math.min(t.top,(u?s:t.bottom)-o);if(c!=i){a.scrollTop=c}}var f=e.curOp&&e.curOp.scrollLeft!=null?e.curOp.scrollLeft:n.scroller.scrollLeft;var d=Gn(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0);var h=t.right-t.left>d;if(h){t.right=t.left+d}if(t.left<10){a.scrollLeft=0}else if(t.leftd+f-3){a.scrollLeft=t.right+(h?0:10)-d}return a}function oi(e,t){if(t==null){return}ui(e);e.curOp.scrollTop=(e.curOp.scrollTop==null?e.doc.scrollTop:e.curOp.scrollTop)+t}function ai(e){ui(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function si(e,t,n){if(t!=null||n!=null){ui(e)}if(t!=null){e.curOp.scrollLeft=t}if(n!=null){e.curOp.scrollTop=n}}function li(e,t){ui(e);e.curOp.scrollToPos=t}function ui(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=yr(e,t.from),r=yr(e,t.to);ci(e,n,r,t.margin)}}function ci(e,t,n,r){var i=ii(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});si(e,i.scrollLeft,i.scrollTop)}function fi(e,t){if(Math.abs(e.doc.scrollTop-t)<2){return}if(!m){Bi(e,{top:t})}di(e,t,true);if(m){Bi(e)}Pi(e,100)}function di(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t));if(e.display.scroller.scrollTop==t&&!n){return}e.doc.scrollTop=t;e.display.scrollbars.setScrollTop(t);if(e.display.scroller.scrollTop!=t){e.display.scroller.scrollTop=t}}function hi(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth));if((n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r){return}e.doc.scrollLeft=t;_i(e);if(e.display.scroller.scrollLeft!=t){e.display.scroller.scrollLeft=t}e.display.scrollbars.setScrollLeft(t)}function pi(e){var t=e.display,n=t.gutters.offsetWidth;var r=Math.round(e.doc.height+$n(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Kn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var mi=function(e,t,n){this.cm=n;var r=this.vert=N("div",[N("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar");var i=this.horiz=N("div",[N("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1;e(r);e(i);pe(r,"scroll",function(){if(r.clientHeight){t(r.scrollTop,"vertical")}});pe(i,"scroll",function(){if(i.clientWidth){t(i.scrollLeft,"horizontal")}});this.checkedZeroWidth=false;if(x&&k<8){this.horiz.style.minHeight=this.vert.style.minWidth="18px"}};mi.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1;var n=e.scrollHeight>e.clientHeight+1;var r=e.nativeBarWidth;if(n){this.vert.style.display="block";this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else{this.vert.style.display="";this.vert.firstChild.style.height="0"}if(t){this.horiz.style.display="block";this.horiz.style.right=n?r+"px":"0";this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else{this.horiz.style.display="";this.horiz.firstChild.style.width="0"}if(!this.checkedZeroWidth&&e.clientHeight>0){if(r==0){this.zeroWidthHack()}this.checkedZeroWidth=true}return{right:n?r:0,bottom:t?r:0}},mi.prototype.setScrollLeft=function(e){if(this.horiz.scrollLeft!=e){this.horiz.scrollLeft=e}if(this.disableHoriz){this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")}},mi.prototype.setScrollTop=function(e){if(this.vert.scrollTop!=e){this.vert.scrollTop=e}if(this.disableVert){this.enableZeroWidthBar(this.vert,this.disableVert,"vert")}},mi.prototype.zeroWidthHack=function(){var e=b&&!s?"12px":"18px";this.horiz.style.height=this.vert.style.width=e;this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none";this.disableHoriz=new j;this.disableVert=new j},mi.prototype.enableZeroWidthBar=function(n,r,i){n.style.pointerEvents="auto";function o(){var e=n.getBoundingClientRect();var t=i=="vert"?document.elementFromPoint(e.right-1,(e.top+e.bottom)/2):document.elementFromPoint((e.right+e.left)/2,e.bottom-1);if(t!=n){n.style.pointerEvents="none"}else{r.set(1e3,o)}}r.set(1e3,o)},mi.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz);e.removeChild(this.vert)};var gi=function(){};function vi(e,t){if(!t){t=pi(e)}var n=e.display.barWidth,r=e.display.barHeight;bi(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++){if(n!=e.display.barWidth&&e.options.lineWrapping){Zr(e)}bi(e,pi(e));n=e.display.barWidth;r=e.display.barHeight}}function bi(e,t){var n=e.display;var r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px";n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px";n.heightForcer.style.borderBottom=r.bottom+"px solid transparent";if(r.right&&r.bottom){n.scrollbarFiller.style.display="block";n.scrollbarFiller.style.height=r.bottom+"px";n.scrollbarFiller.style.width=r.right+"px"}else{n.scrollbarFiller.style.display=""}if(r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter){n.gutterFiller.style.display="block";n.gutterFiller.style.height=r.bottom+"px";n.gutterFiller.style.width=t.gutterWidth+"px"}else{n.gutterFiller.style.display=""}}gi.prototype.update=function(){return{bottom:0,right:0}},gi.prototype.setScrollLeft=function(){},gi.prototype.setScrollTop=function(){},gi.prototype.clear=function(){};var yi={native:mi,null:gi};function wi(n){if(n.display.scrollbars){n.display.scrollbars.clear();if(n.display.scrollbars.addClass){T(n.display.wrapper,n.display.scrollbars.addClass)}}n.display.scrollbars=new yi[n.options.scrollbarStyle](function(e){n.display.wrapper.insertBefore(e,n.display.scrollbarFiller);pe(e,"mousedown",function(){if(n.state.focused){setTimeout(function(){return n.display.input.focus()},0)}});e.setAttribute("cm-not-content","true")},function(e,t){if(t=="horizontal"){hi(n,e)}else{fi(n,e)}},n);if(n.display.scrollbars.addClass){I(n.display.wrapper,n.display.scrollbars.addClass)}}var xi=0;function ki(e){e.curOp={cm:e,viewChanged:false,startHeight:e.doc.height,forceUpdate:false,updateInput:0,typing:false,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:false,updateMaxLine:false,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:false,id:++xi};Sn(e.curOp)}function Ci(e){var t=e.curOp;if(t){An(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping;e.update=e.mustUpdate&&new Hi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Ai(e){e.updatedDisplay=e.mustUpdate&&Wi(e.cm,e.update)}function Li(e){var t=e.cm,n=t.display;if(e.updatedDisplay){Zr(t)}e.barMeasure=pi(t);if(n.maxLineChanged&&!t.options.lineWrapping){e.adjustWidthTo=Jn(t,n.maxLine,n.maxLine.text.length).left+3;t.display.sizerWidth=e.adjustWidthTo;e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Kn(t)+t.display.barWidth);e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Gn(t))}if(e.updatedDisplay||e.selectionChanged){e.preparedSelection=n.input.prepareSelection()}}function Mi(e){var t=e.cm;if(e.adjustWidthTo!=null){t.display.sizer.style.minWidth=e.adjustWidthTo+"px";if(e.maxScrollLeft=l.display.viewTo){return}var c=+new Date+l.options.workTime;var f=bt(l,u.highlightFrontier);var d=[];u.iter(f.line,Math.min(u.first+u.size,l.display.viewTo+500),function(e){if(f.line>=l.display.viewFrom){var t=e.styles;var n=e.text.length>l.options.maxHighlightLength?_e(u.mode,f.state):null;var r=gt(l,e,f,true);if(n){f.state=n}e.styles=r.styles;var i=e.styleClasses,o=r.classes;if(o){e.styleClasses=o}else if(i){e.styleClasses=null}var a=!t||t.length!=e.styles.length||i!=o&&(!i||!o||i.bgClass!=o.bgClass||i.textClass!=o.textClass);for(var s=0;!a&&sc){Pi(l,l.options.workDelay);return true}});u.highlightFrontier=f.line;u.modeFrontier=Math.max(u.modeFrontier,f.line);if(d.length){Ei(l,function(){for(var e=0;e=n.viewFrom&&t.visible.to<=n.viewTo&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&qr(e)==0){return false}if(Ki(e)){Rr(e);t.dims=Er(e)}var i=r.first+r.size;var o=Math.max(t.visible.from-e.options.viewportMargin,r.first);var a=Math.min(i,t.visible.to+e.options.viewportMargin);if(n.viewFroma&&n.viewTo-a<20){a=Math.min(i,n.viewTo)}if(Dt){o=en(e.doc,o);a=tn(e.doc,a)}var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;Wr(e,o,a);n.viewOffset=on(Ye(e.doc,n.viewFrom));e.display.mover.style.top=n.viewOffset+"px";var l=qr(e);if(!s&&l==0&&!t.force&&n.renderedView==n.view&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo)){return false}var u=Ri(e);if(l>4){n.lineDiv.style.display="none"}Vi(e,n.updateLineNumbers,t.dims);if(l>4){n.lineDiv.style.display=""}n.renderedView=n.view;ji(u);L(n.cursorDiv);L(n.selectionDiv);n.gutters.style.height=n.sizer.style.minHeight=0;if(s){n.lastWrapHeight=t.wrapperHeight;n.lastWrapWidth=t.wrapperWidth;Pi(e,400)}n.updateLineNumbers=null;return true}function qi(e,t){var n=t.viewport;for(var r=true;;r=false){if(!r||!e.options.lineWrapping||t.oldDisplayWidth==Gn(e)){if(n&&n.top!=null){n={top:Math.min(e.doc.height+$n(e.display)-Xn(e),n.top)}}t.visible=ei(e.display,e.doc,n);if(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo){break}}else if(r){t.visible=ei(e.display,e.doc,n)}if(!Wi(e,t)){break}Zr(e);var i=pi(e);Br(e);vi(e,i);$i(e,i);t.force=false}t.signal(e,"update",e);if(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo){t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo);e.display.reportedViewFrom=e.display.viewFrom;e.display.reportedViewTo=e.display.viewTo}}function Bi(e,t){var n=new Hi(e,t);if(Wi(e,n)){Zr(e);qi(e,n);var r=pi(e);Br(e);vi(e,r);$i(e,r);n.finish()}}function Vi(n,e,t){var r=n.display,i=n.options.lineNumbers;var o=r.lineDiv,a=o.firstChild;function s(e){var t=e.nextSibling;if(g&&b&&n.display.currentWheelTarget==e){e.style.display="none"}else{e.parentNode.removeChild(e)}return t}var l=r.view,u=r.viewFrom;for(var c=0;c-1){h=false}En(n,f,u,t)}if(h){L(f.lineNumber);f.lineNumber.appendChild(document.createTextNode(rt(n.options,u)))}a=f.node.nextSibling}u+=f.size}while(a){a=s(a)}}function Ui(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px"}function $i(e,t){e.display.sizer.style.minHeight=t.docHeight+"px";e.display.heightForcer.style.top=t.docHeight+"px";e.display.gutters.style.height=t.docHeight+e.display.barHeight+Kn(e)+"px"}function _i(e){var t=e.display,n=t.view;if(!t.alignWidgets&&(!t.gutters.firstChild||!e.options.fixedGutter)){return}var r=Nr(t)-t.scroller.scrollLeft+e.doc.scrollLeft;var i=t.gutters.offsetWidth,o=r+"px";for(var a=0;aa.clientWidth;var l=a.scrollHeight>a.clientHeight;if(!(r&&s||i&&l)){return}if(i&&b&&g){e:for(var u=t.target,c=o.view;u!=a;u=u.parentNode){for(var f=0;f=0&&ot(e,r.to())<=0){return n}}return-1};var io=function(e,t){this.anchor=e;this.head=t};function oo(e,t,n){var r=e&&e.options.selectionsMayTouch;var i=t[n];t.sort(function(e,t){return ot(e.from(),t.from())});n=W(t,i);for(var o=1;o0:l>=0){var u=ut(s.from(),a.from()),c=lt(s.to(),a.to());var f=s.empty()?a.from()==a.head:s.from()==s.head;if(o<=n){--n}t.splice(--o,2,new io(f?c:u,f?u:c))}}return new ro(t,n)}function ao(e,t){return new ro([new io(e,t||e)],0)}function so(e){if(!e.text){return e.to}return it(e.from.line+e.text.length-1,X(e.text).length+(e.text.length==1?e.from.ch:0))}function lo(e,t){if(ot(e,t.from)<0){return e}if(ot(e,t.to)<=0){return so(t)}var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;if(e.line==t.to.line){r+=so(t).ch-t.to.ch}return it(n,r)}function uo(e,t){var n=[];for(var r=0;r1){e.remove(s.line+1,p-1)}e.insert(s.line+1,v)}Mn(e,"change",e,r)}function vo(e,a,s){function l(e,t,n){if(e.linked){for(var r=0;r1&&!e.done[e.done.length-2].ranges){e.done.pop();return X(e.done)}}function To(e,t,n,r){var i=e.history;i.undone.length=0;var o=+new Date,a;var s;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&(t.origin.charAt(0)=="+"&&i.lastModTime>o-(e.cm?e.cm.options.historyEventDelay:500)||t.origin.charAt(0)=="*"))&&(a=So(i,i.lastOp==r))){s=X(a.changes);if(ot(t.from,t.to)==0&&ot(t.from,s.to)==0){s.to=so(t)}else{a.changes.push(ko(e,t))}}else{var l=X(i.done);if(!l||!l.ranges){Mo(e.sel,i.done)}a={changes:[ko(e,t)],generation:i.generation};i.done.push(a);while(i.done.length>i.undoDepth){i.done.shift();if(!i.done[0].ranges){i.done.shift()}}}i.done.push(n);i.generation=++i.maxGeneration;i.lastModTime=i.lastSelTime=o;i.lastOp=i.lastSelOp=r;i.lastOrigin=i.lastSelOrigin=t.origin;if(!s){ve(e,"historyAdded")}}function Ao(e,t,n,r){var i=t.charAt(0);return i=="*"||i=="+"&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Lo(e,t,n,r){var i=e.history,o=r&&r.origin;if(n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||Ao(e,o,X(i.done),t))){i.done[i.done.length-1]=t}else{Mo(t,i.done)}i.lastSelTime=+new Date;i.lastSelOrigin=o;i.lastSelOp=n;if(r&&r.clearRedo!==false){Co(i.undone)}}function Mo(e,t){var n=X(t);if(!(n&&n.ranges&&n.equals(e))){t.push(e)}}function Do(t,n,e,r){var i=n["spans_"+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,r),function(e){if(e.markedSpans){(i||(i=n["spans_"+t.id]={}))[o]=e.markedSpans}++o})}function Eo(e){if(!e){return null}var t;for(var n=0;n-1){X(s)[f]=u[f];delete u[f]}}}}}}return r}function Po(e,t,n,r){if(r){var i=e.anchor;if(n){var o=ot(t,i)<0;if(o!=ot(n,i)<0){i=t;t=n}else if(o!=ot(t,n)<0){t=n}}return new io(i,t)}else{return new io(n||t,t)}}function Fo(e,t,n,r,i){if(i==null){i=e.cm&&(e.cm.display.shift||e.extend)}qo(e,new ro([Po(e.sel.primary(),t,n,i)],0),r)}function Ho(e,t,n){var r=[];var i=e.cm&&(e.cm.display.shift||e.extend);for(var o=0;o=t.ch:s.to>t.ch))){if(i){ve(l,"beforeCursorEnter");if(l.explicitlyCleared){if(!o.markedSpans){break}else{--a;continue}}}if(!l.atomic){continue}if(n){var f=l.find(r<0?1:-1),d=void 0;if(r<0?c:u){f=Go(e,f,-r,f&&f.line==t.line?o:null)}if(f&&f.line==t.line&&(d=ot(f,n))&&(r<0?d<0:d>0)){return _o(e,f,t,r,i)}}var h=l.find(r<0?-1:1);if(r<0?u:c){h=Go(e,h,r,h.line==t.line?o:null)}return h?_o(e,h,t,r,i):null}}}return t}function Ko(e,t,n,r,i){var o=r||1;var a=_o(e,t,n,o,i)||!i&&_o(e,t,n,o,true)||_o(e,t,n,-o,i)||!i&&_o(e,t,n,-o,true);if(!a){e.cantEdit=true;return it(e.first,0)}return a}function Go(e,t,n,r){if(n<0&&t.ch==0){if(t.line>e.first){return ft(e,it(t.line-1))}else{return null}}else if(n>0&&t.ch==(r||Ye(e,t.line)).text.length){if(t.line=0;--i){Zo(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin})}}else{Zo(e,t)}}function Zo(e,n){if(n.text.length==1&&n.text[0]==""&&ot(n.from,n.to)==0){return}var t=uo(e,n);To(e,n,t,e.cm?e.cm.curOp.id:NaN);ta(e,n,t,Rt(e,n));var r=[];vo(e,function(e,t){if(!t&&W(r,e.history)==-1){aa(e.history,n);r.push(e.history)}ta(e,n,null,Rt(e,n))})}function Jo(i,o,e){var t=i.cm&&i.cm.state.suppressEdits;if(t&&!e){return}var n=i.history,a,r=i.sel;var s=o=="undo"?n.done:n.undone,l=o=="undo"?n.undone:n.done;var u=0;for(;u=0;--h){var p=d(h);if(p)return p.v}}function ea(e,t){if(t==0){return}e.first+=t;e.sel=new ro(Y(e.sel.ranges,function(e){return new io(it(e.anchor.line+t,e.anchor.ch),it(e.head.line+t,e.head.ch))}),e.sel.primIndex);if(e.cm){Hr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine()){return}if(t.from.lineo){t={from:t.from,to:it(o,Ye(e,o).text.length),text:[t.text[0]],origin:t.origin}}t.removed=Qe(e,t.from,t.to);if(!n){n=uo(e,t)}if(e.cm){na(e.cm,t,r)}else{go(e,t,r)}Bo(e,n,V);if(e.cantEdit&&Ko(e,it(e.firstLine(),0))){e.cantEdit=false}}function na(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to;var s=false,l=o.line;if(!e.options.lineWrapping){l=et(Qt(Ye(r,o.line)));r.iter(l,a.line+1,function(e){if(e==i.maxLine){s=true;return true}})}if(r.sel.contains(t.from,t.to)>-1){ye(e)}go(r,t,n,Or(e));if(!e.options.lineWrapping){r.iter(l,o.line+t.text.length,function(e){var t=an(e);if(t>i.maxLineLength){i.maxLine=e;i.maxLineLength=t;i.maxLineChanged=true;s=false}});if(s){e.curOp.updateMaxLine=true}}Lt(r,o.line);Pi(e,400);var u=t.text.length-(a.line-o.line)-1;if(t.full){Hr(e)}else if(o.line==a.line&&t.text.length==1&&!mo(e.doc,t)){zr(e,o.line,"text")}else{Hr(e,o.line,a.line+1,u)}var c=we(e,"changes"),f=we(e,"change");if(f||c){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};if(f){Mn(e,"change",e,d)}if(c){(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}}e.display.selForContextMenu=null}function ra(e,t,n,r,i){var o;if(!r){r=n}if(ot(r,n)<0){o=[r,n],n=o[0],r=o[1]}if(typeof t=="string"){t=e.splitLines(t)}Qo(e,{from:n,to:r,text:t,origin:i})}function ia(e,t,n,r){if(n1||!(this.children[0]instanceof la))){var s=[];this.collapse(s);this.children=[new la(s)];this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){var a=i.lines.length%25+25;for(var s=a;s10);e.parent.maybeSpill()},iterN:function(e,t,n){for(var r=0;r0||a==0&&o.clearWhenEmpty!==false){return o}if(o.replacedWith){o.collapsed=true;o.widgetNode=D("span",[o.replacedWith],"CodeMirror-widget");if(!e.handleMouseEvents){o.widgetNode.setAttribute("cm-ignore-events","true")}if(e.insertLeft){o.widgetNode.insertLeft=true}}if(o.collapsed){if(Yt(t,n.line,n,r,o)||n.line!=r.line&&Yt(t,r.line,n,r,o)){throw new Error("Inserting collapsed marker partially overlapping an existing one")}Nt()}if(o.addToHistory){To(t,{from:n,to:r,origin:"markText"},t.sel,NaN)}var s=n.line,l=t.cm,u;t.iter(s,r.line+1,function(e){if(l&&o.collapsed&&!l.options.lineWrapping&&Qt(e)==l.display.maxLine){u=true}if(o.collapsed&&s!=n.line){Je(e,0)}Ft(e,new Ot(o,s==n.line?n.ch:null,s==r.line?r.ch:null));++s});if(o.collapsed){t.iter(n.line,r.line+1,function(e){if(nn(t,e)){Je(e,0)}})}if(o.clearOnEnter){pe(o,"beforeCursorEnter",function(){return o.clear()})}if(o.readOnly){Et();if(t.history.done.length||t.history.undone.length){t.clearHistory()}}if(o.collapsed){o.id=++ha;o.atomic=true}if(l){if(u){l.curOp.updateMaxLine=true}if(o.collapsed){Hr(l,n.line,r.line+1)}else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title){for(var c=n.line;c<=r.line;c++){zr(l,c,"text")}}if(o.atomic){Uo(l.doc)}Mn(l,"markerAdded",l,o)}return o}pa.prototype.clear=function(){if(this.explicitlyCleared){return}var e=this.doc.cm,t=e&&!e.curOp;if(t){ki(e)}if(we(this,"clear")){var n=this.find();if(n){Mn(this,"clear",n.from,n.to)}}var r=null,i=null;for(var o=0;oe.display.maxLineLength){e.display.maxLine=u;e.display.maxLineLength=c;e.display.maxLineChanged=true}}}if(r!=null&&e&&this.collapsed){Hr(e,r,i+1)}this.lines.length=0;this.explicitlyCleared=true;if(this.atomic&&this.doc.cantEdit){this.doc.cantEdit=false;if(e){Uo(e.doc)}}if(e){Mn(e,"markerCleared",e,this,r,i)}if(t){Ci(e)}if(this.parent){this.parent.clear()}},pa.prototype.find=function(e,t){if(e==null&&this.type=="bookmark"){e=1}var n,r;for(var i=0;i=0;l--){Qo(this,r[l])}if(s){Wo(this,s)}else if(this.cm){ai(this.cm)}}),undo:Ii(function(){Jo(this,"undo")}),redo:Ii(function(){Jo(this,"redo")}),undoSelection:Ii(function(){Jo(this,"undo",true)}),redoSelection:Ii(function(){Jo(this,"redo",true)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){var e=this.history,t=0,n=0;for(var r=0;r=e.ch)){t.push(i.marker.parent||i.marker)}}}return t},findMarks:function(i,o,a){i=ft(this,i);o=ft(this,o);var s=[],l=i.line;this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t){for(var n=0;n=r.to||r.from==null&&l!=i.line||r.from!=null&&l==o.line&&r.from>=o.ch)&&(!a||a(r.marker))){s.push(r.marker.parent||r.marker)}}}++l});return s},getAllMarks:function(){var r=[];this.iter(function(e){var t=e.markedSpans;if(t){for(var n=0;nn){r=n;return true}n-=t;++i});return ft(this,it(i,r))},indexFromPos:function(e){e=ft(this,e);var t=e.ch;if(e.linet){t=e.from}if(e.to!=null&&e.to-1){r.state.draggingText(e);setTimeout(function(){return r.display.input.focus()},20);return}try{var c=e.dataTransfer.getData("Text");if(c){var f;if(r.state.draggingText&&!r.state.draggingText.copy){f=r.listSelections()}Bo(r.doc,ao(t,t));if(f){for(var d=0;d=0;e--){ra(t.doc,"",r[e].from,r[e].to,"+delete")}ai(t)})}function _a(e,t,n){var r=ae(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Ka(e,t,n){var r=_a(e,t.ch,n);return r==null?null:new it(t.line,r,n<0?"after":"before")}function Ga(e,t,n,r,i){if(e){if(t.doc.direction=="rtl"){i=-i}var o=de(n,t.doc.direction);if(o){var a=i<0?X(o):o[0];var s=i<0==(a.level==1);var l=s?"after":"before";var u;if(a.level>0||t.doc.direction=="rtl"){var c=tr(t,n);u=i<0?n.text.length-1:0;var f=nr(t,c,u).top;u=se(function(e){return nr(t,c,e).top==f},i<0==(a.level==1)?a.from:a.to-1,u);if(l=="before"){u=_a(n,u,1)}}else{u=i<0?a.to:a.from}return new it(r,u,l)}}return new it(r,i<0?n.text.length:0,i<0?"before":"after")}function Xa(t,n,s,e){var l=de(n,t.doc.direction);if(!l){return Ka(n,s,e)}if(s.ch>=n.text.length){s.ch=n.text.length;s.sticky="before"}else if(s.ch<=0){s.ch=0;s.sticky="after"}var r=ce(l,s.ch,s.sticky),i=l[r];if(t.doc.direction=="ltr"&&i.level%2==0&&(e>0?i.to>s.ch:i.from=i.from&&d>=c.begin:d<=i.to&&d<=c.end)){var h=f?"before":"after";return new it(s.line,d,h)}}var p=function(e,t,n){var r=function(e,t){return t?new it(s.line,u(e,1),"before"):new it(s.line,e,"after")};for(;e>=0&&e0==(i.level!=1);var a=o?n.begin:u(n.end,-1);if(i.from<=a&&a0?c.end:u(c.begin,-1);if(g!=null&&!(e>0&&g==n.text.length)){m=p(e>0?0:l.length-1,e,a(g));if(m){return m}}return null}za.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},za.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},za.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},za.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},za["default"]=b?za.macDefault:za.pcDefault;var Ya={selectAll:Xo,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),V)},killLine:function(n){return $a(n,function(e){if(e.empty()){var t=Ye(n.doc,e.head.line).text.length;if(e.head.ch==t&&e.head.line0){r=new it(r.line,r.ch+1);a.replaceRange(i.charAt(r.ch-1)+i.charAt(r.ch-2),it(r.line,r.ch-2),r,"+transpose")}else if(r.line>a.doc.first){var o=Ye(a.doc,r.line-1).text;if(o){r=new it(r.line,1);a.replaceRange(i.charAt(0)+a.doc.lineSeparator()+o.charAt(o.length-1),it(r.line-1,o.length-1),r,"+transpose")}}}t.push(new io(r,r))}a.setSelections(t)})},newlineAndIndent:function(r){return Ei(r,function(){var e=r.listSelections();for(var t=e.length-1;t>=0;t--){r.replaceRange(r.doc.lineSeparator(),e[t].anchor,e[t].head,"+input")}e=r.listSelections();for(var n=0;n-1&&(ot((a=o.ranges[a]).from(),t)<0||t.xRel>0)&&(ot(a.to(),t)>0||t.xRel<0)){xs(e,r,t,i)}else{Cs(e,r,t,i)}}function xs(t,n,r,i){var o=t.display,a=false;var s=Ni(t,function(e){if(g){o.scroller.draggable=false}t.state.draggingText=false;ge(o.wrapper.ownerDocument,"mouseup",s);ge(o.wrapper.ownerDocument,"mousemove",l);ge(o.scroller,"dragstart",u);ge(o.scroller,"drop",s);if(!a){ke(e);if(!i.addNew){Fo(t.doc,r,null,null,i.extend)}if(g&&!c||x&&k==9){setTimeout(function(){o.wrapper.ownerDocument.body.focus({preventScroll:true});o.input.focus()},20)}else{o.input.focus()}}});var l=function(e){a=a||Math.abs(n.clientX-e.clientX)+Math.abs(n.clientY-e.clientY)>=10};var u=function(){return a=true};if(g){o.scroller.draggable=true}t.state.draggingText=s;s.copy=!i.moveOnDrag;if(o.scroller.dragDrop){o.scroller.dragDrop()}pe(o.wrapper.ownerDocument,"mouseup",s);pe(o.wrapper.ownerDocument,"mousemove",l);pe(o.scroller,"dragstart",u);pe(o.scroller,"drop",s);Xr(t);setTimeout(function(){return o.input.focus()},20)}function ks(e,t,n){if(n=="char"){return new io(t,t)}if(n=="word"){return e.findWordAt(t)}if(n=="line"){return new io(it(t.line,0),ft(e.doc,it(t.line+1,0)))}var r=n(e,t);return new io(r.from,r.to)}function Cs(g,e,v,b){var o=g.display,y=g.doc;ke(e);var w,x,k=y.sel,t=k.ranges;if(b.addNew&&!b.extend){x=y.sel.contains(v);if(x>-1){w=t[x]}else{w=new io(v,v)}}else{w=y.sel.primary();x=y.sel.primIndex}if(b.unit=="rectangle"){if(!b.addNew){w=new io(v,v)}v=Pr(g,e,true,true);x=-1}else{var n=ks(g,v,b.unit);if(b.extend){w=Po(w,n.anchor,n.head,b.extend)}else{w=n}}if(!b.addNew){x=0;qo(y,new ro([w],0),U);k=y.sel}else if(x==-1){x=t.length;qo(y,oo(g,t.concat([w]),x),{scroll:false,origin:"*mouse"})}else if(t.length>1&&t[x].empty()&&b.unit=="char"&&!b.extend){qo(y,oo(g,t.slice(0,x).concat(t.slice(x+1)),0),{scroll:false,origin:"*mouse"});k=y.sel}else{zo(y,x,w,U)}var C=v;function a(e){if(ot(C,e)==0){return}C=e;if(b.unit=="rectangle"){var t=[],n=g.options.tabSize;var r=R(Ye(y,v.line).text,v.ch,n);var i=R(Ye(y,e.line).text,e.ch,n);var o=Math.min(r,i),a=Math.max(r,i);for(var s=Math.min(v.line,e.line),l=Math.min(g.lastLine(),Math.max(v.line,e.line));s<=l;s++){var u=Ye(y,s).text,c=_(u,o,n);if(o==a){t.push(new io(it(s,c),it(s,c)))}else if(u.length>c){t.push(new io(it(s,c),it(s,_(u,a,n))))}}if(!t.length){t.push(new io(v,v))}qo(y,oo(g,k.ranges.slice(0,x).concat(t),x),{origin:"*mouse",scroll:false});g.scrollIntoView(e)}else{var f=w;var d=ks(g,e,b.unit);var h=f.anchor,p;if(ot(d.anchor,h)>0){p=d.head;h=ut(f.from(),d.anchor)}else{p=d.anchor;h=lt(f.to(),d.head)}var m=k.ranges.slice(0);m[x]=Ss(g,new io(ft(y,h),p));qo(y,oo(g,m,x),U)}}var s=o.wrapper.getBoundingClientRect();var l=0;function u(e){var t=++l;var n=Pr(g,e,true,b.unit=="rectangle");if(!n){return}if(ot(n,C)!=0){g.curOp.focus=O();a(n);var r=ei(o,y);if(n.line>=r.to||n.lines.bottom?20:0;if(i){setTimeout(Ni(g,function(){if(l!=t){return}o.scroller.scrollTop+=i;u(e)}),50)}}}function r(e){g.state.selectingText=false;l=Infinity;if(e){ke(e);o.input.focus()}ge(o.wrapper.ownerDocument,"mousemove",i);ge(o.wrapper.ownerDocument,"mouseup",c);y.history.lastSelOrigin=null}var i=Ni(g,function(e){if(e.buttons===0||!Le(e)){r(e)}else{u(e)}});var c=Ni(g,r);g.state.selectingText=c;pe(o.wrapper.ownerDocument,"mousemove",i);pe(o.wrapper.ownerDocument,"mouseup",c)}function Ss(e,t){var n=t.anchor;var r=t.head;var i=Ye(e.doc,n.line);if(ot(n,r)==0&&n.sticky==r.sticky){return t}var o=de(i);if(!o){return t}var a=ce(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch){return t}var l=a+(s.from==n.ch==(s.level!=1)?0:1);if(l==0||l==o.length){return t}var u;if(r.line!=n.line){u=(r.line-n.line)*(e.doc.direction=="ltr"?1:-1)>0}else{var c=ce(o,r.ch,r.sticky);var f=c-a||(r.ch-n.ch)*(s.level==1?-1:1);if(c==l-1||c==l){u=f<0}else{u=f>0}}var d=o[l+(u?-1:0)];var h=u==(d.level==1);var p=h?d.from:d.to,m=h?"after":"before";return n.ch==p&&n.sticky==m?t:new io(new it(n.line,p,m),r)}function Ts(e,t,n,r){var i,o;if(t.touches){i=t.touches[0].clientX;o=t.touches[0].clientY}else{try{i=t.clientX;o=t.clientY}catch(e){return false}}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right)){return false}if(r){ke(t)}var a=e.display;var s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!we(e,n)){return Se(t)}o-=s.top-a.viewOffset;for(var l=0;l=i){var c=tt(e.doc,o);var f=e.display.gutterSpecs[l];ve(e,n,e,c,f.className,t);return Se(t)}}}function As(e,t){return Ts(e,t,"gutterClick",true)}function Ls(e,t){if(Vn(e.display,t)||Ms(e,t)){return}if(be(e,t,"contextmenu")){return}if(!C){e.display.input.onContextMenu(t)}}function Ms(e,t){if(!we(e,"gutterContextMenu")){return false}return Ts(e,t,"gutterContextMenu",false)}function Ds(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-");fr(e)}hs.prototype.compare=function(e,t,n){return this.time+ds>e&&ot(t,this.pos)==0&&n==this.button};var Es={toString:function(){return"CodeMirror.Init"}},Ns={},Os={};function Is(i){var o=i.optionHandlers;function e(e,t,r,n){i.defaults[e]=t;if(r){o[e]=n?function(e,t,n){if(n!=Es){r(e,t,n)}}:r}}i.defineOption=e;i.Init=Es;e("value","",function(e,t){return e.setValue(t)},true);e("mode",null,function(e,t){e.doc.modeOption=t;ho(e)},true);e("indentUnit",2,ho,true);e("indentWithTabs",false);e("smartIndent",true);e("tabSize",4,function(e){po(e);fr(e);Hr(e)},true);e("lineSeparator",null,function(e,r){e.doc.lineSep=r;if(!r){return}var i=[],o=e.doc.first;e.doc.iter(function(e){for(var t=0;;){var n=e.text.indexOf(r,t);if(n==-1){break}t=n+r.length;i.push(it(o,n))}o++});for(var t=i.length-1;t>=0;t--){ra(e.doc,r,i[t],it(i[t].line,i[t].ch+r.length))}});e("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g");if(n!=Es){e.refresh()}});e("specialCharPlaceholder",mn,function(e){return e.refresh()},true);e("electricChars",true);e("inputStyle",d?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},true);e("spellcheck",false,function(e,t){return e.getInputField().spellcheck=t},true);e("autocorrect",false,function(e,t){return e.getInputField().autocorrect=t},true);e("autocapitalize",false,function(e,t){return e.getInputField().autocapitalize=t},true);e("rtlMoveVisually",!p);e("wholeLineUpdateBefore",true);e("theme","default",function(e){Ds(e);Yi(e)},true);e("keyMap","default",function(e,t,n){var r=Ua(t);var i=n!=Es&&Ua(n);if(i&&i.detach){i.detach(e,r)}if(r.attach){r.attach(e,i||null)}});e("extraKeys",null);e("configureMouse",null);e("lineWrapping",false,Fs,true);e("gutters",[],function(e,t){e.display.gutterSpecs=Gi(t,e.options.lineNumbers);Yi(e)},true);e("fixedGutter",true,function(e,t){e.display.gutters.style.left=t?Nr(e.display)+"px":"0";e.refresh()},true);e("coverGutterNextToScrollbar",false,function(e){return vi(e)},true);e("scrollbarStyle","native",function(e){wi(e);vi(e);e.display.scrollbars.setScrollTop(e.doc.scrollTop);e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},true);e("lineNumbers",false,function(e,t){e.display.gutterSpecs=Gi(e.options.gutters,t);Yi(e)},true);e("firstLineNumber",1,Yi,true);e("lineNumberFormatter",function(e){return e},Yi,true);e("showCursorWhenSelecting",false,Br,true);e("resetSelectionOnContextMenu",true);e("lineWiseCopyCut",true);e("pasteLinesPerSelection",true);e("selectionsMayTouch",false);e("readOnly",false,function(e,t){if(t=="nocursor"){Qr(e);e.display.input.blur()}e.display.input.readOnlyChanged(t)});e("screenReaderLabel",null,function(e,t){t=t===""?null:t;e.display.input.screenReaderLabelChanged(t)});e("disableInput",false,function(e,t){if(!t){e.display.input.reset()}},true);e("dragDrop",true,Ps);e("allowDropFileTypes",null);e("cursorBlinkRate",530);e("cursorScrollMargin",0);e("cursorHeight",1,Br,true);e("singleCursorHeightPerLine",true,Br,true);e("workTime",100);e("workDelay",100);e("flattenSpans",true,po,true);e("addModeClass",false,po,true);e("pollInterval",100);e("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t});e("historyEventDelay",1250);e("viewportMargin",10,function(e){return e.refresh()},true);e("maxHighlightLength",1e4,po,true);e("moveInputWithCursor",true,function(e,t){if(!t){e.display.input.resetPosition()}});e("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""});e("autofocus",null);e("direction","ltr",function(e,t){return e.doc.setDirection(t)},true);e("phrases",null)}function Ps(e,t,n){var r=n&&n!=Es;if(!t!=!r){var i=e.display.dragFunctions;var o=t?pe:ge;o(e.display.scroller,"dragstart",i.start);o(e.display.scroller,"dragenter",i.enter);o(e.display.scroller,"dragover",i.over);o(e.display.scroller,"dragleave",i.leave);o(e.display.scroller,"drop",i.drop)}}function Fs(e){if(e.options.lineWrapping){I(e.display.wrapper,"CodeMirror-wrap");e.display.sizer.style.minWidth="";e.display.sizerWidth=null}else{T(e.display.wrapper,"CodeMirror-wrap");sn(e)}Ir(e);Hr(e);fr(e);setTimeout(function(){return vi(e)},100)}function Hs(e,t){var n=this;if(!(this instanceof Hs)){return new Hs(e,t)}this.options=t=t?z(t):{};z(Ns,t,false);var r=t.value;if(typeof r=="string"){r=new ka(r,t.mode,null,t.lineSeparator,t.direction)}else if(t.mode){r.modeOption=t.mode}this.doc=r;var i=new Hs.inputStyles[t.inputStyle](this);var o=this.display=new Qi(e,r,i,t);o.wrapper.CodeMirror=this;Ds(this);if(t.lineWrapping){this.display.wrapper.className+=" CodeMirror-wrap"}wi(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:false,delayingBlurEvent:false,focused:false,suppressEdits:false,pasteIncoming:-1,cutIncoming:-1,selectingText:false,draggingText:false,highlight:new j,keySeq:null,specialChars:null};if(t.autofocus&&!d){o.input.focus()}if(x&&k<11){setTimeout(function(){return n.display.input.reset(true)},20)}zs(this);Ea();ki(this);this.curOp.forceUpdate=true;bo(this,r);if(t.autofocus&&!d||this.hasFocus()){setTimeout(H(Yr,this),20)}else{Qr(this)}for(var a in Os){if(Os.hasOwnProperty(a)){Os[a](this,t[a],Es)}}Ki(this);if(t.finishInit){t.finishInit(this)}for(var s=0;s20*20}pe(o.scroller,"touchstart",function(e){if(!be(i,e)&&!s(e)&&!As(i,e)){o.input.ensurePolled();clearTimeout(n);var t=+new Date;o.activeTouch={start:t,moved:false,prev:t-r.end<=300?r:null};if(e.touches.length==1){o.activeTouch.left=e.touches[0].pageX;o.activeTouch.top=e.touches[0].pageY}}});pe(o.scroller,"touchmove",function(){if(o.activeTouch){o.activeTouch.moved=true}});pe(o.scroller,"touchend",function(e){var t=o.activeTouch;if(t&&!Vn(o,e)&&t.left!=null&&!t.moved&&new Date-t.start<300){var n=i.coordsChar(o.activeTouch,"page"),r;if(!t.prev||l(t,t.prev)){r=new io(n,n)}else if(!t.prev.prev||l(t,t.prev.prev)){r=i.findWordAt(n)}else{r=new io(it(n.line,0),ft(i.doc,it(n.line+1,0)))}i.setSelection(r.anchor,r.head);i.focus();ke(e)}a()});pe(o.scroller,"touchcancel",a);pe(o.scroller,"scroll",function(){if(o.scroller.clientHeight){fi(i,o.scroller.scrollTop);hi(i,o.scroller.scrollLeft,true);ve(i,"scroll",i)}});pe(o.scroller,"mousewheel",function(e){return no(i,e)});pe(o.scroller,"DOMMouseScroll",function(e){return no(i,e)});pe(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0});o.dragFunctions={enter:function(e){if(!be(i,e)){Te(e)}},over:function(e){if(!be(i,e)){Aa(i,e);Te(e)}},start:function(e){return Ta(i,e)},drop:Ni(i,Sa),leave:function(e){if(!be(i,e)){La(i)}}};var e=o.input.getField();pe(e,"keyup",function(e){return cs.call(i,e)});pe(e,"keydown",Ni(i,ls));pe(e,"keypress",Ni(i,fs));pe(e,"focus",function(e){return Yr(i,e)});pe(e,"blur",function(e){return Qr(i,e)})}Hs.defaults=Ns,Hs.optionHandlers=Os;var Rs=[];function js(e,t,n,r){var i=e.doc,o;if(n==null){n="add"}if(n=="smart"){if(!i.mode.indent){n="prev"}else{o=bt(e,t).state}}var a=e.options.tabSize;var s=Ye(i,t),l=R(s.text,null,a);if(s.stateAfter){s.stateAfter=null}var u=s.text.match(/^\s*/)[0],c;if(!r&&!/\S/.test(s.text)){c=0;n="not"}else if(n=="smart"){c=i.mode.indent(o,s.text.slice(u.length),s.text);if(c==B||c>150){if(!r){return}n="prev"}}if(n=="prev"){if(t>i.first){c=R(Ye(i,t-1).text,null,a)}else{c=0}}else if(n=="add"){c=l+e.options.indentUnit}else if(n=="subtract"){c=l-e.options.indentUnit}else if(typeof n=="number"){c=l+n}c=Math.max(0,c);var f="",d=0;if(e.options.indentWithTabs){for(var h=Math.floor(c/a);h;--h){d+=a;f+="\t"}}if(da;var l=Ie(t),u=null;if(s&&r.ranges.length>1){if(Ws&&Ws.text.join("\n")==t){if(r.ranges.length%Ws.text.length==0){u=[];for(var c=0;c=0;d--){var h=r.ranges[d];var p=h.from(),m=h.to();if(h.empty()){if(n&&n>0){p=it(p.line,p.ch-n)}else if(e.state.overwrite&&!s){m=it(m.line,Math.min(Ye(o,m.line).text.length,m.ch+X(l).length))}else if(s&&Ws&&Ws.lineWise&&Ws.text.join("\n")==l.join("\n")){p=m=it(p.line,0)}}var g={from:p,to:m,text:u?u[d%u.length]:l,origin:i||(s?"paste":e.state.cutIncoming>a?"cut":"+input")};Qo(e.doc,g);Mn(e,"inputRead",e,g)}if(t&&!s){Us(e,t)}ai(e);if(e.curOp.updateInput<2){e.curOp.updateInput=f}e.curOp.typing=true;e.state.pasteIncoming=e.state.cutIncoming=-1}function Vs(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n){e.preventDefault();if(!t.isReadOnly()&&!t.options.disableInput){Ei(t,function(){return Bs(t,n,0,null,"paste")})}return true}}function Us(e,t){if(!e.options.electricChars||!e.options.smartIndent){return}var n=e.doc.sel;for(var r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line){continue}var o=e.getModeAt(i.head);var a=false;if(o.electricChars){for(var s=0;s-1){a=js(e,i.head.line,"smart");break}}}else if(o.electricInput){if(o.electricInput.test(Ye(e.doc,i.head.line).text.slice(0,i.head.ch))){a=js(e,i.head.line,"smart")}}if(a){Mn(e,"electricInput",e,i.head.line)}}}function $s(e){var t=[],n=[];for(var r=0;r0){zo(this.doc,r,new io(o,u[r].to()),V)}}else if(i.head.line>n){js(this,i.head.line,e,true);n=i.head.line;if(r==this.doc.sel.primIndex){ai(this)}}}}),getTokenAt:function(e,t){return Ct(this,e,t)},getLineTokens:function(e,t){return Ct(this,it(e),t,true)},getTokenTypeAt:function(e){e=ft(this.doc,e);var t=vt(this,Ye(this.doc,e.line));var n=0,r=(t.length-1)/2,i=e.ch;var o;if(i==0){o=t[2]}else{for(;;){var a=n+r>>1;if((a?t[a*2-1]:0)>=i){r=a}else if(t[a*2+1]o){e=o;r=true}i=Ye(this.doc,e)}else{i=e}return mr(this,i,{top:0,left:0},t||"page",n||r).top+(r?this.doc.height-on(i):0)},defaultTextHeight:function(){return Mr(this.display)},defaultCharWidth:function(){return Dr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=br(this,ft(this.doc,e));var a=e.bottom,s=e.left;t.style.position="absolute";t.setAttribute("cm-ignore-events","true");this.display.input.setUneditable(t);o.sizer.appendChild(t);if(r=="over"){a=e.top}else if(r=="above"||r=="near"){var l=Math.max(o.wrapper.clientHeight,this.doc.height),u=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);if((r=="above"||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight){a=e.top-t.offsetHeight}else if(e.bottom+t.offsetHeight<=l){a=e.bottom}if(s+t.offsetWidth>u){s=u-t.offsetWidth}}t.style.top=a+"px";t.style.left=t.style.right="";if(i=="right"){s=o.sizer.clientWidth-t.offsetWidth;t.style.right="0px"}else{if(i=="left"){s=0}else if(i=="middle"){s=(o.sizer.clientWidth-t.offsetWidth)/2}t.style.left=s+"px"}if(n){ri(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})}},triggerOnKeyDown:Oi(ls),triggerOnKeyPress:Oi(fs),triggerOnKeyUp:cs,triggerOnMouseDown:Oi(vs),execCommand:function(e){if(Ya.hasOwnProperty(e)){return Ya[e].call(null,this)}},triggerElectric:Oi(function(e){Us(this,e)}),findPosH:function(e,t,n,r){var i=1;if(t<0){i=-1;t=-t}var o=ft(this.doc,e);for(var a=0;a0&&s(n.charAt(r-1))){--r}while(i.5||this.options.lineWrapping){Ir(this)}ve(this,"refresh",this)}),swapDoc:Oi(function(e){var t=this.doc;t.cm=null;if(this.state.selectingText){this.state.selectingText()}bo(this,e);fr(this);this.display.input.reset();si(this,e.scrollLeft,e.scrollTop);this.curOp.forceScroll=true;Mn(this,"swapDoc",this,t);return t}),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};xe(i);i.registerHelper=function(e,t,n){if(!u.hasOwnProperty(e)){u[e]=i[e]={_global:[]}}u[e][t]=n};i.registerGlobalHelper=function(e,t,n,r){i.registerHelper(e,t,r);u[e]._global.push({pred:n,val:r})}}function Xs(n,r,i,e,o){var t=r;var a=i;var s=Ye(n,r.line);var l=o&&n.direction=="rtl"?-i:i;function u(){var e=r.line+l;if(e=n.first+n.size){return false}r=new it(e,r.ch,r.sticky);return s=Ye(n,e)}function c(e){var t;if(o){t=Xa(n.cm,s,r,i)}else{t=Ka(s,r,i)}if(t==null){if(!e&&u()){r=Ga(o,n.cm,s,r.line,l)}else{return false}}else{r=t}return true}if(e=="char"){c()}else if(e=="column"){c(true)}else if(e=="word"||e=="group"){var f=null,d=e=="group";var h=n.cm&&n.cm.getHelper(r,"wordChars");for(var p=true;;p=false){if(i<0&&!c(!p)){break}var m=s.text.charAt(r.ch)||"\n";var g=ne(m,h)?"w":d&&m=="\n"?"n":!d||/\s/.test(m)?null:"p";if(d&&!p&&!g){g="s"}if(f&&f!=g){if(i<0){i=1;c();r.sticky="after"}break}if(g){f=g}if(i>0&&!c(!p)){break}}}var v=Ko(n,r,t,a,true);if(at(t,v)){v.hitSide=true}return v}function Ys(e,t,n,r){var i=e.doc,o=t.left,a;if(r=="page"){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);var l=Math.max(s-.5*Mr(e.display),3);a=(n>0?t.bottom:t.top)+n*l}else if(r=="line"){a=n>0?t.bottom+3:t.top-3}var u;for(;;){u=xr(e,o,a);if(!u.outside){break}if(n<0?a<=0:a>=i.height){u.hitSide=true;break}a+=n*5}return u}var Qs=function(e){this.cm=e;this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null;this.polling=new j;this.composing=null;this.gracePeriod=false;this.readDOMTimeout=null};function Zs(e,t){var n=er(e,t.line);if(!n||n.hidden){return null}var r=Ye(e.doc,t.line);var i=Qn(n,r,t.line);var o=de(r,e.doc.direction),a="left";if(o){var s=ce(o,t.ch);a=s%2?"right":"left"}var l=or(i.map,t.ch,a);l.offset=l.collapse=="right"?l.end:l.start;return l}function Js(e){for(var t=e;t;t=t.parentNode){if(/CodeMirror-gutter-wrapper/.test(t.className)){return true}}return false}function el(e,t){if(t){e.bad=true}return e}function tl(s,e,t,l,u){var n="",c=false,f=s.doc.lineSeparator(),d=false;function h(t){return function(e){return e.id==t}}function p(){if(c){n+=f;if(d){n+=f}c=d=false}}function m(e){if(e){p();n+=e}}function g(e){if(e.nodeType==1){var t=e.getAttribute("cm-text");if(t){m(t);return}var n=e.getAttribute("cm-marker"),r;if(n){var i=s.findMarks(it(l,0),it(u+1,0),h(+n));if(i.length&&(r=i[0].find(0))){m(Qe(s.doc,r.from,r.to).join(f))}return}if(e.getAttribute("contenteditable")=="false"){return}var o=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&e.textContent.length==0){return}if(o){p()}for(var a=0;a=t.display.viewTo||i.line=t.display.viewFrom&&Zs(t,r)||{node:s[0].measure.map[2],offset:0};var u=i.linee.firstLine()){r=it(r.line-1,Ye(e.doc,r.line-1).length)}if(i.ch==Ye(e.doc,i.line).text.length&&i.linet.viewTo-1){return false}var o,a,s;if(r.line==t.viewFrom||(o=Fr(e,r.line))==0){a=et(t.view[0].line);s=t.view[0].node}else{a=et(t.view[o].line);s=t.view[o-1].node.nextSibling}var l=Fr(e,i.line);var u,c;if(l==t.view.length-1){u=t.viewTo-1;c=t.lineDiv.lastChild}else{u=et(t.view[l+1].line)-1;c=t.view[l+1].node.previousSibling}if(!s){return false}var f=e.doc.splitLines(tl(e,s,c,a,u));var d=Qe(e.doc,it(a,0),it(u,Ye(e.doc,u).text.length));while(f.length>1&&d.length>1){if(X(f)==X(d)){f.pop();d.pop();u--}else if(f[0]==d[0]){f.shift();d.shift();a++}else{break}}var h=0,p=0;var m=f[0],g=d[0],v=Math.min(m.length,g.length);while(hr.ch&&b.charCodeAt(b.length-p-1)==y.charCodeAt(y.length-p-1)){h--;p++}}f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,"");f[0]=f[0].slice(h).replace(/\u200b+$/,"");var x=it(a,h);var k=it(u,d.length?X(d).length-p:0);if(f.length>1||f[0]||ot(x,k)){ra(e.doc,f,x,k,"+input");return true}},Qs.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qs.prototype.reset=function(){this.forceCompositionEnd()},Qs.prototype.forceCompositionEnd=function(){if(!this.composing){return}clearTimeout(this.readDOMTimeout);this.composing=null;this.updateFromDOM();this.div.blur();this.div.focus()},Qs.prototype.readFromDOMSoon=function(){var e=this;if(this.readDOMTimeout!=null){return}this.readDOMTimeout=setTimeout(function(){e.readDOMTimeout=null;if(e.composing){if(e.composing.done){e.composing=null}else{return}}e.updateFromDOM()},80)},Qs.prototype.updateFromDOM=function(){var e=this;if(this.cm.isReadOnly()||!this.pollContent()){Ei(this.cm,function(){return Hr(e.cm)})}},Qs.prototype.setUneditable=function(e){e.contentEditable="false"},Qs.prototype.onKeyPress=function(e){if(e.charCode==0||this.composing){return}e.preventDefault();if(!this.cm.isReadOnly()){Ni(this.cm,Bs)(this.cm,String.fromCharCode(e.charCode==null?e.keyCode:e.charCode),0)}},Qs.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(e!="nocursor")},Qs.prototype.onContextMenu=function(){},Qs.prototype.resetPosition=function(){},Qs.prototype.needsContentAttribute=true;var il=function(e){this.cm=e;this.prevInput="";this.pollingFast=false;this.polling=new j;this.hasSelection=false;this.composing=null};function ol(t,n){if((n=n?z(n):{}).value=t.value,!n.tabindex&&t.tabIndex)n.tabindex=t.tabIndex;if(!n.placeholder&&t.placeholder)n.placeholder=t.placeholder;if(null==n.autofocus){var e=O();n.autofocus=e==t||null!=t.getAttribute("autofocus")&&e==document.body}function r(){t.value=s.getValue()}var i;if(t.form)if(pe(t.form,"submit",r),!n.leaveSubmitMethodAlone){var o=t.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(e){}}n.finishInit=function(e){e.save=r,e.getTextArea=function(){return t},e.toTextArea=function(){e.toTextArea=isNaN,r(),t.parentNode.removeChild(e.getWrapperElement()),t.style.display="",t.form&&(ge(t.form,"submit",r),n.leaveSubmitMethodAlone||"function"!=typeof t.form.submit||(t.form.submit=i))}},t.style.display="none";var s=Hs(function(e){return t.parentNode.insertBefore(e,t.nextSibling)},n);return s}function al(e){e.off=ge,e.on=pe,e.wheelEventPixels=to,e.Doc=ka,e.splitLines=Ie,e.countColumn=R,e.findColumn=_,e.isWordChar=te,e.Pass=B,e.signal=ve,e.Line=ln,e.changeEnd=so,e.scrollbarModel=yi,e.Pos=it,e.cmpPos=ot,e.modes=Re,e.mimeModes=je,e.resolveMode=Be,e.getMode=Ve,e.modeExtensions=Ue,e.extendMode=$e,e.copyState=_e,e.startState=Ge,e.innerMode=Ke,e.commands=Ya,e.keyMap=za,e.keyName=Va,e.isModifierKey=qa,e.lookupKey=Wa,e.normalizeKeyMap=ja,e.StringStream=Xe,e.SharedTextMarker=ga,e.TextMarker=pa,e.LineWidget=ca,e.e_preventDefault=ke,e.e_stopPropagation=Ce,e.e_stop=Te,e.addClass=I,e.contains=E,e.rmClass=T,e.keyNames=Ia}il.prototype.init=function(n){var e=this;var r=this,i=this.cm;this.createField(n);var o=this.textarea;n.wrapper.insertBefore(this.wrapper,n.wrapper.firstChild);if(u){o.style.width="0px"}pe(o,"input",function(){if(x&&k>=9&&e.hasSelection){e.hasSelection=null}r.poll()});pe(o,"paste",function(e){if(be(i,e)||Vs(e,i)){return}i.state.pasteIncoming=+new Date;r.fastPoll()});function t(e){if(be(i,e)){return}if(i.somethingSelected()){qs({lineWise:false,text:i.getSelections()})}else if(!i.options.lineWiseCopyCut){return}else{var t=$s(i);qs({lineWise:true,text:t.text});if(e.type=="cut"){i.setSelections(t.ranges,null,V)}else{r.prevInput="";o.value=t.text.join("\n");F(o)}}if(e.type=="cut"){i.state.cutIncoming=+new Date}}pe(o,"cut",t);pe(o,"copy",t);pe(n.scroller,"paste",function(e){if(Vn(n,e)||be(i,e)){return}if(!o.dispatchEvent){i.state.pasteIncoming=+new Date;r.focus();return}var t=new Event("paste");t.clipboardData=e.clipboardData;o.dispatchEvent(t)});pe(n.lineSpace,"selectstart",function(e){if(!Vn(n,e)){ke(e)}});pe(o,"compositionstart",function(){var e=i.getCursor("from");if(r.composing){r.composing.range.clear()}r.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}});pe(o,"compositionend",function(){if(r.composing){r.poll();r.composing.range.clear();r.composing=null}})},il.prototype.createField=function(e){this.wrapper=Ks();this.textarea=this.wrapper.firstChild},il.prototype.screenReaderLabelChanged=function(e){if(e){this.textarea.setAttribute("aria-label",e)}else{this.textarea.removeAttribute("aria-label")}},il.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc;var r=Vr(e);if(e.options.moveInputWithCursor){var i=br(e,n.sel.primary().head,"div");var o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top));r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},il.prototype.showSelection=function(e){var t=this.cm,n=t.display;M(n.cursorDiv,e.cursors);M(n.selectionDiv,e.selection);if(e.teTop!=null){this.wrapper.style.top=e.teTop+"px";this.wrapper.style.left=e.teLeft+"px"}},il.prototype.reset=function(e){if(this.contextMenuPending||this.composing){return}var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n;if(t.state.focused){F(this.textarea)}if(x&&k>=9){this.hasSelection=n}}else if(!e){this.prevInput=this.textarea.value="";if(x&&k>=9){this.hasSelection=null}}},il.prototype.getField=function(){return this.textarea},il.prototype.supportsTouch=function(){return false},il.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!d||O()!=this.textarea)){try{this.textarea.focus()}catch(e){}}},il.prototype.blur=function(){this.textarea.blur()},il.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},il.prototype.receivedFocus=function(){this.slowPoll()},il.prototype.slowPoll=function(){var e=this;if(this.pollingFast){return}this.polling.set(this.cm.options.pollInterval,function(){e.poll();if(e.cm.state.focused){e.slowPoll()}})},il.prototype.fastPoll=function(){var t=false,n=this;n.pollingFast=true;function r(){var e=n.poll();if(!e&&!t){t=true;n.polling.set(60,r)}else{n.pollingFast=false;n.slowPoll()}}n.polling.set(20,r)},il.prototype.poll=function(){var e=this;var t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Pe(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq){return false}var i=n.value;if(i==r&&!t.somethingSelected()){return false}if(x&&k>=9&&this.hasSelection===i||b&&/[\uf700-\uf7ff]/.test(i)){t.display.input.reset();return false}if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(o==8203&&!r){r=""}if(o==8666){this.reset();return this.cm.execCommand("undo")}}var a=0,s=Math.min(r.length,i.length);while(a1e3||i.indexOf("\n")>-1){n.value=e.prevInput=""}else{e.prevInput=i}if(e.composing){e.composing.range.clear();e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"})}});return true},il.prototype.ensurePolled=function(){if(this.pollingFast&&this.poll()){this.pollingFast=false}},il.prototype.onKeyPress=function(){if(x&&k>=9){this.hasSelection=null}this.fastPoll()},il.prototype.onContextMenu=function(e){var n=this,r=n.cm,i=r.display,o=n.textarea;if(n.contextMenuPending){n.contextMenuPending()}var t=Pr(r,e),a=i.scroller.scrollTop;if(!t||v){return}var s=r.options.resetSelectionOnContextMenu;if(s&&r.doc.sel.contains(t)==-1){Ni(r,qo)(r.doc,ao(t),V)}var l=o.style.cssText,u=n.wrapper.style.cssText;var c=n.wrapper.offsetParent.getBoundingClientRect();n.wrapper.style.cssText="position: static";o.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-c.top-5)+"px; left: "+(e.clientX-c.left-5)+"px;\n z-index: 1000; background: "+(x?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var f;if(g){f=window.scrollY}i.input.focus();if(g){window.scrollTo(null,f)}i.input.reset();if(!r.somethingSelected()){o.value=n.prevInput=" "}n.contextMenuPending=h;i.selForContextMenu=r.doc.sel;clearTimeout(i.detectingSelectAll);function d(){if(o.selectionStart!=null){var e=r.somethingSelected();var t=""+(e?o.value:"");o.value="⇚";o.value=t;n.prevInput=e?"":"";o.selectionStart=1;o.selectionEnd=t.length;i.selForContextMenu=r.doc.sel}}function h(){if(n.contextMenuPending!=h){return}n.contextMenuPending=false;n.wrapper.style.cssText=u;o.style.cssText=l;if(x&&k<9){i.scrollbars.setScrollTop(i.scroller.scrollTop=a)}if(o.selectionStart!=null){if(!x||x&&k<9){d()}var e=0,t=function(){if(i.selForContextMenu==r.doc.sel&&o.selectionStart==0&&o.selectionEnd>0&&n.prevInput==""){Ni(r,Xo)(r)}else if(e++<10){i.detectingSelectAll=setTimeout(t,500)}else{i.selForContextMenu=null;i.input.reset()}};i.detectingSelectAll=setTimeout(t,200)}}if(x&&k>=9){d()}if(C){Te(e);var p=function(){ge(window,"mouseup",p);setTimeout(h,20)};pe(window,"mouseup",p)}else{setTimeout(h,50)}},il.prototype.readOnlyChanged=function(e){if(!e){this.reset()}this.textarea.disabled=e=="nocursor"},il.prototype.setUneditable=function(){},il.prototype.needsContentAttribute=false,Is(Hs),Gs(Hs);var sl="iter insert remove copy getEditor constructor".split(" "),ll;for(ll in ka.prototype){if(ka.prototype.hasOwnProperty(ll)&&W(sl,ll)<0){Hs.prototype[ll]=function(e){return function(){return e.apply(this.doc,arguments)}}(ka.prototype[ll])}}return xe(ka),Hs.inputStyles={textarea:il,contenteditable:Qs},Hs.defineMode=function(e){Hs.defaults.mode||"null"==e||(Hs.defaults.mode=e),function(e,t){2>10|55296,1023&n|56320))}function i(){k()}var e,h,w,o,a,p,d,m,x,l,u,k,C,s,S,g,c,v,b,T="sizzle"+ +new Date,y=n.document,A=0,r=0,L=le(),M=le(),D=le(),E=le(),N=function(e,t){return e===t&&(u=!0),0},O={}.hasOwnProperty,t=[],I=t.pop,P=t.push,F=t.push,H=t.slice,z=function(e,t){for(var n=0,r=e.length;n+~]|"+j+")"+j+"*"),K=new RegExp(j+"|>"),G=new RegExp(B),X=new RegExp("^"+W+"$"),Y={ID:new RegExp("^#("+W+")"),CLASS:new RegExp("^\\.("+W+")"),TAG:new RegExp("^("+W+"|[*])"),ATTR:new RegExp("^"+q),PSEUDO:new RegExp("^"+B),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+j+"*(even|odd|(([+-]|)(\\d*)n|)"+j+"*(?:([+-]|)"+j+"*(\\d+)|))"+j+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+j+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+j+"*((?:-\\d)?\\d*)"+j+"*\\)|)(?=[^-]|$)","i")},Q=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,ee=/^[^{]+\{\s*\[native \w/,te=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ne=/[+~]/,re=new RegExp("\\\\[\\da-fA-F]{1,6}"+j+"?|\\\\([^\\r\\n\\f])","g"),ie=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,oe=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{F.apply(t=H.call(y.childNodes),y.childNodes),t[y.childNodes.length].nodeType}catch(e){F={apply:t.length?function(e,t){P.apply(e,H.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,l,u,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(k(e),e=e||C,S)){if(11!==d&&(l=te.exec(t)))if(i=l[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&b(e,a)&&a.id===i)return n.push(a),n}else{if(l[2])return F.apply(n,e.getElementsByTagName(t)),n;if((i=l[3])&&h.getElementsByClassName&&e.getElementsByClassName)return F.apply(n,e.getElementsByClassName(i)),n}if(h.qsa&&!E[t+" "]&&(!g||!g.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&(K.test(t)||_.test(t))){for((f=ne.test(t)&&me(e.parentNode)||e)===e&&h.scope||((s=e.getAttribute("id"))?s=s.replace(ie,oe):e.setAttribute("id",s=T)),o=(u=p(t)).length;o--;)u[o]=(s?"#"+s:":scope")+" "+ve(u[o]);c=u.join(",")}try{return F.apply(n,f.querySelectorAll(c)),n}catch(e){E(t,!0)}finally{s===T&&e.removeAttribute("id")}}}return m(t.replace(U,"$1"),e,n,r)}function le(){var n=[];function r(e,t){return n.push(e+" ")>w.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function ue(e){return e[T]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)w.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function he(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function pe(a){return ue(function(o){return o=+o,ue(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in h=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Q.test(t||n&&n.nodeName||"HTML")},k=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:y;return r!=C&&9===r.nodeType&&r.documentElement&&(s=(C=r).documentElement,S=!a(C),y!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",i,!1):n.attachEvent&&n.attachEvent("onunload",i)),h.scope=ce(function(e){return s.appendChild(e).appendChild(C.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),h.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),h.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),h.getElementsByClassName=ee.test(C.getElementsByClassName),h.getById=ce(function(e){return s.appendChild(e).id=T,!C.getElementsByName||!C.getElementsByName(T).length}),h.getById?(w.filter.ID=function(e){var t=e.replace(re,f);return function(e){return e.getAttribute("id")===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(w.filter.ID=function(e){var n=e.replace(re,f);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),w.find.TAG=h.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):h.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},w.find.CLASS=h.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},c=[],g=[],(h.qsa=ee.test(C.querySelectorAll))&&(ce(function(e){var t;s.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+j+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+j+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+T+"-]").length||g.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\["+j+"*name"+j+"*="+j+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+T+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+j+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(h.matchesSelector=ee.test(v=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ce(function(e){h.disconnectedMatch=v.call(e,"*"),v.call(e,"[s!='']:x"),c.push("!=",B)}),g=g.length&&new RegExp(g.join("|")),c=c.length&&new RegExp(c.join("|")),t=ee.test(s.compareDocumentPosition),b=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return u=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!h.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==y&&b(y,e)?-1:t==C||t.ownerDocument==y&&b(y,t)?1:l?z(l,e)-z(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:l?z(l,e)-z(l,t):0;if(i===o)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==y?-1:s[r]==y?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(k(e),h.matchesSelector&&S&&!E[t+" "]&&(!c||!c.test(t))&&(!g||!g.test(t)))try{var n=v.call(e,t);if(n||h.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){E(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,f),e[3]=(e[3]||e[4]||e[5]||"").replace(re,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&G.test(n)&&(t=p(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=L[e+" "];return t||(t=new RegExp("(^|"+j+")"+e+"("+j+"|$)"))&&L(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function M(e,n,r){return y(n)?T.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?T.grep(e,function(e){return e===n!==r}):"string"!=typeof n?T.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(T.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(T):T.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:E.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof T?t[0]:t,T.merge(this,T.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),L.test(r[1])&&T.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=T.fn,D=T(S);var N=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function I(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}T.fn.extend({has:function(e){var t=T(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ue=S.createDocumentFragment().appendChild(S.createElement("div")),(ce=S.createElement("input")).setAttribute("type","radio"),ce.setAttribute("checked","checked"),ce.setAttribute("name","t"),ue.appendChild(ce),b.checkClone=ue.cloneNode(!0).cloneNode(!0).lastChild.checked,ue.innerHTML="",b.noCloneChecked=!!ue.cloneNode(!0).lastChild.defaultValue,ue.innerHTML=" ",b.option=!!ue.lastChild;var pe={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function me(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&A(e,t)?T.merge([e],n):n}function ge(e,t){for(var n=0,r=e.length;n"," "]);var ve=/<|?\w+;/;function be(e,t,n,r,i){for(var o,a,s,l,u,c,f=t.createDocumentFragment(),d=[],h=0,p=e.length;h\s*$/g;function Ee(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&T(e).children("tbody")[0]||e}function Ne(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ie(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(G.hasData(e)&&(s=G.get(e).events))for(i in G.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,en=[],tn=/(=)\?(?=&|$)|\?\?/;T.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=en.pop()||T.expando+"_"+Ot.guid++;return this[e]=!0,e}}),T.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(tn.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&tn.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=y(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(tn,"$1"+r):!1!==e.jsonp&&(e.url+=(It.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||T.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?T(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,en.push(r)),o&&y(i)&&i(o[0]),o=i=void 0}),"script"}),b.createHTMLDocument=((Jt=S.implementation.createHTMLDocument("").body).innerHTML="",2===Jt.childNodes.length),T.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(b.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=L.exec(e))?[t.createElement(i[1])]:(i=be([e],t,o),o&&o.length&&T(o).remove(),T.merge([],i.childNodes)));var r,i,o},T.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(T.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},T.expr.pseudos.animated=function(t){return T.grep(T.timers,function(e){return t===e.elem}).length},T.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,u=T.css(e,"position"),c=T(e),f={};"static"===u&&(e.style.position="relative"),s=c.offset(),o=T.css(e,"top"),l=T.css(e,"left"),i=("absolute"===u||"fixed"===u)&&-1<(o+l).indexOf("auto")?(a=(r=c.position()).top,r.left):(a=parseFloat(o)||0,parseFloat(l)||0),y(t)&&(t=t.call(e,n,T.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},T.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){T.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===T.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===T.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=T(e).offset()).top+=T.css(e,"borderTopWidth",!0),i.left+=T.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-T.css(r,"marginTop",!0),left:t.left-i.left-T.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===T.css(e,"position");)e=e.offsetParent;return e||ne})}}),T.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;T.fn[t]=function(e){return q(this,function(e,t,n){var r;return m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n?r?r[i]:e[t]:void(r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n)},t,e,arguments.length)}}),T.each(["top","left"],function(e,n){T.cssHooks[n]=Qe(b.pixelPosition,function(e,t){if(t)return t=Ye(e,n),$e.test(t)?T(e).position()[n]+"px":t})}),T.each({Height:"height",Width:"width"},function(a,s){T.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){T.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return q(this,function(e,t,n){var r;return m(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?T.css(e,t,i):T.style(e,t,n,i)},s,n?e:void 0,n)}})}),T.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){T.fn[t]=function(e){return this.on(t,e)}}),T.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),T.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){T.fn[n]=function(e,t){return 0-1){e.backUp(r.length-i)}else if(r.match(/<\/?$/)){e.backUp(r.length);if(!e.match(t,false))e.match(r)}return n}var n={};function r(e){var t=n[e];if(t)return t;return n[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function o(e,t){var n=e.match(r(t));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function g(e,t){return new RegExp((t?"^":"")+" ","i")}function a(e,t){for(var n in e){var r=t[n]||(t[n]=[]);var i=e[n];for(var o=i.length-1;o>=0;o--)r.unshift(i[o])}}function v(e,t){for(var n=0;n=0;r--)d.script.unshift(["type",n[r].matches,n[r].mode]);function h(e,t){var n=f.token(e,t.htmlState),r=/\btag\b/.test(n),i;if(r&&!/[<>\s\/]/.test(e.current())&&(i=t.htmlState.tagName&&t.htmlState.tagName.toLowerCase())&&d.hasOwnProperty(i)){t.inTag=i+" "}else if(t.inTag&&r&&/>$/.test(e.current())){var o=/^([\S]+) (.*)/.exec(t.inTag);t.inTag=null;var a=e.current()==">"&&v(d[o[1]],o[2]);var s=p.getMode(c,a);var l=g(o[1],true),u=g(o[1],false);t.token=function(e,t){if(e.match(l,false)){t.token=h;t.localState=t.localMode=null;return null}return m(e,u,t.localMode.token(e,t.localState))};t.localMode=s;t.localState=p.startState(s,f.indent(t.htmlState,"",""))}else if(t.inTag){t.inTag+=e.current();if(e.eol())t.inTag+=" "}return n}return{startState:function(){var e=p.startState(f);return{token:h,inTag:null,localMode:null,localState:null,htmlState:e}},copyState:function(e){var t;if(e.localState){t=p.copyState(e.localMode,e.localState)}return{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:t,htmlState:p.copyState(f,e.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(e,t,n){if(!e.localMode||/^\s*<\//.test(t))return f.indent(e.htmlState,t,n);else if(e.localMode.indent)return e.localMode.indent(e.localState,t,n);else return p.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||f}}}},"xml","javascript","css"),p.defineMIME("text/html","htmlmixed")}(n(0),(n(7),n(8),n(9)))},function(e,t,n){!function(T){"use strict";var A={autoSelfClosers:{area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true,menuitem:true},implicitlyClosed:{dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true},contextGrabbers:{dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}},doNotIndent:{pre:true},allowUnquoted:true,allowMissing:true,caseFold:true},L={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false,allowMissingTagName:false,caseFold:false};if(T.defineMode("xml",function(e,t){var a=e.indentUnit;var s={};var n=t.htmlMode?A:L;for(var r in n)s[r]=n[r];for(var r in t)s[r]=t[r];var o,l;function u(t,n){function e(e){n.tokenize=e;return e(t,n)}var r=t.next();if(r=="<"){if(t.eat("!")){if(t.eat("[")){if(t.match("CDATA["))return e(f("atom","]]>"));else return null}else if(t.match("--")){return e(f("comment","--\x3e"))}else if(t.match("DOCTYPE",true,true)){t.eatWhile(/[\w\._\-]/);return e(d(1))}else{return null}}else if(t.eat("?")){t.eatWhile(/[\w\._\-]/);n.tokenize=f("meta","?>");return"meta"}else{o=t.eat("/")?"closeTag":"openTag";n.tokenize=c;return"tag bracket"}}else if(r=="&"){var i;if(t.eat("#")){if(t.eat("x")){i=t.eatWhile(/[a-fA-F\d]/)&&t.eat(";")}else{i=t.eatWhile(/[\d]/)&&t.eat(";")}}else{i=t.eatWhile(/[\w\.\-:]/)&&t.eat(";")}return i?"atom":"error"}else{t.eatWhile(/[^&<]/);return null}}u.isInText=true;function c(e,t){var n=e.next();if(n==">"||n=="/"&&e.eat(">")){t.tokenize=u;o=n==">"?"endTag":"selfcloseTag";return"tag bracket"}else if(n=="="){o="equals";return null}else if(n=="<"){t.tokenize=u;t.state=g;t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}else if(/[\'\"]/.test(n)){t.tokenize=i(n);t.stringStartCol=e.column();return t.tokenize(e,t)}else{e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);return"word"}}function i(n){var e=function(e,t){while(!e.eol()){if(e.next()==n){t.tokenize=c;break}}return"string"};e.isInAttribute=true;return e}function f(n,r){return function(e,t){while(!e.eol()){if(e.match(r)){t.tokenize=u;break}e.next()}return n}}function d(r){return function(e,t){var n;while((n=e.next())!=null){if(n=="<"){t.tokenize=d(r+1);return t.tokenize(e,t)}else if(n==">"){if(r==1){t.tokenize=u;break}else{t.tokenize=d(r-1);return t.tokenize(e,t)}}}return"meta"}}function h(e,t,n){this.prev=e.context;this.tagName=t;this.indent=e.indented;this.startOfLine=n;if(s.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)this.noIndent=true}function p(e){if(e.context)e.context=e.context.prev}function m(e,t){var n;while(true){if(!e.context){return}n=e.context.tagName;if(!s.contextGrabbers.hasOwnProperty(n)||!s.contextGrabbers[n].hasOwnProperty(t)){return}p(e)}}function g(e,t,n){if(e=="openTag"){n.tagStart=t.column();return v}else if(e=="closeTag"){return b}else{return g}}function v(e,t,n){if(e=="word"){n.tagName=t.current();l="tag";return x}else if(s.allowMissingTagName&&e=="endTag"){l="tag bracket";return x(e,t,n)}else{l="error";return v}}function b(e,t,n){if(e=="word"){var r=t.current();if(n.context&&n.context.tagName!=r&&s.implicitlyClosed.hasOwnProperty(n.context.tagName))p(n);if(n.context&&n.context.tagName==r||s.matchClosing===false){l="tag";return y}else{l="tag error";return w}}else if(s.allowMissingTagName&&e=="endTag"){l="tag bracket";return y(e,t,n)}else{l="error";return w}}function y(e,t,n){if(e!="endTag"){l="error";return y}p(n);return g}function w(e,t,n){l="error";return y(e,t,n)}function x(e,t,n){if(e=="word"){l="attribute";return k}else if(e=="endTag"||e=="selfcloseTag"){var r=n.tagName,i=n.tagStart;n.tagName=n.tagStart=null;if(e=="selfcloseTag"||s.autoSelfClosers.hasOwnProperty(r)){m(n,r)}else{m(n,r);n.context=new h(n,r,i==n.indented)}return g}l="error";return x}function k(e,t,n){if(e=="equals")return C;if(!s.allowMissing)l="error";return x(e,t,n)}function C(e,t,n){if(e=="string")return S;if(e=="word"&&s.allowUnquoted){l="string";return x}l="error";return x(e,t,n)}function S(e,t,n){if(e=="string")return S;return x(e,t,n)}return{startState:function(e){var t={tokenize:u,state:g,indented:e||0,tagName:null,tagStart:null,context:null};if(e!=null)t.baseIndent=e;return t},token:function(e,t){if(!t.tagName&&e.sol())t.indented=e.indentation();if(e.eatSpace())return null;o=null;var n=t.tokenize(e,t);if((n||o)&&n!="comment"){l=null;t.state=t.state(o||n,e,t);if(l)n=l=="error"?n+" error":l}return n},indent:function(e,t,n){var r=e.context;if(e.tokenize.isInAttribute){if(e.tagStart==e.indented)return e.stringStartCol+1;else return e.indented+a}if(r&&r.noIndent)return T.Pass;if(e.tokenize!=c&&e.tokenize!=u)return n?n.match(/^(\s*)/)[0].length:0;if(e.tagName){if(s.multilineTagIndentPastTag!==false)return e.tagStart+e.tagName.length+2;else return e.tagStart+a*(s.multilineTagIndentFactor||1)}if(s.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:s.htmlMode?"html":"xml",helperType:s.htmlMode?"html":"xml",skipAttribute:function(e){if(e.state==C)e.state=x},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:e.type=="closeTag"}:null},xmlCurrentContext:function(e){var t=[];for(var n=e.context;n;n=n.prev)if(n.tagName)t.push(n.tagName);return t.reverse()}}}),T.defineMIME("text/xml","xml"),T.defineMIME("application/xml","xml"),!T.mimeModes.hasOwnProperty("text/html"))T.defineMIME("text/html",{name:"xml",htmlMode:true})}(n(0))},function(e,t,n){!function(et){"use strict";et.defineMode("javascript",function(e,u){var c=e.indentUnit;var f=u.statementIndent;var o=u.jsonld;var s=u.json||o;var d=u.typescript;var h=u.wordCharacters||/[\w$\xa1-\uffff]/;var a=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("keyword d");var o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e("new"),delete:r,void:r,throw:r,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r}}();var l=/[+\-*&%=<>!?|~^@]/;var p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function m(e){var t=false,n,r=false;while((n=e.next())!=null){if(!t){if(n=="/"&&!r)return;if(n=="[")r=true;else if(r&&n=="]")r=false}t=!t&&n=="\\"}}var r,i;function g(e,t,n){r=e;i=n;return t}function v(e,t){var n=e.next();if(n=='"'||n=="'"){t.tokenize=b(n);return t.tokenize(e,t)}else if(n=="."&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)){return g("number","number")}else if(n=="."&&e.match("..")){return g("spread","meta")}else if(/[\[\]{}\(\),;\:\.]/.test(n)){return g(n)}else if(n=="="&&e.eat(">")){return g("=>","operator")}else if(n=="0"&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)){return g("number","number")}else if(/\d/.test(n)){e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/);return g("number","number")}else if(n=="/"){if(e.eat("*")){t.tokenize=y;return y(e,t)}else if(e.eat("/")){e.skipToEnd();return g("comment","comment")}else if(Je(e,t,1)){m(e);e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);return g("regexp","string-2")}else{e.eat("=");return g("operator","operator",e.current())}}else if(n=="`"){t.tokenize=w;return w(e,t)}else if(n=="#"&&e.peek()=="!"){e.skipToEnd();return g("meta","meta")}else if(n=="#"&&e.eatWhile(h)){return g("variable","property")}else if(n=="<"&&e.match("!--")||n=="-"&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start))){e.skipToEnd();return g("comment","comment")}else if(l.test(n)){if(n!=">"||!t.lexical||t.lexical.type!=">"){if(e.eat("=")){if(n=="!"||n=="=")e.eat("=")}else if(/[<>*+\-]/.test(n)){e.eat(n);if(n==">")e.eat(n)}}if(n=="?"&&e.eat("."))return g(".");return g("operator","operator",e.current())}else if(h.test(n)){e.eatWhile(h);var r=e.current();if(t.lastType!="."){if(a.propertyIsEnumerable(r)){var i=a[r];return g(i.type,i.style,r)}if(r=="async"&&e.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/,false))return g("async","keyword",r)}return g("variable","variable",r)}}function b(i){return function(e,t){var n=false,r;if(o&&e.peek()=="@"&&e.match(p)){t.tokenize=v;return g("jsonld-keyword","meta")}while((r=e.next())!=null){if(r==i&&!n)break;n=!n&&r=="\\"}if(!n)t.tokenize=v;return g("string","string")}}function y(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=v;break}n=r=="*"}return g("comment","comment")}function w(e,t){var n=false,r;while((r=e.next())!=null){if(!n&&(r=="`"||r=="$"&&e.eat("{"))){t.tokenize=v;break}n=!n&&r=="\\"}return g("quasi","string-2",e.current())}var x="([{}])";function k(e,t){if(t.fatArrowAt)t.fatArrowAt=null;var n=e.string.indexOf("=>",e.start);if(n<0)return;if(d){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));if(r)n=r.index}var i=0,o=false;for(var a=n-1;a>=0;--a){var s=e.string.charAt(a);var l=x.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(--i==0){if(s=="(")o=true;break}}else if(l>=3&&l<6){++i}else if(h.test(s)){o=true}else if(/["'\/`]/.test(s)){for(;;--a){if(a==0)return;var u=e.string.charAt(a-1);if(u==s&&e.string.charAt(a-2)!="\\"){a--;break}}}else if(o&&!i){++a;break}}if(o&&!i)t.fatArrowAt=a}var C={atom:true,number:true,variable:true,string:true,regexp:true,this:true,"jsonld-keyword":true};function S(e,t,n,r,i,o){this.indented=e;this.column=t;this.type=n;this.prev=i;this.info=o;if(r!=null)this.align=r}function T(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return true;for(var r=e.context;r;r=r.prev){for(var n=r.vars;n;n=n.next)if(n.name==t)return true}}function A(e,t,n,r,i){var o=e.cc;L.state=e;L.stream=i;L.marked=null,L.cc=o;L.style=t;if(!e.lexical.hasOwnProperty("align"))e.lexical.align=true;while(true){var a=o.length?o.pop():s?V:q;if(a(n,r)){while(o.length&&o[o.length-1].lex)o.pop()();if(L.marked)return L.marked;if(n=="variable"&&T(e,r))return"variable-2";return t}}}var L={state:null,column:null,marked:null,cc:null};function M(){for(var e=arguments.length-1;e>=0;e--)L.cc.push(arguments[e])}function D(){M.apply(null,arguments);return true}function E(e,t){for(var n=t;n;n=n.next)if(n.name==e)return true;return false}function n(e){var t=L.state;L.marked="def";if(t.context){if(t.lexical.info=="var"&&t.context&&t.context.block){var n=N(e,t.context);if(n!=null){t.context=n;return}}else if(!E(e,t.localVars)){t.localVars=new P(e,t.localVars);return}}if(u.globalVars&&!E(e,t.globalVars))t.globalVars=new P(e,t.globalVars)}function N(e,t){if(!t){return null}else if(t.block){var n=N(e,t.prev);if(!n)return null;if(n==t.prev)return t;return new I(n,t.vars,true)}else if(E(e,t.vars)){return t}else{return new I(t.prev,new P(e,t.vars),false)}}function O(e){return e=="public"||e=="private"||e=="protected"||e=="abstract"||e=="readonly"}function I(e,t,n){this.prev=e;this.vars=t;this.block=n}function P(e,t){this.name=e;this.next=t}var t=new P("this",new P("arguments",null));function F(){L.state.context=new I(L.state.context,L.state.localVars,false);L.state.localVars=t}function H(){L.state.context=new I(L.state.context,L.state.localVars,true);L.state.localVars=null}function z(){L.state.localVars=L.state.context.vars;L.state.context=L.state.context.prev}z.lex=true;function R(r,i){var e=function(){var e=L.state,t=e.indented;if(e.lexical.type=="stat")t=e.lexical.indented;else for(var n=e.lexical;n&&n.type==")"&&n.align;n=n.prev)t=n.indented;e.lexical=new S(t,L.stream.column(),r,null,e.lexical,i)};e.lex=true;return e}function j(){var e=L.state;if(e.lexical.prev){if(e.lexical.type==")")e.indented=e.lexical.indented;e.lexical=e.lexical.prev}}j.lex=true;function W(t){function n(e){if(e==t)return D();else if(t==";"||e=="}"||e==")"||e=="]")return M();else return D(n)}return n}function q(e,t){if(e=="var")return D(R("vardef",t),Ce,W(";"),j);if(e=="keyword a")return D(R("form"),$,q,j);if(e=="keyword b")return D(R("form"),q,j);if(e=="keyword d")return L.stream.match(/^\s*$/,false)?D():D(R("stat"),K,W(";"),j);if(e=="debugger")return D(W(";"));if(e=="{")return D(R("}"),H,ce,j,z);if(e==";")return D();if(e=="if"){if(L.state.lexical.info=="else"&&L.state.cc[L.state.cc.length-1]==j)L.state.cc.pop()();return D(R("form"),$,q,j,De)}if(e=="function")return D(Ie);if(e=="for")return D(R("form"),Ee,q,j);if(e=="class"||d&&t=="interface"){L.marked="keyword";return D(R("form",e=="class"?e:t),Re,j)}if(e=="variable"){if(d&&t=="declare"){L.marked="keyword";return D(q)}else if(d&&(t=="module"||t=="enum"||t=="type")&&L.stream.match(/^\s*\w/,false)){L.marked="keyword";if(t=="enum")return D(Ye);else if(t=="type")return D(Fe,W("operator"),me,W(";"));else return D(R("form"),Se,W("{"),R("}"),ce,j,j)}else if(d&&t=="namespace"){L.marked="keyword";return D(R("form"),V,q,j)}else if(d&&t=="abstract"){L.marked="keyword";return D(q)}else{return D(R("stat"),re)}}if(e=="switch")return D(R("form"),$,W("{"),R("}","switch"),H,ce,j,j,z);if(e=="case")return D(V,W(":"));if(e=="default")return D(W(":"));if(e=="catch")return D(R("form"),F,B,q,j,z);if(e=="export")return D(R("stat"),Be,j);if(e=="import")return D(R("stat"),Ue,j);if(e=="async")return D(q);if(t=="@")return D(V,q);return M(R("stat"),V,W(";"),j)}function B(e){if(e=="(")return D(He,W(")"))}function V(e,t){return _(e,t,false)}function U(e,t){return _(e,t,true)}function $(e){if(e!="(")return M();return D(R(")"),K,W(")"),j)}function _(e,t,n){if(L.state.fatArrowAt==L.stream.start){var r=n?J:Z;if(e=="(")return D(F,R(")"),le(He,")"),j,W("=>"),r,z);else if(e=="variable")return M(F,Se,W("=>"),r,z)}var i=n?X:G;if(C.hasOwnProperty(e))return D(i);if(e=="function")return D(Ie,i);if(e=="class"||d&&t=="interface"){L.marked="keyword";return D(R("form"),ze,j)}if(e=="keyword c"||e=="async")return D(n?U:V);if(e=="(")return D(R(")"),K,W(")"),j,i);if(e=="operator"||e=="spread")return D(n?U:V);if(e=="[")return D(R("]"),Xe,j,i);if(e=="{")return ue(oe,"}",null,i);if(e=="quasi")return M(Y,i);if(e=="new")return D(ee(n));if(e=="import")return D(V);return D()}function K(e){if(e.match(/[;\}\)\],]/))return M();return M(V)}function G(e,t){if(e==",")return D(K);return X(e,t,false)}function X(e,t,n){var r=n==false?G:X;var i=n==false?V:U;if(e=="=>")return D(F,n?J:Z,z);if(e=="operator"){if(/\+\+|--/.test(t)||d&&t=="!")return D(r);if(d&&t=="<"&&L.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,false))return D(R(">"),le(me,">"),j,r);if(t=="?")return D(V,W(":"),i);return D(i)}if(e=="quasi"){return M(Y,r)}if(e==";")return;if(e=="(")return ue(U,")","call",r);if(e==".")return D(ie,r);if(e=="[")return D(R("]"),K,W("]"),j,r);if(d&&t=="as"){L.marked="keyword";return D(me,r)}if(e=="regexp"){L.state.lastType=L.marked="operator";L.stream.backUp(L.stream.pos-L.stream.start-1);return D(i)}}function Y(e,t){if(e!="quasi")return M();if(t.slice(t.length-2)!="${")return D(Y);return D(V,Q)}function Q(e){if(e=="}"){L.marked="string-2";L.state.tokenize=w;return D(Y)}}function Z(e){k(L.stream,L.state);return M(e=="{"?q:V)}function J(e){k(L.stream,L.state);return M(e=="{"?q:U)}function ee(t){return function(e){if(e==".")return D(t?ne:te);else if(e=="variable"&&d)return D(we,t?X:G);else return M(t?U:V)}}function te(e,t){if(t=="target"){L.marked="keyword";return D(G)}}function ne(e,t){if(t=="target"){L.marked="keyword";return D(X)}}function re(e){if(e==":")return D(j,q);return M(G,W(";"),j)}function ie(e){if(e=="variable"){L.marked="property";return D()}}function oe(e,t){if(e=="async"){L.marked="property";return D(oe)}else if(e=="variable"||L.style=="keyword"){L.marked="property";if(t=="get"||t=="set")return D(ae);var n;if(d&&L.state.fatArrowAt==L.stream.start&&(n=L.stream.match(/^\s*:\s*/,false)))L.state.fatArrowAt=L.stream.pos+n[0].length;return D(se)}else if(e=="number"||e=="string"){L.marked=o?"property":L.style+" property";return D(se)}else if(e=="jsonld-keyword"){return D(se)}else if(d&&O(t)){L.marked="keyword";return D(oe)}else if(e=="["){return D(V,fe,W("]"),se)}else if(e=="spread"){return D(U,se)}else if(t=="*"){L.marked="keyword";return D(oe)}else if(e==":"){return M(se)}}function ae(e){if(e!="variable")return M(se);L.marked="property";return D(Ie)}function se(e){if(e==":")return D(U);if(e=="(")return M(Ie)}function le(r,i,o){function a(e,t){if(o?o.indexOf(e)>-1:e==","){var n=L.state.lexical;if(n.info=="call")n.pos=(n.pos||0)+1;return D(function(e,t){if(e==i||t==i)return M();return M(r)},a)}if(e==i||t==i)return D();if(o&&o.indexOf(";")>-1)return M(r);return D(W(i))}return function(e,t){if(e==i||t==i)return D();return M(r,a)}}function ue(e,t,n){for(var r=3;r"),me)}function ge(e){if(e=="=>")return D(me)}function ve(e,t){if(e=="variable"||L.style=="keyword"){L.marked="property";return D(ve)}else if(t=="?"||e=="number"||e=="string"){return D(ve)}else if(e==":"){return D(me)}else if(e=="["){return D(W("variable"),de,W("]"),ve)}else if(e=="("){return M(Pe,ve)}}function be(e,t){if(e=="variable"&&L.stream.match(/^\s*[?:]/,false)||t=="?")return D(be);if(e==":")return D(me);if(e=="spread")return D(be);return M(me)}function ye(e,t){if(t=="<")return D(R(">"),le(me,">"),j,ye);if(t=="|"||e=="."||t=="&")return D(me);if(e=="[")return D(me,W("]"),ye);if(t=="extends"||t=="implements"){L.marked="keyword";return D(me)}if(t=="?")return D(me,W(":"),me)}function we(e,t){if(t=="<")return D(R(">"),le(me,">"),j,ye)}function xe(){return M(me,ke)}function ke(e,t){if(t=="=")return D(me)}function Ce(e,t){if(t=="enum"){L.marked="keyword";return D(Ye)}return M(Se,fe,Le,Me)}function Se(e,t){if(d&&O(t)){L.marked="keyword";return D(Se)}if(e=="variable"){n(t);return D()}if(e=="spread")return D(Se);if(e=="[")return ue(Ae,"]");if(e=="{")return ue(Te,"}")}function Te(e,t){if(e=="variable"&&!L.stream.match(/^\s*:/,false)){n(t);return D(Le)}if(e=="variable")L.marked="property";if(e=="spread")return D(Se);if(e=="}")return M();if(e=="[")return D(V,W("]"),W(":"),Te);return D(W(":"),Se,Le)}function Ae(){return M(Se,Le)}function Le(e,t){if(t=="=")return D(U)}function Me(e){if(e==",")return D(Ce)}function De(e,t){if(e=="keyword b"&&t=="else")return D(R("form","else"),q,j)}function Ee(e,t){if(t=="await")return D(Ee);if(e=="(")return D(R(")"),Ne,j)}function Ne(e){if(e=="var")return D(Ce,Oe);if(e=="variable")return D(Oe);return M(Oe)}function Oe(e,t){if(e==")")return D();if(e==";")return D(Oe);if(t=="in"||t=="of"){L.marked="keyword";return D(V,Oe)}return M(V,Oe)}function Ie(e,t){if(t=="*"){L.marked="keyword";return D(Ie)}if(e=="variable"){n(t);return D(Ie)}if(e=="(")return D(F,R(")"),le(He,")"),j,he,q,z);if(d&&t=="<")return D(R(">"),le(xe,">"),j,Ie)}function Pe(e,t){if(t=="*"){L.marked="keyword";return D(Pe)}if(e=="variable"){n(t);return D(Pe)}if(e=="(")return D(F,R(")"),le(He,")"),j,he,z);if(d&&t=="<")return D(R(">"),le(xe,">"),j,Pe)}function Fe(e,t){if(e=="keyword"||e=="variable"){L.marked="type";return D(Fe)}else if(t=="<"){return D(R(">"),le(xe,">"),j)}}function He(e,t){if(t=="@")D(V,He);if(e=="spread")return D(He);if(d&&O(t)){L.marked="keyword";return D(He)}if(d&&e=="this")return D(fe,Le);return M(Se,fe,Le)}function ze(e,t){if(e=="variable")return Re(e,t);return je(e,t)}function Re(e,t){if(e=="variable"){n(t);return D(je)}}function je(e,t){if(t=="<")return D(R(">"),le(xe,">"),j,je);if(t=="extends"||t=="implements"||d&&e==","){if(t=="implements")L.marked="keyword";return D(d?me:V,je)}if(e=="{")return D(R("}"),We,j)}function We(e,t){if(e=="async"||e=="variable"&&(t=="static"||t=="get"||t=="set"||d&&O(t))&&L.stream.match(/^\s+[\w$\xa1-\uffff]/,false)){L.marked="keyword";return D(We)}if(e=="variable"||L.style=="keyword"){L.marked="property";return D(qe,We)}if(e=="number"||e=="string")return D(qe,We);if(e=="[")return D(V,fe,W("]"),qe,We);if(t=="*"){L.marked="keyword";return D(We)}if(d&&e=="(")return M(Pe,We);if(e==";"||e==",")return D(We);if(e=="}")return D();if(t=="@")return D(V,We)}function qe(e,t){if(t=="?")return D(qe);if(e==":")return D(me,Le);if(t=="=")return D(U);var n=L.state.lexical.prev,r=n&&n.info=="interface";return M(r?Pe:Ie)}function Be(e,t){if(t=="*"){L.marked="keyword";return D(Ge,W(";"))}if(t=="default"){L.marked="keyword";return D(V,W(";"))}if(e=="{")return D(le(Ve,"}"),Ge,W(";"));return M(q)}function Ve(e,t){if(t=="as"){L.marked="keyword";return D(W("variable"))}if(e=="variable")return M(U,Ve)}function Ue(e){if(e=="string")return D();if(e=="(")return M(V);return M($e,_e,Ge)}function $e(e,t){if(e=="{")return ue($e,"}");if(e=="variable")n(t);if(t=="*")L.marked="keyword";return D(Ke)}function _e(e){if(e==",")return D($e,_e)}function Ke(e,t){if(t=="as"){L.marked="keyword";return D($e)}}function Ge(e,t){if(t=="from"){L.marked="keyword";return D(V)}}function Xe(e){if(e=="]")return D();return M(le(U,"]"))}function Ye(){return M(R("form"),Se,W("{"),R("}"),le(Qe,"}"),j,j)}function Qe(){return M(Se,Le)}function Ze(e,t){return e.lastType=="operator"||e.lastType==","||l.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function Je(e,t,n){return t.tokenize==v&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||t.lastType=="quasi"&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return{startState:function(e){var t={tokenize:v,lastType:"sof",cc:[],lexical:new S((e||0)-c,0,"block",false),localVars:u.localVars,context:u.localVars&&new I(null,null,false),indented:e||0};if(u.globalVars&&typeof u.globalVars=="object")t.globalVars=u.globalVars;return t},token:function(e,t){if(e.sol()){if(!t.lexical.hasOwnProperty("align"))t.lexical.align=false;t.indented=e.indentation();k(e,t)}if(t.tokenize!=y&&e.eatSpace())return null;var n=t.tokenize(e,t);if(r=="comment")return n;t.lastType=r=="operator"&&(i=="++"||i=="--")?"incdec":r;return A(t,n,r,i,e)},indent:function(e,t){if(e.tokenize==y)return et.Pass;if(e.tokenize!=v)return 0;var n=t&&t.charAt(0),r=e.lexical,i;if(!/^\s*else\b/.test(t))for(var o=e.cc.length-1;o>=0;--o){var a=e.cc[o];if(a==j)r=r.prev;else if(a!=De)break}while((r.type=="stat"||r.type=="form")&&(n=="}"||(i=e.cc[e.cc.length-1])&&(i==G||i==X)&&!/^[,\.=+\-*:?[\(]/.test(t)))r=r.prev;if(f&&r.type==")"&&r.prev.type=="stat")r=r.prev;var s=r.type,l=n==s;if(s=="vardef")return r.indented+(e.lastType=="operator"||e.lastType==","?r.info.length+1:0);else if(s=="form"&&n=="{")return r.indented;else if(s=="form")return r.indented+c;else if(s=="stat")return r.indented+(Ze(e,t)?f||c:0);else if(r.info=="switch"&&!l&&u.doubleIndentSwitch!=false)return r.indented+(/^(?:case|default)\b/.test(t)?c:2*c);else if(r.align)return r.column+(l?0:1);else return r.indented+(l?0:c)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:o,jsonMode:s,expressionAllowed:Je,skipExpression:function(e){var t=e.cc[e.cc.length-1];if(t==V||t==U)e.cc.pop()}}}),et.registerHelper("wordChars","javascript",/[\w$]/),et.defineMIME("text/javascript","javascript"),et.defineMIME("text/ecmascript","javascript"),et.defineMIME("application/javascript","javascript"),et.defineMIME("application/x-javascript","javascript"),et.defineMIME("application/ecmascript","javascript"),et.defineMIME("application/json",{name:"javascript",json:true}),et.defineMIME("application/x-json",{name:"javascript",json:true}),et.defineMIME("application/ld+json",{name:"javascript",jsonld:true}),et.defineMIME("text/typescript",{name:"javascript",typescript:true}),et.defineMIME("application/typescript",{name:"javascript",typescript:true})}(n(0))},function(e,t,n){!function(N){"use strict";function e(e){var t={};for(var n=0;n*\/]/.test(n)){return w(null,"select-op")}else if(n=="."&&e.match(/^-?[_a-z][_a-z0-9-]*/i)){return w("qualifier","qualifier")}else if(/[:;{}\[\]\(\)]/.test(n)){return w(null,n)}else if(e.match(/[\w-.]+(?=\()/)){if(/^(url(-prefix)?|domain|regexp)$/.test(e.current().toLowerCase())){t.tokenize=C}return w("variable callee","variable")}else if(/[\w\\\-]/.test(n)){e.eatWhile(/[\w\\\-]/);return w("property","word")}else{return w(null,null)}}function k(i){return function(e,t){var n=false,r;while((r=e.next())!=null){if(r==i&&!n){if(i==")")e.backUp(1);break}n=!n&&r=="\\"}if(r==i||!n&&i!=")")t.tokenize=null;return w("string","string")}}function C(e,t){e.next();if(!e.match(/\s*[\"\')]/,false))t.tokenize=k(")");else t.tokenize=null;return w(null,"(")}function S(e,t,n){this.type=e;this.indent=t;this.prev=n}function T(e,t,n,r){e.context=new S(n,t.indentation()+(r===false?0:o),e.context);return n}function A(e){if(e.context.prev)e.context=e.context.prev;return e.context.type}function L(e,t,n){return E[n.context.type](e,t,n)}function M(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return L(e,t,n)}function D(e){var t=e.current().toLowerCase();if(p.hasOwnProperty(t))y="atom";else if(h.hasOwnProperty(t))y="keyword";else y="variable"}var E={};E.top=function(e,t,n){if(e=="{"){return T(n,t,"block")}else if(e=="}"&&n.context.prev){return A(n)}else if(v&&/@component/i.test(e)){return T(n,t,"atComponentBlock")}else if(/^@(-moz-)?document$/i.test(e)){return T(n,t,"documentTypes")}else if(/^@(media|supports|(-moz-)?document|import)$/i.test(e)){return T(n,t,"atBlock")}else if(/^@(font-face|counter-style)/i.test(e)){n.stateArg=e;return"restricted_atBlock_before"}else if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e)){return"keyframes"}else if(e&&e.charAt(0)=="@"){return T(n,t,"at")}else if(e=="hash"){y="builtin"}else if(e=="word"){y="tag"}else if(e=="variable-definition"){return"maybeprop"}else if(e=="interpolation"){return T(n,t,"interpolation")}else if(e==":"){return"pseudo"}else if(m&&e=="("){return T(n,t,"parens")}return n.context.type};E.block=function(e,t,n){if(e=="word"){var r=t.current().toLowerCase();if(u.hasOwnProperty(r)){y="property";return"maybeprop"}else if(c.hasOwnProperty(r)){y="string-2";return"maybeprop"}else if(m){y=t.match(/^\s*:(?:\s|$)/,false)?"property":"tag";return"block"}else{y+=" error";return"maybeprop"}}else if(e=="meta"){return"block"}else if(!m&&(e=="hash"||e=="qualifier")){y="error";return"block"}else{return E.top(e,t,n)}};E.maybeprop=function(e,t,n){if(e==":")return T(n,t,"prop");return L(e,t,n)};E.prop=function(e,t,n){if(e==";")return A(n);if(e=="{"&&m)return T(n,t,"propBlock");if(e=="}"||e=="{")return M(e,t,n);if(e=="(")return T(n,t,"parens");if(e=="hash"&&!/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){y+=" error"}else if(e=="word"){D(t)}else if(e=="interpolation"){return T(n,t,"interpolation")}return"prop"};E.propBlock=function(e,t,n){if(e=="}")return A(n);if(e=="word"){y="property";return"maybeprop"}return n.context.type};E.parens=function(e,t,n){if(e=="{"||e=="}")return M(e,t,n);if(e==")")return A(n);if(e=="(")return T(n,t,"parens");if(e=="interpolation")return T(n,t,"interpolation");if(e=="word")D(t);return"parens"};E.pseudo=function(e,t,n){if(e=="meta")return"pseudo";if(e=="word"){y="variable-3";return n.context.type}return L(e,t,n)};E.documentTypes=function(e,t,n){if(e=="word"&&r.hasOwnProperty(t.current())){y="tag";return n.context.type}else{return E.atBlock(e,t,n)}};E.atBlock=function(e,t,n){if(e=="(")return T(n,t,"atBlock_parens");if(e=="}"||e==";")return M(e,t,n);if(e=="{")return A(n)&&T(n,t,m?"block":"top");if(e=="interpolation")return T(n,t,"interpolation");if(e=="word"){var r=t.current().toLowerCase();if(r=="only"||r=="not"||r=="and"||r=="or")y="keyword";else if(a.hasOwnProperty(r))y="attribute";else if(s.hasOwnProperty(r))y="property";else if(l.hasOwnProperty(r))y="keyword";else if(u.hasOwnProperty(r))y="property";else if(c.hasOwnProperty(r))y="string-2";else if(p.hasOwnProperty(r))y="atom";else if(h.hasOwnProperty(r))y="keyword";else y="error"}return n.context.type};E.atComponentBlock=function(e,t,n){if(e=="}")return M(e,t,n);if(e=="{")return A(n)&&T(n,t,m?"block":"top",false);if(e=="word")y="error";return n.context.type};E.atBlock_parens=function(e,t,n){if(e==")")return A(n);if(e=="{"||e=="}")return M(e,t,n,2);return E.atBlock(e,t,n)};E.restricted_atBlock_before=function(e,t,n){if(e=="{")return T(n,t,"restricted_atBlock");if(e=="word"&&n.stateArg=="@counter-style"){y="variable";return"restricted_atBlock_before"}return L(e,t,n)};E.restricted_atBlock=function(e,t,n){if(e=="}"){n.stateArg=null;return A(n)}if(e=="word"){if(n.stateArg=="@font-face"&&!f.hasOwnProperty(t.current().toLowerCase())||n.stateArg=="@counter-style"&&!d.hasOwnProperty(t.current().toLowerCase()))y="error";else y="property";return"maybeprop"}return"restricted_atBlock"};E.keyframes=function(e,t,n){if(e=="word"){y="variable";return"keyframes"}if(e=="{")return T(n,t,"top");return L(e,t,n)};E.at=function(e,t,n){if(e==";")return A(n);if(e=="{"||e=="}")return M(e,t,n);if(e=="word")y="tag";else if(e=="hash")y="builtin";return"at"};E.interpolation=function(e,t,n){if(e=="}")return A(n);if(e=="{"||e==";")return M(e,t,n);if(e=="word")y="variable";else if(e!="variable"&&e!="("&&e!=")")y="error";return"interpolation"};return{startState:function(e){return{tokenize:null,state:n?"block":"top",stateArg:null,context:new S(n?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||x)(e,t);if(n&&typeof n=="object"){b=n[1];n=n[0]}y=n;if(b!="comment")t.state=E[t.state](b,e,t);return y},indent:function(e,t){var n=e.context,r=t&&t.charAt(0);var i=n.indent;if(n.type=="prop"&&(r=="}"||r==")"))n=n.prev;if(n.prev){if(r=="}"&&(n.type=="block"||n.type=="top"||n.type=="interpolation"||n.type=="restricted_atBlock")){n=n.prev;i=n.indent}else if(r==")"&&(n.type=="parens"||n.type=="atBlock_parens")||r=="{"&&(n.type=="at"||n.type=="atBlock")){i=Math.max(0,n.indent-o)}}return i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:g,fold:"brace"}});var t=["domain","regexp","url","url-prefix"],n=e(t),r=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],i=e(r),o=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],a=e(o),s=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],l=e(s),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","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","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],c=e(u),f=["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-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","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],d=e(f),h,p=e(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),m,g=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],b=e(v),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],w=e(y),x=t.concat(r).concat(o).concat(s).concat(u).concat(f).concat(v).concat(y);function k(e,t){var n=false,r;while((r=e.next())!=null){if(n&&r=="/"){t.tokenize=null;break}n=r=="*"}return["comment","comment"]}N.registerHelper("hintWords","css",x),N.defineMIME("text/css",{documentTypes:n,mediaTypes:i,mediaFeatures:a,mediaValueKeywords:l,propertyKeywords:c,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:b,valueKeywords:w,tokenHooks:{"/":function(e,t){if(!e.eat("*"))return false;t.tokenize=k;return k(e,t)}},name:"css"}),N.defineMIME("text/x-scss",{mediaTypes:i,mediaFeatures:a,mediaValueKeywords:l,propertyKeywords:c,nonStandardPropertyKeywords:d,colorKeywords:b,valueKeywords:w,fontProperties:p,allowNested:true,lineComment:"//",tokenHooks:{"/":function(e,t){if(e.eat("/")){e.skipToEnd();return["comment","comment"]}else if(e.eat("*")){t.tokenize=k;return k(e,t)}else{return["operator","operator"]}},":":function(e){if(e.match(/\s*\{/,false))return[null,null];return false},$:function(e){e.match(/^[\w-]+/);if(e.match(/^\s*:/,false))return["variable-2","variable-definition"];return["variable-2","variable"]},"#":function(e){if(!e.eat("{"))return false;return[null,"interpolation"]}},name:"css",helperType:"scss"}),N.defineMIME("text/x-less",{mediaTypes:i,mediaFeatures:a,mediaValueKeywords:l,propertyKeywords:c,nonStandardPropertyKeywords:d,colorKeywords:b,valueKeywords:w,fontProperties:p,allowNested:true,lineComment:"//",tokenHooks:{"/":function(e,t){if(e.eat("/")){e.skipToEnd();return["comment","comment"]}else if(e.eat("*")){t.tokenize=k;return k(e,t)}else{return["operator","operator"]}},"@":function(e){if(e.eat("{"))return[null,"interpolation"];if(e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,false))return false;e.eatWhile(/[\w\\\-]/);if(e.match(/^\s*:/,false))return["variable-2","variable-definition"];return["variable-2","variable"]},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),N.defineMIME("text/x-gss",{documentTypes:n,mediaTypes:i,mediaFeatures:a,propertyKeywords:c,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:b,valueKeywords:w,supportsAtComponent:true,tokenHooks:{"/":function(e,t){if(!e.eat("*"))return false;t.tokenize=k;return k(e,t)}},name:"css",helperType:"gss"})}(n(0))},function(e,t,n){},,,,function(e,t,n){"use strict";n.r(t);n(1);var r=n(0),h=n.n(r);n(5),n(6),n(15),n(16),n(17),n(18),n(19),n(20),n(21),n(22),n(23),n(24),n(25),n(26),n(27),n(28),n(29),n(30),n(10),n(31),n(32);window.CodeMirror=h.a,void 0===window.ImagineConfig&&(window.ImagineConfig={editor:"redactor",redactor:{removeScript:!1,toolbarExternal:"#Imagine-RTE-Toolbar",plugins:[],clips:[],imageResizable:!0,imagePosition:!0,imageUpload:Imagine.imageUploadHandler,fileUpload:Imagine.fileUploadHandler}}),window.Imagine={showViewToolbar:function(n,e,t,r){var i=document.createElement("div");i.id="Imagine-View-Toolbar",i.classList.add("Imagine-Toolbar");var o,a,s,l,u,c="/manage/cms_pages",f="/manage/logout",d=document.querySelector("meta[name=csrf-token]").content;n?(o=""==e?"":"/".concat(e),a=location.href+(location.href.endsWith("/")?"":"/")+"edit",s=c+"/"+n+"/edit",i.innerHTML=''),document.body.prepend(i),document.getElementById("Imagine-Page-Properties-Button").addEventListener("click",function(e){$("#Imagine-Properties-Modal").modal("show"),$("select.dropdown").dropdown({placeholder:!1,fullTextSearch:!0});h.a.fromTextArea(document.getElementById("Imagine-Properties-Form_html_head"),{mode:"htmlmixed",selectionPointer:!0,lineNumbers:!0});return e.preventDefault(),!1}),(l=document.getElementById("Imagine-Display-Version-Select")).addEventListener("change",function(){location.href="".concat(o,"/version/").concat(l.value)}),(u=document.getElementById("Imagine-Published-Version-Select")).classList.toggle("old-version",1\n Pages \n Log out \n '),document.body.prepend(i))},imageUploadHandler:function(e,r,t,i){for(var o,a={},s=0;s## format.large-heading ## (H1)',params:{tag:"h1",block:"heading"}},h2:{title:'## format.medium-heading ## (H2) ',params:{tag:"h2",block:"heading"}},h3:{title:'## format.small-heading ## (H3) ',params:{tag:"h3",block:"heading"}},ul:{title:"• ## format.unordered-list ##",params:{tag:"ul",block:"list"}},ol:{title:"1. ## format.ordered-list ##",params:{tag:"ol",block:"list"}}},subscribe:{"editor.focus":function(){document.body.querySelectorAll(".arx-toolbar-container").forEach(function(e){e.style.display="none"}),this.container.$toolbar.nodes[0].style.display="flex"},"editor.content.change":function(){Imagine.unsavedChanges=!0}}})}document.getElementById("Imagine-Save-Page-Content-Button").addEventListener("click",function(e){e.preventDefault(),window.removeEventListener("beforeunload",t),document.getElementById("Imagine-Edit-Content-Form").submit()})},handleUpload:function(t,n){for(var e=0;e adjusting invoked element"),m=m.closest(p.checkbox),y.refresh())}},setup:function(){y.set.initialLoad(),y.is.indeterminate()?(y.debug("Initial value is indeterminate"),y.indeterminate()):y.is.checked()?(y.debug("Initial value is checked"),y.check()):(y.debug("Initial value is unchecked"),y.uncheck()),y.remove.initialLoad()},refresh:function(){o=m.children(p.label),g=m.children(p.input),v=g[0]},hide:{input:function(){y.verbose("Modifying z-index to be unselectable"),g.addClass(t.hidden)}},show:{input:function(){y.verbose("Modifying z-index to be selectable"),g.removeClass(t.hidden)}},observeChanges:function(){"MutationObserver"in A&&((e=new MutationObserver(function(e){y.debug("DOM tree modified, updating selector cache"),y.refresh()})).observe(u,{childList:!0,subtree:!0}),y.debug("Setting up mutation observer",e))},attachEvents:function(e,t){var n=T(e);t=T.isFunction(y[t])?y[t]:y.toggle,0").insertAfter(g),y.debug("Creating label",o))}},has:{label:function(){return 0 .ui.dimmer",content:".ui.dimmer > .content, .ui.dimmer > .content > .center"},template:{dimmer:function(e){var t,n=C("
").addClass("ui dimmer");return e.displayLoader&&(t=C("
").addClass(e.className.loader).addClass(e.loaderVariation),e.loaderText&&(t.text(e.loaderText),t.addClass("text")),n.append(t)),n}}}}(jQuery,window,document)},function(e,t,n){},function(e,t){!function(ee,te,ne,re){"use strict";ee.isFunction=ee.isFunction||function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},te=void 0!==te&&te.Math==Math?te:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),ee.fn.dropdown=function(B){var V,U=ee(this),$=ee(ne),_=U.selector||"",K="ontouchstart"in ne.documentElement,G=K?"touchstart":"click",X=(new Date).getTime(),Y=[],Q=B,Z="string"==typeof Q,J=[].slice.call(arguments,1);return U.each(function(n){var u,e,t,r,i,o,a,s,l,p=ee.isPlainObject(B)?ee.extend(!0,{},ee.fn.dropdown.settings,B):ee.extend({},ee.fn.dropdown.settings),m=p.className,c=p.message,f=p.fields,g=p.keys,v=p.metadata,d=p.namespace,h=p.regExp,b=p.selector,y=p.error,w=p.templates,x="."+d,k="module-"+d,C=ee(this),S=ee(p.context),T=C.find(b.text),A=C.find(b.search),L=C.find(b.sizer),M=C.find(b.input),D=C.find(b.icon),E=C.find(b.clearIcon),N=0 ").html(i).attr("data-"+v.value,t).attr("data-"+v.text,t).addClass(m.addition).addClass(m.item),p.hideAdditions&&r.addClass(m.hidden),n=n===re?r:n.add(r),q.verbose("Creating user choices for value",t,r))}),n)},userLabels:function(){var e=q.get.userValues();e&&(q.debug("Adding user labels",e),ee.each(e,function(e,t){q.verbose("Adding custom user value"),q.add.label(t,t)}))},menu:function(){O=ee("
").addClass(m.menu).appendTo(C)},sizer:function(){L=ee(" ").addClass(m.sizer).insertAfter(A)}},search:function(e){e=e!==re?e:q.get.query(),q.verbose("Searching for query",e),q.has.minCharacters(e)?q.filter(e):q.hide(null,!0)},select:{firstUnfiltered:function(){q.verbose("Selecting first non-filtered element"),q.remove.selectedItem(),I.not(b.unselectable).not(b.addition+b.hidden).eq(0).addClass(m.selected)},nextAvailable:function(e){var t=(e=e.eq(0)).nextAll(b.item).not(b.unselectable).eq(0),n=e.prevAll(b.item).not(b.unselectable).eq(0);0 ").addClass("remove icon").insertBefore(T)),q.is.search()&&!q.has.search()&&(q.verbose("Adding search input"),A=ee(" ").addClass(m.search).prop("autocomplete","off").insertBefore(T)),q.is.multiple()&&q.is.searchSelection()&&!q.has.sizer()&&q.create.sizer(),p.allowTab&&q.set.tabbable()},select:function(){var e=q.get.selectValues();q.debug("Dropdown initialized on a select",e),C.is("select")&&(M=C),0 ").attr("class",M.attr("class")).addClass(m.selection).addClass(m.dropdown).html(w.dropdown(e,f,p.preserveHTML,p.className)).insertBefore(M),M.hasClass(m.multiple)&&!1===M.prop("multiple")&&(q.error(y.missingMultiple),M.prop("multiple",!0)),M.is("[multiple]")&&q.set.multiple(),M.prop("disabled")&&(q.debug("Disabling dropdown"),C.addClass(m.disabled)),M.removeAttr("required").removeAttr("class").detach().prependTo(C)),q.refresh()},menu:function(e){O.html(w.menu(e,f,p.preserveHTML,p.className)),I=O.find(b.item),P=p.hideDividers?I.parent().children(b.divider):ee()},reference:function(){q.debug("Dropdown behavior was called on select, replacing with closest dropdown"),C=C.parent(b.dropdown),W=C.data(k),j=C.get(0),q.refresh(),q.setup.returnedObject()},returnedObject:function(){var e=U.slice(0,n),t=U.slice(n+1);U=e.add(C).add(t)}},refresh:function(){q.refreshSelectors(),q.refreshData()},refreshItems:function(){I=O.find(b.item),P=p.hideDividers?I.parent().children(b.divider):ee()},refreshSelectors:function(){q.verbose("Refreshing selector cache"),T=C.find(b.text),A=C.find(b.search),M=C.find(b.input),D=C.find(b.icon),N=0