-
Notifications
You must be signed in to change notification settings - Fork 12
/
main.js.map
1 lines (1 loc) · 395 KB
/
main.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap 07c18bc166d8c0419680","webpack:///./index.js","webpack:///./~/riot/riot.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./~/zenscroll/zenscroll.js","webpack:///./~/waypoints/lib/noframework.waypoints.js","webpack:///./less/main.less?2317","webpack:///./less/main.less","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js","webpack:///./js/tags/app.html","webpack:///./js/tags/markdown.html","webpack:///./docs ^\\.\\/.*\\.md$","webpack:///./docs/mixin.md","webpack:///./docs/observable.md","webpack:///./docs/riot.md","webpack:///./docs/router.md","webpack:///./docs/tag.md","webpack:///./docs/templating.md","webpack:///./js/tags/highlight.html"],"names":["document","body","innerHTML","mount","window","undefined","riot","version","settings","__uid","__virtualDom","__tagImpl","GLOBAL_MIXIN","RIOT_PREFIX","RIOT_TAG","RIOT_TAG_IS","T_STRING","T_OBJECT","T_UNDEF","T_FUNCTION","XLINK_NS","XLINK_REGEX","SPECIAL_TAGS_REGEX","RESERVED_WORDS_BLACKLIST","SVG_TAGS_LIST","IE_VERSION","documentMode","FIREFOX","InstallTrigger","observable","el","callbacks","slice","Array","prototype","onEachEvent","e","fn","es","split","l","length","i","name","Object","defineProperties","on","value","events","pos","push","typed","enumerable","writable","configurable","off","arr","cb","splice","one","apply","arguments","trigger","arglen","args","fns","call","busy","concat","RE_ORIGIN","EVENT_LISTENER","REMOVE_EVENT_LISTENER","ADD_EVENT_LISTENER","HAS_ATTRIBUTE","REPLACE","POPSTATE","HASHCHANGE","TRIGGER","MAX_EMIT_STACK_LEVEL","win","doc","hist","history","loc","location","prot","Router","clickEvent","ontouchstart","started","central","routeFound","debouncedEmit","base","current","parser","secondParser","emitStack","emitStackLevel","DEFAULT_PARSER","path","DEFAULT_SECOND_PARSER","filter","re","RegExp","match","debounce","delay","t","clearTimeout","setTimeout","start","autoExec","emit","click","$","s","bind","normalize","isString","str","getPathFromRoot","href","getPathFromBase","force","isRoot","first","shift","which","metaKey","ctrlKey","shiftKey","defaultPrevented","target","nodeName","parentNode","indexOf","go","title","preventDefault","shouldReplace","replaceState","pushState","m","second","third","r","some","action","mainRouter","route","create","newSubRouter","router","stop","arg","exec","fn2","query","q","_","k","v","readyState","brackets","UNDEF","REGLOB","R_MLCOMMS","R_STRINGS","S_QBLOCKS","source","UNSUPPORTED","NEED_ESCAPE","FINDBRACES","DEFAULT","_pairs","cachedBrackets","_regex","_cache","_settings","_loopback","_rewrite","bp","replace","global","_create","pair","test","Error","_brackets","reOrIdx","tmpl","_bp","parts","isexpr","lastIndex","index","skipBraces","unescapeStr","ch","ix","recch","hasExpr","loopKeys","expr","key","val","trim","array","_reset","_setSettings","o","b","defineProperty","set","get","_tmpl","data","_logErr","haveRaw","hasRaw","clearCache","errorHandler","err","ctx","riotData","tagName","root","_riot_id","_getTmpl","Function","CH_IDEXPR","String","fromCharCode","RE_CSNAME","RE_QBLOCK","RE_DQUOTE","RE_QBMARK","qstr","j","list","_parseExpr","join","RE_BREND","asText","div","cnt","jsb","rightContext","_wrapExpr","mm","lv","ir","JS_CONTEXT","JS_VARNAME","JS_NOPROPS","tb","p","mvar","mkdom","_mkdom","reHasYield","reYieldAll","reYieldSrc","reYieldDest","rootEls","tr","th","td","col","tblTags","templ","html","checkSvg","toLowerCase","mkEl","isSVGTag","replaceYield","specialTags","setInnerHTML","stub","select","parent","firstChild","selectedIndex","tname","childElementCount","src","ref","text","def","mkitem","item","unmountRedundant","items","tags","unmount","moveNestedTags","child","keys","forEach","tag","isArray","each","moveChildTag","addVirtual","_root","sib","_virts","nextSibling","insertBefore","appendChild","moveVirtual","len","insertTag","isVirtual","prevTag","newTag","virtualFn","dom","isInStub","childNodes","_each","remAttr","mustReorder","getAttr","getTagName","impl","getOuterHTML","useRoot","createTextNode","getTag","isOption","oldItems","hasKeys","removeChild","frag","createDocumentFragment","map","itemsLength","_mustReorder","oldPos","Tag","isLoop","hasImpl","cloneNode","update","contains","_item","multiple","n","__riot1374","styleManager","_riot","add","inject","styleNode","newNode","setAttr","userNode","id","replaceChild","getElementsByTagName","cssTextProp","styleSheet","stylesToInject","css","cssText","parseNamedElements","childTags","forceParsingNamed","walk","nodeType","initChildTag","setNamed","parseExpressions","expressions","addExpr","extra","extend","type","attr","nodeValue","attributes","bool","conf","self","opts","inherit","cleanUpData","propsInSyncWithParent","_tag","isMounted","updateOpts","toCamel","normalizeData","isWritable","inheritFrom","mustSync","isInherited","isObject","rAF","mix","instance","props","obj","mixin","isFunction","proto","getPrototypeOf","getOwnPropertyNames","descriptor","getOwnPropertyDescriptor","hasGetterSetter","hasOwnProperty","init","globalMixin","_parent","toggle","attrs","walkAttributes","keepRootTag","ptag","tagIndex","getImmediateCustomParentTag","onChildUpdate","isMount","evt","setEventHandler","handler","event","currentTarget","srcElement","charCode","keyCode","returnValue","preventUpdate","insertTo","node","before","attrName","remove","inStub","style","display","startsWith","els","outerHTML","container","DOMParser","parseFromString","ownerDocument","importNode","documentElement","removeAttribute","string","c","toUpperCase","getAttribute","xlink","setAttributeNS","setAttribute","addChildTag","cachedTag","newPos","options","namedTag","a","isSvg","createElementNS","createElement","$$","selector","querySelectorAll","querySelector","getNamedKey","isArr","w","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","navigator","userAgent","lastTime","nowtime","Date","now","timeout","Math","max","mountTo","_innerHTML","util","mixins","globals","_id","g","store","tag2","allTags","addRiotTags","selectAllTags","pushTags","riotTag","nodeList","_el","vdom","exports","module","factory","define","zenscroll","createScroller","scrollContainer","defaultDuration","edgeOffset","scrollTimeoutId","setScrollTimeoutId","newValue","docElem","nativeSmoothScrollEnabled","getComputedStyle","getScrollTop","scrollTop","scrollY","getViewHeight","min","offsetHeight","innerHeight","clientHeight","getRelativeTopOf","elem","offsetTop","getBoundingClientRect","top","stopScroll","scrollToY","endY","duration","onDone","scrollTo","startY","distance","abs","startTime","getTime","loopScroll","y","floor","scrollHeight","scrollToElem","scrollIntoView","elemHeight","height","elemTop","elemBottom","containerHeight","containerTop","containerBottom","scrollToCenterOf","offset","setup","newDefaultDuration","newEdgeOffset","to","toY","intoView","center","moving","defaultScroller","scrollBehavior","noZensmooth","replaceUrl","hash","addEventListener","anchor","altKey","targetId","substring","targetElem","getElementById","keyCounter","allWaypoints","Waypoint","element","Adapter","defaults","adapter","callback","axis","horizontal","enabled","triggerPoint","group","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","queueTrigger","direction","destroy","disable","enable","refresh","next","previous","invokeAll","method","allWaypointsArray","waypointKey","end","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","viewportWidth","clientWidth","adapters","continuous","outerHeight","innerWidth","outerWidth","requestAnimationFrameShim","contexts","oldWindowLoad","onload","didScroll","didResize","oldScroll","x","scrollLeft","waypoints","vertical","waypointContextKey","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","waypoint","checkEmpty","horizontalEmpty","isEmptyObject","verticalEmpty","isWindow","resizeHandler","handleResize","scrollHandler","handleScroll","isTouch","triggeredGroups","axes","newScroll","forward","backward","axisKey","isForward","wasBeforeTriggerPoint","nowAfterTriggerPoint","crossedForward","crossedBackward","groupKey","flushTriggers","contextOffset","left","contextScroll","contextDimension","offsetProp","adjustment","oldTriggerPoint","elementOffset","freshWaypoint","contextModifier","wasBeforeScroll","nowAfterScroll","triggeredBackward","triggeredForward","parseFloat","ceil","findByElement","contextId","requestFn","byTriggerPoint","byReverseTriggerPoint","groups","clearTriggerQueues","triggerQueues","up","down","right","reverse","sort","inArray","isLast","last","getWindow","defaultView","NoFrameworkAdapter","handlers","isWin","removeListeners","listeners","listener","removeEventListener","eventParts","eventType","namespace","ns","rect","pageYOffset","clientTop","pageXOffset","clientLeft","nsHandlers","nsTypeList","includeMargin","computedStyle","parseInt","marginTop","marginBottom","width","marginLeft","marginRight","merge","toString","result","modules","mediaQuery","alreadyImportedModules","shortcuts","docs","filterShortcuts","shortcut","active","values","levelNames","getGroupNames","level","removeClass","classList","toggleItem","resetShortcuts","getGroupLevel","code","activeElement","blur","focus","main","markdown","currentNode","previousShortcut","levelBefore","highestGroup","innerText","content","require","file","searchQueries","find","searchQuery"],"mappings":"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CtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD;;AAEA,8BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;AACA;;;;;;;;;ACrPA1O,MAAK6e,IAAL,CAAU,KAAV,EAAiB,qnFAAjB,EAAwoF,0UAAxoF,EAAo9F,EAAp9F,EAAw9F,UAAShH,IAAT,EAAe;AAAA;;AAC/9F,UAAKwV,SAAL,GAAiB,EAAjB;;AAEA,UAAKC,IAAL,GAAY,CACR,YADQ,EAER,KAFQ,EAGR,MAHQ,EAIR,OAJQ,EAKR,YALQ,EAMR,QANQ,CAAZ;;AASA,UAAKjrB,IAAL,GAAY,KAAKirB,IAAL,CAAU,CAAV,CAAZ;;AAEA,UAAKrtB,OAAL,GAAeD,KAAKC,OAApB;;AAEA,UAAKstB,eAAL,GAAuB,UAASzrB,CAAT,EAAY;AAAA;;AAC/B,aAAIW,QAAQ,KAAKuD,MAAL,CAAYvD,KAAZ,CAAkB0Z,WAAlB,GAAgClR,OAAhC,CAAwC,MAAxC,EAAg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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 07c18bc166d8c0419680","import riot from 'riot'\nimport 'zenscroll'\nimport Waypoint from './node_modules/waypoints/lib/noframework.waypoints.js'\nimport './less/main.less'\nimport './js/tags/app.html'\nimport './js/tags/markdown.html'\nimport './js/tags/highlight.html'\n\ndocument.body.innerHTML = '<app></app>'\nriot.mount('*')\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","/* Riot v2.6.7, @license MIT */\n\n;(function(window, undefined) {\n 'use strict';\nvar riot = { version: 'v2.6.7', settings: {} },\n // be aware, internal usage\n // ATTENTION: prefix the global dynamic variables with `__`\n\n // counter to give a unique id to all the Tag instances\n __uid = 0,\n // tags instances cache\n __virtualDom = [],\n // tags implementation cache\n __tagImpl = {},\n\n /**\n * Const\n */\n GLOBAL_MIXIN = '__global_mixin',\n\n // riot specific prefixes\n RIOT_PREFIX = 'riot-',\n RIOT_TAG = RIOT_PREFIX + 'tag',\n RIOT_TAG_IS = 'data-is',\n\n // for typeof == '' comparisons\n T_STRING = 'string',\n T_OBJECT = 'object',\n T_UNDEF = 'undefined',\n T_FUNCTION = 'function',\n XLINK_NS = 'http://www.w3.org/1999/xlink',\n XLINK_REGEX = /^xlink:(\\w+)/,\n // special native tags that cannot be treated like the others\n SPECIAL_TAGS_REGEX = /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?|opt(?:ion|group))$/,\n RESERVED_WORDS_BLACKLIST = /^(?:_(?:item|id|parent)|update|root|(?:un)?mount|mixin|is(?:Mounted|Loop)|tags|parent|opts|trigger|o(?:n|ff|ne))$/,\n // SVG tags list https://www.w3.org/TR/SVG/attindex.html#PresentationAttributes\n SVG_TAGS_LIST = ['altGlyph', 'animate', 'animateColor', 'circle', 'clipPath', 'defs', 'ellipse', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feFlood', 'feGaussianBlur', 'feImage', 'feMerge', 'feMorphology', 'feOffset', 'feSpecularLighting', 'feTile', 'feTurbulence', 'filter', 'font', 'foreignObject', 'g', 'glyph', 'glyphRef', 'image', 'line', 'linearGradient', 'marker', 'mask', 'missing-glyph', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'switch', 'symbol', 'text', 'textPath', 'tref', 'tspan', 'use'],\n\n // version# for IE 8-11, 0 for others\n IE_VERSION = (window && window.document || {}).documentMode | 0,\n\n // detect firefox to fix #1374\n FIREFOX = window && !!window.InstallTrigger\n/* istanbul ignore next */\nriot.observable = function(el) {\n\n /**\n * Extend the original object or create a new empty one\n * @type { Object }\n */\n\n el = el || {}\n\n /**\n * Private variables\n */\n var callbacks = {},\n slice = Array.prototype.slice\n\n /**\n * Private Methods\n */\n\n /**\n * Helper function needed to get and loop all the events in a string\n * @param { String } e - event string\n * @param {Function} fn - callback\n */\n function onEachEvent(e, fn) {\n var es = e.split(' '), l = es.length, i = 0\n for (; i < l; i++) {\n var name = es[i]\n if (name) fn(name, i)\n }\n }\n\n /**\n * Public Api\n */\n\n // extend the el object adding the observable methods\n Object.defineProperties(el, {\n /**\n * Listen to the given space separated list of `events` and\n * execute the `callback` each time an event is triggered.\n * @param { String } events - events ids\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n on: {\n value: function(events, fn) {\n if (typeof fn != 'function') return el\n\n onEachEvent(events, function(name, pos) {\n (callbacks[name] = callbacks[name] || []).push(fn)\n fn.typed = pos > 0\n })\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Removes the given space separated list of `events` listeners\n * @param { String } events - events ids\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n off: {\n value: function(events, fn) {\n if (events == '*' && !fn) callbacks = {}\n else {\n onEachEvent(events, function(name, pos) {\n if (fn) {\n var arr = callbacks[name]\n for (var i = 0, cb; cb = arr && arr[i]; ++i) {\n if (cb == fn) arr.splice(i--, 1)\n }\n } else delete callbacks[name]\n })\n }\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Listen to the given space separated list of `events` and\n * execute the `callback` at most once\n * @param { String } events - events ids\n * @param { Function } fn - callback function\n * @returns { Object } el\n */\n one: {\n value: function(events, fn) {\n function on() {\n el.off(events, on)\n fn.apply(el, arguments)\n }\n return el.on(events, on)\n },\n enumerable: false,\n writable: false,\n configurable: false\n },\n\n /**\n * Execute all callback functions that listen to\n * the given space separated list of `events`\n * @param { String } events - events ids\n * @returns { Object } el\n */\n trigger: {\n value: function(events) {\n\n // getting the arguments\n var arglen = arguments.length - 1,\n args = new Array(arglen),\n fns\n\n for (var i = 0; i < arglen; i++) {\n args[i] = arguments[i + 1] // skip first argument\n }\n\n onEachEvent(events, function(name, pos) {\n\n fns = slice.call(callbacks[name] || [], 0)\n\n for (var i = 0, fn; fn = fns[i]; ++i) {\n if (fn.busy) continue\n fn.busy = 1\n fn.apply(el, fn.typed ? [name].concat(args) : args)\n if (fns[i] !== fn) { i-- }\n fn.busy = 0\n }\n\n if (callbacks['*'] && name != '*')\n el.trigger.apply(el, ['*', name].concat(args))\n\n })\n\n return el\n },\n enumerable: false,\n writable: false,\n configurable: false\n }\n })\n\n return el\n\n}\n/* istanbul ignore next */\n;(function(riot) {\n\n/**\n * Simple client-side router\n * @module riot-route\n */\n\n\nvar RE_ORIGIN = /^.+?\\/\\/+[^\\/]+/,\n EVENT_LISTENER = 'EventListener',\n REMOVE_EVENT_LISTENER = 'remove' + EVENT_LISTENER,\n ADD_EVENT_LISTENER = 'add' + EVENT_LISTENER,\n HAS_ATTRIBUTE = 'hasAttribute',\n REPLACE = 'replace',\n POPSTATE = 'popstate',\n HASHCHANGE = 'hashchange',\n TRIGGER = 'trigger',\n MAX_EMIT_STACK_LEVEL = 3,\n win = typeof window != 'undefined' && window,\n doc = typeof document != 'undefined' && document,\n hist = win && history,\n loc = win && (hist.location || win.location), // see html5-history-api\n prot = Router.prototype, // to minify more\n clickEvent = doc && doc.ontouchstart ? 'touchstart' : 'click',\n started = false,\n central = riot.observable(),\n routeFound = false,\n debouncedEmit,\n base, current, parser, secondParser, emitStack = [], emitStackLevel = 0\n\n/**\n * Default parser. You can replace it via router.parser method.\n * @param {string} path - current path (normalized)\n * @returns {array} array\n */\nfunction DEFAULT_PARSER(path) {\n return path.split(/[/?#]/)\n}\n\n/**\n * Default parser (second). You can replace it via router.parser method.\n * @param {string} path - current path (normalized)\n * @param {string} filter - filter string (normalized)\n * @returns {array} array\n */\nfunction DEFAULT_SECOND_PARSER(path, filter) {\n var re = new RegExp('^' + filter[REPLACE](/\\*/g, '([^/?#]+?)')[REPLACE](/\\.\\./, '.*') + '$'),\n args = path.match(re)\n\n if (args) return args.slice(1)\n}\n\n/**\n * Simple/cheap debounce implementation\n * @param {function} fn - callback\n * @param {number} delay - delay in seconds\n * @returns {function} debounced function\n */\nfunction debounce(fn, delay) {\n var t\n return function () {\n clearTimeout(t)\n t = setTimeout(fn, delay)\n }\n}\n\n/**\n * Set the window listeners to trigger the routes\n * @param {boolean} autoExec - see route.start\n */\nfunction start(autoExec) {\n debouncedEmit = debounce(emit, 1)\n win[ADD_EVENT_LISTENER](POPSTATE, debouncedEmit)\n win[ADD_EVENT_LISTENER](HASHCHANGE, debouncedEmit)\n doc[ADD_EVENT_LISTENER](clickEvent, click)\n if (autoExec) emit(true)\n}\n\n/**\n * Router class\n */\nfunction Router() {\n this.$ = []\n riot.observable(this) // make it observable\n central.on('stop', this.s.bind(this))\n central.on('emit', this.e.bind(this))\n}\n\nfunction normalize(path) {\n return path[REPLACE](/^\\/|\\/$/, '')\n}\n\nfunction isString(str) {\n return typeof str == 'string'\n}\n\n/**\n * Get the part after domain name\n * @param {string} href - fullpath\n * @returns {string} path from root\n */\nfunction getPathFromRoot(href) {\n return (href || loc.href)[REPLACE](RE_ORIGIN, '')\n}\n\n/**\n * Get the part after base\n * @param {string} href - fullpath\n * @returns {string} path from base\n */\nfunction getPathFromBase(href) {\n return base[0] == '#'\n ? (href || loc.href || '').split(base)[1] || ''\n : (loc ? getPathFromRoot(href) : href || '')[REPLACE](base, '')\n}\n\nfunction emit(force) {\n // the stack is needed for redirections\n var isRoot = emitStackLevel == 0, first\n if (MAX_EMIT_STACK_LEVEL <= emitStackLevel) return\n\n emitStackLevel++\n emitStack.push(function() {\n var path = getPathFromBase()\n if (force || path != current) {\n central[TRIGGER]('emit', path)\n current = path\n }\n })\n if (isRoot) {\n while (first = emitStack.shift()) first() // stack increses within this call\n emitStackLevel = 0\n }\n}\n\nfunction click(e) {\n if (\n e.which != 1 // not left click\n || e.metaKey || e.ctrlKey || e.shiftKey // or meta keys\n || e.defaultPrevented // or default prevented\n ) return\n\n var el = e.target\n while (el && el.nodeName != 'A') el = el.parentNode\n\n if (\n !el || el.nodeName != 'A' // not A tag\n || el[HAS_ATTRIBUTE]('download') // has download attr\n || !el[HAS_ATTRIBUTE]('href') // has no href attr\n || el.target && el.target != '_self' // another window or frame\n || el.href.indexOf(loc.href.match(RE_ORIGIN)[0]) == -1 // cross origin\n ) return\n\n if (el.href != loc.href\n && (\n el.href.split('#')[0] == loc.href.split('#')[0] // internal jump\n || base[0] != '#' && getPathFromRoot(el.href).indexOf(base) !== 0 // outside of base\n || base[0] == '#' && el.href.split(base)[0] != loc.href.split(base)[0] // outside of #base\n || !go(getPathFromBase(el.href), el.title || doc.title) // route not found\n )) return\n\n e.preventDefault()\n}\n\n/**\n * Go to the path\n * @param {string} path - destination path\n * @param {string} title - page title\n * @param {boolean} shouldReplace - use replaceState or pushState\n * @returns {boolean} - route not found flag\n */\nfunction go(path, title, shouldReplace) {\n // Server-side usage: directly execute handlers for the path\n if (!hist) return central[TRIGGER]('emit', getPathFromBase(path))\n\n path = base + normalize(path)\n title = title || doc.title\n // browsers ignores the second parameter `title`\n shouldReplace\n ? hist.replaceState(null, title, path)\n : hist.pushState(null, title, path)\n // so we need to set it manually\n doc.title = title\n routeFound = false\n emit()\n return routeFound\n}\n\n/**\n * Go to path or set action\n * a single string: go there\n * two strings: go there with setting a title\n * two strings and boolean: replace history with setting a title\n * a single function: set an action on the default route\n * a string/RegExp and a function: set an action on the route\n * @param {(string|function)} first - path / action / filter\n * @param {(string|RegExp|function)} second - title / action\n * @param {boolean} third - replace flag\n */\nprot.m = function(first, second, third) {\n if (isString(first) && (!second || isString(second))) go(first, second, third || false)\n else if (second) this.r(first, second)\n else this.r('@', first)\n}\n\n/**\n * Stop routing\n */\nprot.s = function() {\n this.off('*')\n this.$ = []\n}\n\n/**\n * Emit\n * @param {string} path - path\n */\nprot.e = function(path) {\n this.$.concat('@').some(function(filter) {\n var args = (filter == '@' ? parser : secondParser)(normalize(path), normalize(filter))\n if (typeof args != 'undefined') {\n this[TRIGGER].apply(null, [filter].concat(args))\n return routeFound = true // exit from loop\n }\n }, this)\n}\n\n/**\n * Register route\n * @param {string} filter - filter for matching to url\n * @param {function} action - action to register\n */\nprot.r = function(filter, action) {\n if (filter != '@') {\n filter = '/' + normalize(filter)\n this.$.push(filter)\n }\n this.on(filter, action)\n}\n\nvar mainRouter = new Router()\nvar route = mainRouter.m.bind(mainRouter)\n\n/**\n * Create a sub router\n * @returns {function} the method of a new Router object\n */\nroute.create = function() {\n var newSubRouter = new Router()\n // assign sub-router's main method\n var router = newSubRouter.m.bind(newSubRouter)\n // stop only this sub-router\n router.stop = newSubRouter.s.bind(newSubRouter)\n return router\n}\n\n/**\n * Set the base of url\n * @param {(str|RegExp)} arg - a new base or '#' or '#!'\n */\nroute.base = function(arg) {\n base = arg || '#'\n current = getPathFromBase() // recalculate current path\n}\n\n/** Exec routing right now **/\nroute.exec = function() {\n emit(true)\n}\n\n/**\n * Replace the default router to yours\n * @param {function} fn - your parser function\n * @param {function} fn2 - your secondParser function\n */\nroute.parser = function(fn, fn2) {\n if (!fn && !fn2) {\n // reset parser for testing...\n parser = DEFAULT_PARSER\n secondParser = DEFAULT_SECOND_PARSER\n }\n if (fn) parser = fn\n if (fn2) secondParser = fn2\n}\n\n/**\n * Helper function to get url query as an object\n * @returns {object} parsed query\n */\nroute.query = function() {\n var q = {}\n var href = loc.href || current\n href[REPLACE](/[?&](.+?)=([^&]*)/g, function(_, k, v) { q[k] = v })\n return q\n}\n\n/** Stop routing **/\nroute.stop = function () {\n if (started) {\n if (win) {\n win[REMOVE_EVENT_LISTENER](POPSTATE, debouncedEmit)\n win[REMOVE_EVENT_LISTENER](HASHCHANGE, debouncedEmit)\n doc[REMOVE_EVENT_LISTENER](clickEvent, click)\n }\n central[TRIGGER]('stop')\n started = false\n }\n}\n\n/**\n * Start routing\n * @param {boolean} autoExec - automatically exec after starting if true\n */\nroute.start = function (autoExec) {\n if (!started) {\n if (win) {\n if (document.readyState == 'complete') start(autoExec)\n // the timeout is needed to solve\n // a weird safari bug https://github.com/riot/route/issues/33\n else win[ADD_EVENT_LISTENER]('load', function() {\n setTimeout(function() { start(autoExec) }, 1)\n })\n }\n started = true\n }\n}\n\n/** Prepare the router **/\nroute.base()\nroute.parser()\n\nriot.route = route\n})(riot)\n/* istanbul ignore next */\n\n/**\n * The riot template engine\n * @version v2.4.2\n */\n/**\n * riot.util.brackets\n *\n * - `brackets ` - Returns a string or regex based on its parameter\n * - `brackets.set` - Change the current riot brackets\n *\n * @module\n */\n\nvar brackets = (function (UNDEF) {\n\n var\n REGLOB = 'g',\n\n R_MLCOMMS = /\\/\\*[^*]*\\*+(?:[^*\\/][^*]*\\*+)*\\//g,\n\n R_STRINGS = /\"[^\"\\\\]*(?:\\\\[\\S\\s][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\S\\s][^'\\\\]*)*'/g,\n\n S_QBLOCKS = R_STRINGS.source + '|' +\n /(?:\\breturn\\s+|(?:[$\\w\\)\\]]|\\+\\+|--)\\s*(\\/)(?![*\\/]))/.source + '|' +\n /\\/(?=[^*\\/])[^[\\/\\\\]*(?:(?:\\[(?:\\\\.|[^\\]\\\\]*)*\\]|\\\\.)[^[\\/\\\\]*)*?(\\/)[gim]*/.source,\n\n UNSUPPORTED = RegExp('[\\\\' + 'x00-\\\\x1F<>a-zA-Z0-9\\'\",;\\\\\\\\]'),\n\n NEED_ESCAPE = /(?=[[\\]()*+?.^$|])/g,\n\n FINDBRACES = {\n '(': RegExp('([()])|' + S_QBLOCKS, REGLOB),\n '[': RegExp('([[\\\\]])|' + S_QBLOCKS, REGLOB),\n '{': RegExp('([{}])|' + S_QBLOCKS, REGLOB)\n },\n\n DEFAULT = '{ }'\n\n var _pairs = [\n '{', '}',\n '{', '}',\n /{[^}]*}/,\n /\\\\([{}])/g,\n /\\\\({)|{/g,\n RegExp('\\\\\\\\(})|([[({])|(})|' + S_QBLOCKS, REGLOB),\n DEFAULT,\n /^\\s*{\\^?\\s*([$\\w]+)(?:\\s*,\\s*(\\S+))?\\s+in\\s+(\\S.*)\\s*}/,\n /(^|[^\\\\]){=[\\S\\s]*?}/\n ]\n\n var\n cachedBrackets = UNDEF,\n _regex,\n _cache = [],\n _settings\n\n function _loopback (re) { return re }\n\n function _rewrite (re, bp) {\n if (!bp) bp = _cache\n return new RegExp(\n re.source.replace(/{/g, bp[2]).replace(/}/g, bp[3]), re.global ? REGLOB : ''\n )\n }\n\n function _create (pair) {\n if (pair === DEFAULT) return _pairs\n\n var arr = pair.split(' ')\n\n if (arr.length !== 2 || UNSUPPORTED.test(pair)) {\n throw new Error('Unsupported brackets \"' + pair + '\"')\n }\n arr = arr.concat(pair.replace(NEED_ESCAPE, '\\\\').split(' '))\n\n arr[4] = _rewrite(arr[1].length > 1 ? /{[\\S\\s]*?}/ : _pairs[4], arr)\n arr[5] = _rewrite(pair.length > 3 ? /\\\\({|})/g : _pairs[5], arr)\n arr[6] = _rewrite(_pairs[6], arr)\n arr[7] = RegExp('\\\\\\\\(' + arr[3] + ')|([[({])|(' + arr[3] + ')|' + S_QBLOCKS, REGLOB)\n arr[8] = pair\n return arr\n }\n\n function _brackets (reOrIdx) {\n return reOrIdx instanceof RegExp ? _regex(reOrIdx) : _cache[reOrIdx]\n }\n\n _brackets.split = function split (str, tmpl, _bp) {\n // istanbul ignore next: _bp is for the compiler\n if (!_bp) _bp = _cache\n\n var\n parts = [],\n match,\n isexpr,\n start,\n pos,\n re = _bp[6]\n\n isexpr = start = re.lastIndex = 0\n\n while ((match = re.exec(str))) {\n\n pos = match.index\n\n if (isexpr) {\n\n if (match[2]) {\n re.lastIndex = skipBraces(str, match[2], re.lastIndex)\n continue\n }\n if (!match[3]) {\n continue\n }\n }\n\n if (!match[1]) {\n unescapeStr(str.slice(start, pos))\n start = re.lastIndex\n re = _bp[6 + (isexpr ^= 1)]\n re.lastIndex = start\n }\n }\n\n if (str && start < str.length) {\n unescapeStr(str.slice(start))\n }\n\n return parts\n\n function unescapeStr (s) {\n if (tmpl || isexpr) {\n parts.push(s && s.replace(_bp[5], '$1'))\n } else {\n parts.push(s)\n }\n }\n\n function skipBraces (s, ch, ix) {\n var\n match,\n recch = FINDBRACES[ch]\n\n recch.lastIndex = ix\n ix = 1\n while ((match = recch.exec(s))) {\n if (match[1] &&\n !(match[1] === ch ? ++ix : --ix)) break\n }\n return ix ? s.length : recch.lastIndex\n }\n }\n\n _brackets.hasExpr = function hasExpr (str) {\n return _cache[4].test(str)\n }\n\n _brackets.loopKeys = function loopKeys (expr) {\n var m = expr.match(_cache[9])\n\n return m\n ? { key: m[1], pos: m[2], val: _cache[0] + m[3].trim() + _cache[1] }\n : { val: expr.trim() }\n }\n\n _brackets.array = function array (pair) {\n return pair ? _create(pair) : _cache\n }\n\n function _reset (pair) {\n if ((pair || (pair = DEFAULT)) !== _cache[8]) {\n _cache = _create(pair)\n _regex = pair === DEFAULT ? _loopback : _rewrite\n _cache[9] = _regex(_pairs[9])\n }\n cachedBrackets = pair\n }\n\n function _setSettings (o) {\n var b\n\n o = o || {}\n b = o.brackets\n Object.defineProperty(o, 'brackets', {\n set: _reset,\n get: function () { return cachedBrackets },\n enumerable: true\n })\n _settings = o\n _reset(b)\n }\n\n Object.defineProperty(_brackets, 'settings', {\n set: _setSettings,\n get: function () { return _settings }\n })\n\n /* istanbul ignore next: in the browser riot is always in the scope */\n _brackets.settings = typeof riot !== 'undefined' && riot.settings || {}\n _brackets.set = _reset\n\n _brackets.R_STRINGS = R_STRINGS\n _brackets.R_MLCOMMS = R_MLCOMMS\n _brackets.S_QBLOCKS = S_QBLOCKS\n\n return _brackets\n\n})()\n\n/**\n * @module tmpl\n *\n * tmpl - Root function, returns the template value, render with data\n * tmpl.hasExpr - Test the existence of a expression inside a string\n * tmpl.loopKeys - Get the keys for an 'each' loop (used by `_each`)\n */\n\nvar tmpl = (function () {\n\n var _cache = {}\n\n function _tmpl (str, data) {\n if (!str) return str\n\n return (_cache[str] || (_cache[str] = _create(str))).call(data, _logErr)\n }\n\n _tmpl.haveRaw = brackets.hasRaw\n\n _tmpl.hasExpr = brackets.hasExpr\n\n _tmpl.loopKeys = brackets.loopKeys\n\n // istanbul ignore next\n _tmpl.clearCache = function () { _cache = {} }\n\n _tmpl.errorHandler = null\n\n function _logErr (err, ctx) {\n\n if (_tmpl.errorHandler) {\n\n err.riotData = {\n tagName: ctx && ctx.root && ctx.root.tagName,\n _riot_id: ctx && ctx._riot_id //eslint-disable-line camelcase\n }\n _tmpl.errorHandler(err)\n }\n }\n\n function _create (str) {\n var expr = _getTmpl(str)\n\n if (expr.slice(0, 11) !== 'try{return ') expr = 'return ' + expr\n\n return new Function('E', expr + ';') // eslint-disable-line no-new-func\n }\n\n var\n CH_IDEXPR = String.fromCharCode(0x2057),\n RE_CSNAME = /^(?:(-?[_A-Za-z\\xA0-\\xFF][-\\w\\xA0-\\xFF]*)|\\u2057(\\d+)~):/,\n RE_QBLOCK = RegExp(brackets.S_QBLOCKS, 'g'),\n RE_DQUOTE = /\\u2057/g,\n RE_QBMARK = /\\u2057(\\d+)~/g\n\n function _getTmpl (str) {\n var\n qstr = [],\n expr,\n parts = brackets.split(str.replace(RE_DQUOTE, '\"'), 1)\n\n if (parts.length > 2 || parts[0]) {\n var i, j, list = []\n\n for (i = j = 0; i < parts.length; ++i) {\n\n expr = parts[i]\n\n if (expr && (expr = i & 1\n\n ? _parseExpr(expr, 1, qstr)\n\n : '\"' + expr\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\r\\n?|\\n/g, '\\\\n')\n .replace(/\"/g, '\\\\\"') +\n '\"'\n\n )) list[j++] = expr\n\n }\n\n expr = j < 2 ? list[0]\n : '[' + list.join(',') + '].join(\"\")'\n\n } else {\n\n expr = _parseExpr(parts[1], 0, qstr)\n }\n\n if (qstr[0]) {\n expr = expr.replace(RE_QBMARK, function (_, pos) {\n return qstr[pos]\n .replace(/\\r/g, '\\\\r')\n .replace(/\\n/g, '\\\\n')\n })\n }\n return expr\n }\n\n var\n RE_BREND = {\n '(': /[()]/g,\n '[': /[[\\]]/g,\n '{': /[{}]/g\n }\n\n function _parseExpr (expr, asText, qstr) {\n\n expr = expr\n .replace(RE_QBLOCK, function (s, div) {\n return s.length > 2 && !div ? CH_IDEXPR + (qstr.push(s) - 1) + '~' : s\n })\n .replace(/\\s+/g, ' ').trim()\n .replace(/\\ ?([[\\({},?\\.:])\\ ?/g, '$1')\n\n if (expr) {\n var\n list = [],\n cnt = 0,\n match\n\n while (expr &&\n (match = expr.match(RE_CSNAME)) &&\n !match.index\n ) {\n var\n key,\n jsb,\n re = /,|([[{(])|$/g\n\n expr = RegExp.rightContext\n key = match[2] ? qstr[match[2]].slice(1, -1).trim().replace(/\\s+/g, ' ') : match[1]\n\n while (jsb = (match = re.exec(expr))[1]) skipBraces(jsb, re)\n\n jsb = expr.slice(0, match.index)\n expr = RegExp.rightContext\n\n list[cnt++] = _wrapExpr(jsb, 1, key)\n }\n\n expr = !cnt ? _wrapExpr(expr, asText)\n : cnt > 1 ? '[' + list.join(',') + '].join(\" \").trim()' : list[0]\n }\n return expr\n\n function skipBraces (ch, re) {\n var\n mm,\n lv = 1,\n ir = RE_BREND[ch]\n\n ir.lastIndex = re.lastIndex\n while (mm = ir.exec(expr)) {\n if (mm[0] === ch) ++lv\n else if (!--lv) break\n }\n re.lastIndex = lv ? expr.length : ir.lastIndex\n }\n }\n\n // istanbul ignore next: not both\n var // eslint-disable-next-line max-len\n JS_CONTEXT = '\"in this?this:' + (typeof window !== 'object' ? 'global' : 'window') + ').',\n JS_VARNAME = /[,{][\\$\\w]+(?=:)|(^ *|[^$\\w\\.{])(?!(?:typeof|true|false|null|undefined|in|instanceof|is(?:Finite|NaN)|void|NaN|new|Date|RegExp|Math)(?![$\\w]))([$_A-Za-z][$\\w]*)/g,\n JS_NOPROPS = /^(?=(\\.[$\\w]+))\\1(?:[^.[(]|$)/\n\n function _wrapExpr (expr, asText, key) {\n var tb\n\n expr = expr.replace(JS_VARNAME, function (match, p, mvar, pos, s) {\n if (mvar) {\n pos = tb ? 0 : pos + match.length\n\n if (mvar !== 'this' && mvar !== 'global' && mvar !== 'window') {\n match = p + '(\"' + mvar + JS_CONTEXT + mvar\n if (pos) tb = (s = s[pos]) === '.' || s === '(' || s === '['\n } else if (pos) {\n tb = !JS_NOPROPS.test(s.slice(pos))\n }\n }\n return match\n })\n\n if (tb) {\n expr = 'try{return ' + expr + '}catch(e){E(e,this)}'\n }\n\n if (key) {\n\n expr = (tb\n ? 'function(){' + expr + '}.call(this)' : '(' + expr + ')'\n ) + '?\"' + key + '\":\"\"'\n\n } else if (asText) {\n\n expr = 'function(v){' + (tb\n ? expr.replace('return ', 'v=') : 'v=(' + expr + ')'\n ) + ';return v||v===0?v:\"\"}.call(this)'\n }\n\n return expr\n }\n\n _tmpl.version = brackets.version = 'v2.4.2'\n\n return _tmpl\n\n})()\n\n/*\n lib/browser/tag/mkdom.js\n\n Includes hacks needed for the Internet Explorer version 9 and below\n See: http://kangax.github.io/compat-table/es5/#ie8\n http://codeplanet.io/dropping-ie8/\n*/\nvar mkdom = (function _mkdom() {\n var\n reHasYield = /<yield\\b/i,\n reYieldAll = /<yield\\s*(?:\\/>|>([\\S\\s]*?)<\\/yield\\s*>|>)/ig,\n reYieldSrc = /<yield\\s+to=['\"]([^'\">]*)['\"]\\s*>([\\S\\s]*?)<\\/yield\\s*>/ig,\n reYieldDest = /<yield\\s+from=['\"]?([-\\w]+)['\"]?\\s*(?:\\/>|>([\\S\\s]*?)<\\/yield\\s*>)/ig\n var\n rootEls = { tr: 'tbody', th: 'tr', td: 'tr', col: 'colgroup' },\n tblTags = IE_VERSION && IE_VERSION < 10\n ? SPECIAL_TAGS_REGEX : /^(?:t(?:body|head|foot|[rhd])|caption|col(?:group)?)$/\n\n /**\n * Creates a DOM element to wrap the given content. Normally an `DIV`, but can be\n * also a `TABLE`, `SELECT`, `TBODY`, `TR`, or `COLGROUP` element.\n *\n * @param { String } templ - The template coming from the custom tag definition\n * @param { String } [html] - HTML content that comes from the DOM element where you\n * will mount the tag, mostly the original tag in the page\n * @param { Boolean } checkSvg - flag needed to know if we need to force the svg rendering in case of loop nodes\n * @returns {HTMLElement} DOM element with _templ_ merged through `YIELD` with the _html_.\n */\n function _mkdom(templ, html, checkSvg) {\n var\n match = templ && templ.match(/^\\s*<([-\\w]+)/),\n tagName = match && match[1].toLowerCase(),\n el = mkEl('div', checkSvg && isSVGTag(tagName))\n\n // replace all the yield tags with the tag inner html\n templ = replaceYield(templ, html)\n\n /* istanbul ignore next */\n if (tblTags.test(tagName))\n el = specialTags(el, templ, tagName)\n else\n setInnerHTML(el, templ)\n\n el.stub = true\n\n return el\n }\n\n /*\n Creates the root element for table or select child elements:\n tr/th/td/thead/tfoot/tbody/caption/col/colgroup/option/optgroup\n */\n function specialTags(el, templ, tagName) {\n var\n select = tagName[0] === 'o',\n parent = select ? 'select>' : 'table>'\n\n // trim() is important here, this ensures we don't have artifacts,\n // so we can check if we have only one element inside the parent\n el.innerHTML = '<' + parent + templ.trim() + '</' + parent\n parent = el.firstChild\n\n // returns the immediate parent if tr/th/td/col is the only element, if not\n // returns the whole tree, as this can include additional elements\n if (select) {\n parent.selectedIndex = -1 // for IE9, compatible w/current riot behavior\n } else {\n // avoids insertion of cointainer inside container (ex: tbody inside tbody)\n var tname = rootEls[tagName]\n if (tname && parent.childElementCount === 1) parent = $(tname, parent)\n }\n return parent\n }\n\n /*\n Replace the yield tag from any tag template with the innerHTML of the\n original tag in the page\n */\n function replaceYield(templ, html) {\n // do nothing if no yield\n if (!reHasYield.test(templ)) return templ\n\n // be careful with #1343 - string on the source having `$1`\n var src = {}\n\n html = html && html.replace(reYieldSrc, function (_, ref, text) {\n src[ref] = src[ref] || text // preserve first definition\n return ''\n }).trim()\n\n return templ\n .replace(reYieldDest, function (_, ref, def) { // yield with from - to attrs\n return src[ref] || def || ''\n })\n .replace(reYieldAll, function (_, def) { // yield without any \"from\"\n return html || def || ''\n })\n }\n\n return _mkdom\n\n})()\n\n/**\n * Convert the item looped into an object used to extend the child tag properties\n * @param { Object } expr - object containing the keys used to extend the children tags\n * @param { * } key - value to assign to the new object returned\n * @param { * } val - value containing the position of the item in the array\n * @returns { Object } - new object containing the values of the original item\n *\n * The variables 'key' and 'val' are arbitrary.\n * They depend on the collection type looped (Array, Object)\n * and on the expression used on the each tag\n *\n */\nfunction mkitem(expr, key, val) {\n var item = {}\n item[expr.key] = key\n if (expr.pos) item[expr.pos] = val\n return item\n}\n\n/**\n * Unmount the redundant tags\n * @param { Array } items - array containing the current items to loop\n * @param { Array } tags - array containing all the children tags\n */\nfunction unmountRedundant(items, tags) {\n\n var i = tags.length,\n j = items.length,\n t\n\n while (i > j) {\n t = tags[--i]\n tags.splice(i, 1)\n t.unmount()\n }\n}\n\n/**\n * Move the nested custom tags in non custom loop tags\n * @param { Object } child - non custom loop tag\n * @param { Number } i - current position of the loop tag\n */\nfunction moveNestedTags(child, i) {\n Object.keys(child.tags).forEach(function(tagName) {\n var tag = child.tags[tagName]\n if (isArray(tag))\n each(tag, function (t) {\n moveChildTag(t, tagName, i)\n })\n else\n moveChildTag(tag, tagName, i)\n })\n}\n\n/**\n * Adds the elements for a virtual tag\n * @param { Tag } tag - the tag whose root's children will be inserted or appended\n * @param { Node } src - the node that will do the inserting or appending\n * @param { Tag } target - only if inserting, insert before this tag's first child\n */\nfunction addVirtual(tag, src, target) {\n var el = tag._root, sib\n tag._virts = []\n while (el) {\n sib = el.nextSibling\n if (target)\n src.insertBefore(el, target._root)\n else\n src.appendChild(el)\n\n tag._virts.push(el) // hold for unmounting\n el = sib\n }\n}\n\n/**\n * Move virtual tag and all child nodes\n * @param { Tag } tag - first child reference used to start move\n * @param { Node } src - the node that will do the inserting\n * @param { Tag } target - insert before this tag's first child\n * @param { Number } len - how many child nodes to move\n */\nfunction moveVirtual(tag, src, target, len) {\n var el = tag._root, sib, i = 0\n for (; i < len; i++) {\n sib = el.nextSibling\n src.insertBefore(el, target._root)\n el = sib\n }\n}\n\n/**\n * Insert a new tag avoiding the insert for the conditional tags\n * @param {Boolean} isVirtual [description]\n * @param { Tag } prevTag - tag instance used as reference to prepend our new tag\n * @param { Tag } newTag - new tag to be inserted\n * @param { HTMLElement } root - loop parent node\n * @param { Array } tags - array containing the current tags list\n * @param { Function } virtualFn - callback needed to move or insert virtual DOM\n * @param { Object } dom - DOM node we need to loop\n */\nfunction insertTag(isVirtual, prevTag, newTag, root, tags, virtualFn, dom) {\n if (isInStub(prevTag.root)) return\n if (isVirtual) virtualFn(prevTag, root, newTag, dom.childNodes.length)\n else root.insertBefore(prevTag.root, newTag.root) // #1374 some browsers reset selected here\n}\n\n\n/**\n * Manage tags having the 'each'\n * @param { Object } dom - DOM node we need to loop\n * @param { Tag } parent - parent tag instance where the dom node is contained\n * @param { String } expr - string contained in the 'each' attribute\n */\nfunction _each(dom, parent, expr) {\n\n // remove the each property from the original tag\n remAttr(dom, 'each')\n\n var mustReorder = typeof getAttr(dom, 'no-reorder') !== T_STRING || remAttr(dom, 'no-reorder'),\n tagName = getTagName(dom),\n impl = __tagImpl[tagName] || { tmpl: getOuterHTML(dom) },\n useRoot = SPECIAL_TAGS_REGEX.test(tagName),\n root = dom.parentNode,\n ref = document.createTextNode(''),\n child = getTag(dom),\n isOption = tagName.toLowerCase() === 'option', // the option tags must be treated differently\n tags = [],\n oldItems = [],\n hasKeys,\n isVirtual = dom.tagName == 'VIRTUAL'\n\n // parse the each expression\n expr = tmpl.loopKeys(expr)\n\n // insert a marked where the loop tags will be injected\n root.insertBefore(ref, dom)\n\n // clean template code\n parent.one('before-mount', function () {\n\n // remove the original DOM node\n dom.parentNode.removeChild(dom)\n if (root.stub) root = parent.root\n\n }).on('update', function () {\n // get the new items collection\n var items = tmpl(expr.val, parent),\n // create a fragment to hold the new DOM nodes to inject in the parent tag\n frag = document.createDocumentFragment()\n\n // object loop. any changes cause full redraw\n if (!isArray(items)) {\n hasKeys = items || false\n items = hasKeys ?\n Object.keys(items).map(function (key) {\n return mkitem(expr, key, items[key])\n }) : []\n }\n\n // loop all the new items\n var i = 0,\n itemsLength = items.length\n\n for (; i < itemsLength; i++) {\n // reorder only if the items are objects\n var\n item = items[i],\n _mustReorder = mustReorder && typeof item == T_OBJECT && !hasKeys,\n oldPos = oldItems.indexOf(item),\n pos = ~oldPos && _mustReorder ? oldPos : i,\n // does a tag exist in this position?\n tag = tags[pos]\n\n item = !hasKeys && expr.key ? mkitem(expr, item, i) : item\n\n // new tag\n if (\n !_mustReorder && !tag // with no-reorder we just update the old tags\n ||\n _mustReorder && !~oldPos || !tag // by default we always try to reorder the DOM elements\n ) {\n\n tag = new Tag(impl, {\n parent: parent,\n isLoop: true,\n hasImpl: !!__tagImpl[tagName],\n root: useRoot ? root : dom.cloneNode(),\n item: item\n }, dom.innerHTML)\n\n tag.mount()\n\n if (isVirtual) tag._root = tag.root.firstChild // save reference for further moves or inserts\n // this tag must be appended\n if (i == tags.length || !tags[i]) { // fix 1581\n if (isVirtual)\n addVirtual(tag, frag)\n else frag.appendChild(tag.root)\n }\n // this tag must be insert\n else {\n insertTag(isVirtual, tag, tags[i], root, tags, addVirtual, dom)\n oldItems.splice(i, 0, item)\n }\n\n tags.splice(i, 0, tag)\n pos = i // handled here so no move\n } else tag.update(item, true)\n\n // reorder the tag if it's not located in its previous position\n if (\n pos !== i && _mustReorder &&\n tags[i] // fix 1581 unable to reproduce it in a test!\n ) {\n // #closes 2040 PLEASE DON'T REMOVE IT!\n // there are no tests for this feature\n if (contains(items, oldItems[i]))\n insertTag(isVirtual, tag, tags[i], root, tags, moveVirtual, dom)\n\n // update the position attribute if it exists\n if (expr.pos)\n tag[expr.pos] = i\n // move the old tag instance\n tags.splice(i, 0, tags.splice(pos, 1)[0])\n // move the old item\n oldItems.splice(i, 0, oldItems.splice(pos, 1)[0])\n // if the loop tags are not custom\n // we need to move all their custom tags into the right position\n if (!child && tag.tags) moveNestedTags(tag, i)\n }\n\n // cache the original item to use it in the events bound to this node\n // and its children\n tag._item = item\n // cache the real parent tag internally\n defineProperty(tag, '_parent', parent)\n }\n\n // remove the redundant tags\n unmountRedundant(items, tags)\n\n // insert the new nodes\n root.insertBefore(frag, ref)\n if (isOption) {\n\n // #1374 FireFox bug in <option selected={expression}>\n if (FIREFOX && !root.multiple) {\n for (var n = 0; n < root.length; n++) {\n if (root[n].__riot1374) {\n root.selectedIndex = n // clear other options\n delete root[n].__riot1374\n break\n }\n }\n }\n }\n\n // set the 'tags' property of the parent tag\n // if child is 'undefined' it means that we don't need to set this property\n // for example:\n // we don't need store the `myTag.tags['div']` property if we are looping a div tag\n // but we need to track the `myTag.tags['child']` property looping a custom child node named `child`\n if (child) parent.tags[tagName] = tags\n\n // clone the items array\n oldItems = items.slice()\n\n })\n\n}\n/**\n * Object that will be used to inject and manage the css of every tag instance\n */\nvar styleManager = (function(_riot) {\n\n if (!window) return { // skip injection on the server\n add: function () {},\n inject: function () {}\n }\n\n var styleNode = (function () {\n // create a new style element with the correct type\n var newNode = mkEl('style')\n setAttr(newNode, 'type', 'text/css')\n\n // replace any user node or insert the new one into the head\n var userNode = $('style[type=riot]')\n if (userNode) {\n if (userNode.id) newNode.id = userNode.id\n userNode.parentNode.replaceChild(newNode, userNode)\n }\n else document.getElementsByTagName('head')[0].appendChild(newNode)\n\n return newNode\n })()\n\n // Create cache and shortcut to the correct property\n var cssTextProp = styleNode.styleSheet,\n stylesToInject = ''\n\n // Expose the style node in a non-modificable property\n Object.defineProperty(_riot, 'styleNode', {\n value: styleNode,\n writable: true\n })\n\n /**\n * Public api\n */\n return {\n /**\n * Save a tag style to be later injected into DOM\n * @param { String } css [description]\n */\n add: function(css) {\n stylesToInject += css\n },\n /**\n * Inject all previously saved tag styles into DOM\n * innerHTML seems slow: http://jsperf.com/riot-insert-style\n */\n inject: function() {\n if (stylesToInject) {\n if (cssTextProp) cssTextProp.cssText += stylesToInject\n else styleNode.innerHTML += stylesToInject\n stylesToInject = ''\n }\n }\n }\n\n})(riot)\n\n\nfunction parseNamedElements(root, tag, childTags, forceParsingNamed) {\n\n walk(root, function(dom) {\n if (dom.nodeType == 1) {\n dom.isLoop = dom.isLoop ||\n (dom.parentNode && dom.parentNode.isLoop || getAttr(dom, 'each'))\n ? 1 : 0\n\n // custom child tag\n if (childTags) {\n var child = getTag(dom)\n\n if (child && !dom.isLoop)\n childTags.push(initChildTag(child, {root: dom, parent: tag}, dom.innerHTML, tag))\n }\n\n if (!dom.isLoop || forceParsingNamed)\n setNamed(dom, tag, [])\n }\n\n })\n\n}\n\nfunction parseExpressions(root, tag, expressions) {\n\n function addExpr(dom, val, extra) {\n if (tmpl.hasExpr(val)) {\n expressions.push(extend({ dom: dom, expr: val }, extra))\n }\n }\n\n walk(root, function(dom) {\n var type = dom.nodeType,\n attr\n\n // text node\n if (type == 3 && dom.parentNode.tagName != 'STYLE') addExpr(dom, dom.nodeValue)\n if (type != 1) return\n\n /* element */\n\n // loop\n attr = getAttr(dom, 'each')\n\n if (attr) { _each(dom, tag, attr); return false }\n\n // attribute expressions\n each(dom.attributes, function(attr) {\n var name = attr.name,\n bool = name.split('__')[1]\n\n addExpr(dom, attr.value, { attr: bool || name, bool: bool })\n if (bool) { remAttr(dom, name); return false }\n\n })\n\n // skip custom tags\n if (getTag(dom)) return false\n\n })\n\n}\nfunction Tag(impl, conf, innerHTML) {\n\n var self = riot.observable(this),\n opts = inherit(conf.opts) || {},\n parent = conf.parent,\n isLoop = conf.isLoop,\n hasImpl = conf.hasImpl,\n item = cleanUpData(conf.item),\n expressions = [],\n childTags = [],\n root = conf.root,\n tagName = root.tagName.toLowerCase(),\n attr = {},\n propsInSyncWithParent = [],\n dom\n\n // only call unmount if we have a valid __tagImpl (has name property)\n if (impl.name && root._tag) root._tag.unmount(true)\n\n // not yet mounted\n this.isMounted = false\n root.isLoop = isLoop\n\n // keep a reference to the tag just created\n // so we will be able to mount this tag multiple times\n root._tag = this\n\n // create a unique id to this tag\n // it could be handy to use it also to improve the virtual dom rendering speed\n defineProperty(this, '_riot_id', ++__uid) // base 1 allows test !t._riot_id\n\n extend(this, { parent: parent, root: root, opts: opts}, item)\n // protect the \"tags\" property from being overridden\n defineProperty(this, 'tags', {})\n\n // grab attributes\n each(root.attributes, function(el) {\n var val = el.value\n // remember attributes with expressions only\n if (tmpl.hasExpr(val)) attr[el.name] = val\n })\n\n dom = mkdom(impl.tmpl, innerHTML, isLoop)\n\n // options\n function updateOpts() {\n var ctx = hasImpl && isLoop ? self : parent || self\n\n // update opts from current DOM attributes\n each(root.attributes, function(el) {\n var val = el.value\n opts[toCamel(el.name)] = tmpl.hasExpr(val) ? tmpl(val, ctx) : val\n })\n // recover those with expressions\n each(Object.keys(attr), function(name) {\n opts[toCamel(name)] = tmpl(attr[name], ctx)\n })\n }\n\n function normalizeData(data) {\n for (var key in item) {\n if (typeof self[key] !== T_UNDEF && isWritable(self, key))\n self[key] = data[key]\n }\n }\n\n function inheritFrom(target) {\n each(Object.keys(target), function(k) {\n // some properties must be always in sync with the parent tag\n var mustSync = !RESERVED_WORDS_BLACKLIST.test(k) && contains(propsInSyncWithParent, k)\n\n if (typeof self[k] === T_UNDEF || mustSync) {\n // track the property to keep in sync\n // so we can keep it updated\n if (!mustSync) propsInSyncWithParent.push(k)\n self[k] = target[k]\n }\n })\n }\n\n /**\n * Update the tag expressions and options\n * @param { * } data - data we want to use to extend the tag properties\n * @param { Boolean } isInherited - is this update coming from a parent tag?\n * @returns { self }\n */\n defineProperty(this, 'update', function(data, isInherited) {\n\n // make sure the data passed will not override\n // the component core methods\n data = cleanUpData(data)\n // inherit properties from the parent in loop\n if (isLoop) {\n inheritFrom(self.parent)\n }\n // normalize the tag properties in case an item object was initially passed\n if (data && isObject(item)) {\n normalizeData(data)\n item = data\n }\n extend(self, data)\n updateOpts()\n self.trigger('update', data)\n update(expressions, self)\n\n // the updated event will be triggered\n // once the DOM will be ready and all the re-flows are completed\n // this is useful if you want to get the \"real\" root properties\n // 4 ex: root.offsetWidth ...\n if (isInherited && self.parent)\n // closes #1599\n self.parent.one('updated', function() { self.trigger('updated') })\n else rAF(function() { self.trigger('updated') })\n\n return this\n })\n\n defineProperty(this, 'mixin', function() {\n each(arguments, function(mix) {\n var instance,\n props = [],\n obj\n\n mix = typeof mix === T_STRING ? riot.mixin(mix) : mix\n\n // check if the mixin is a function\n if (isFunction(mix)) {\n // create the new mixin instance\n instance = new mix()\n } else instance = mix\n\n var proto = Object.getPrototypeOf(instance)\n\n // build multilevel prototype inheritance chain property list\n do props = props.concat(Object.getOwnPropertyNames(obj || instance))\n while (obj = Object.getPrototypeOf(obj || instance))\n\n // loop the keys in the function prototype or the all object keys\n each(props, function(key) {\n // bind methods to self\n // allow mixins to override other properties/parent mixins\n if (key != 'init') {\n // check for getters/setters\n var descriptor = Object.getOwnPropertyDescriptor(instance, key) || Object.getOwnPropertyDescriptor(proto, key)\n var hasGetterSetter = descriptor && (descriptor.get || descriptor.set)\n\n // apply method only if it does not already exist on the instance\n if (!self.hasOwnProperty(key) && hasGetterSetter) {\n Object.defineProperty(self, key, descriptor)\n } else {\n self[key] = isFunction(instance[key]) ?\n instance[key].bind(self) :\n instance[key]\n }\n }\n })\n\n // init method will be called automatically\n if (instance.init) instance.init.bind(self)()\n })\n return this\n })\n\n defineProperty(this, 'mount', function() {\n\n updateOpts()\n\n // add global mixins\n var globalMixin = riot.mixin(GLOBAL_MIXIN)\n\n if (globalMixin)\n for (var i in globalMixin)\n if (globalMixin.hasOwnProperty(i))\n self.mixin(globalMixin[i])\n\n // children in loop should inherit from true parent\n if (self._parent && self._parent.root.isLoop) {\n inheritFrom(self._parent)\n }\n\n // initialiation\n if (impl.fn) impl.fn.call(self, opts)\n\n // parse layout after init. fn may calculate args for nested custom tags\n parseExpressions(dom, self, expressions)\n\n // mount the child tags\n toggle(true)\n\n // update the root adding custom attributes coming from the compiler\n // it fixes also #1087\n if (impl.attrs)\n walkAttributes(impl.attrs, function (k, v) { setAttr(root, k, v) })\n if (impl.attrs || hasImpl)\n parseExpressions(self.root, self, expressions)\n\n if (!self.parent || isLoop) self.update(item)\n\n // internal use only, fixes #403\n self.trigger('before-mount')\n\n if (isLoop && !hasImpl) {\n // update the root attribute for the looped elements\n root = dom.firstChild\n } else {\n while (dom.firstChild) root.appendChild(dom.firstChild)\n if (root.stub) root = parent.root\n }\n\n defineProperty(self, 'root', root)\n\n // parse the named dom nodes in the looped child\n // adding them to the parent as well\n if (isLoop)\n parseNamedElements(self.root, self.parent, null, true)\n\n // if it's not a child tag we can trigger its mount event\n if (!self.parent || self.parent.isMounted) {\n self.isMounted = true\n self.trigger('mount')\n }\n // otherwise we need to wait that the parent event gets triggered\n else self.parent.one('mount', function() {\n // avoid to trigger the `mount` event for the tags\n // not visible included in an if statement\n if (!isInStub(self.root)) {\n self.parent.isMounted = self.isMounted = true\n self.trigger('mount')\n }\n })\n })\n\n\n defineProperty(this, 'unmount', function(keepRootTag) {\n var el = root,\n p = el.parentNode,\n ptag,\n tagIndex = __virtualDom.indexOf(self)\n\n self.trigger('before-unmount')\n\n // remove this tag instance from the global virtualDom variable\n if (~tagIndex)\n __virtualDom.splice(tagIndex, 1)\n\n if (p) {\n\n if (parent) {\n ptag = getImmediateCustomParentTag(parent)\n // remove this tag from the parent tags object\n // if there are multiple nested tags with same name..\n // remove this element form the array\n if (isArray(ptag.tags[tagName]))\n each(ptag.tags[tagName], function(tag, i) {\n if (tag._riot_id == self._riot_id)\n ptag.tags[tagName].splice(i, 1)\n })\n else\n // otherwise just delete the tag instance\n ptag.tags[tagName] = undefined\n }\n\n else\n while (el.firstChild) el.removeChild(el.firstChild)\n\n if (!keepRootTag)\n p.removeChild(el)\n else {\n // the riot-tag and the data-is attributes aren't needed anymore, remove them\n remAttr(p, RIOT_TAG_IS)\n remAttr(p, RIOT_TAG) // this will be removed in riot 3.0.0\n }\n\n }\n\n if (this._virts) {\n each(this._virts, function(v) {\n if (v.parentNode) v.parentNode.removeChild(v)\n })\n }\n\n self.trigger('unmount')\n toggle()\n self.off('*')\n self.isMounted = false\n delete root._tag\n\n })\n\n // proxy function to bind updates\n // dispatched from a parent tag\n function onChildUpdate(data) { self.update(data, true) }\n\n function toggle(isMount) {\n\n // mount/unmount children\n each(childTags, function(child) { child[isMount ? 'mount' : 'unmount']() })\n\n // listen/unlisten parent (events flow one way from parent to children)\n if (!parent) return\n var evt = isMount ? 'on' : 'off'\n\n // the loop tags will be always in sync with the parent automatically\n if (isLoop)\n parent[evt]('unmount', self.unmount)\n else {\n parent[evt]('update', onChildUpdate)[evt]('unmount', self.unmount)\n }\n }\n\n\n // named elements available for fn\n parseNamedElements(dom, this, childTags)\n\n}\n/**\n * Attach an event to a DOM node\n * @param { String } name - event name\n * @param { Function } handler - event callback\n * @param { Object } dom - dom node\n * @param { Tag } tag - tag instance\n */\nfunction setEventHandler(name, handler, dom, tag) {\n\n dom[name] = function(e) {\n\n var ptag = tag._parent,\n item = tag._item,\n el\n\n if (!item)\n while (ptag && !item) {\n item = ptag._item\n ptag = ptag._parent\n }\n\n // cross browser event fix\n e = e || window.event\n\n // override the event properties\n if (isWritable(e, 'currentTarget')) e.currentTarget = dom\n if (isWritable(e, 'target')) e.target = e.srcElement\n if (isWritable(e, 'which')) e.which = e.charCode || e.keyCode\n\n e.item = item\n\n // prevent default behaviour (by default)\n if (handler.call(tag, e) !== true && !/radio|check/.test(dom.type)) {\n if (e.preventDefault) e.preventDefault()\n e.returnValue = false\n }\n\n if (!e.preventUpdate) {\n el = item ? getImmediateCustomParentTag(ptag) : tag\n el.update()\n }\n\n }\n\n}\n\n\n/**\n * Insert a DOM node replacing another one (used by if- attribute)\n * @param { Object } root - parent node\n * @param { Object } node - node replaced\n * @param { Object } before - node added\n */\nfunction insertTo(root, node, before) {\n if (!root) return\n root.insertBefore(before, node)\n root.removeChild(node)\n}\n\n/**\n * Update the expressions in a Tag instance\n * @param { Array } expressions - expression that must be re evaluated\n * @param { Tag } tag - tag instance\n */\nfunction update(expressions, tag) {\n\n each(expressions, function(expr, i) {\n\n var dom = expr.dom,\n attrName = expr.attr,\n value = tmpl(expr.expr, tag),\n parent = expr.parent || expr.dom.parentNode\n\n if (expr.bool) {\n value = !!value\n } else if (value == null) {\n value = ''\n }\n\n // #1638: regression of #1612, update the dom only if the value of the\n // expression was changed\n if (expr.value === value) {\n return\n }\n expr.value = value\n\n // textarea and text nodes has no attribute name\n if (!attrName) {\n // about #815 w/o replace: the browser converts the value to a string,\n // the comparison by \"==\" does too, but not in the server\n value += ''\n // test for parent avoids error with invalid assignment to nodeValue\n if (parent) {\n // cache the parent node because somehow it will become null on IE\n // on the next iteration\n expr.parent = parent\n if (parent.tagName === 'TEXTAREA') {\n parent.value = value // #1113\n if (!IE_VERSION) dom.nodeValue = value // #1625 IE throws here, nodeValue\n } // will be available on 'updated'\n else dom.nodeValue = value\n }\n return\n }\n\n // ~~#1612: look for changes in dom.value when updating the value~~\n if (attrName === 'value') {\n if (dom.value !== value) {\n dom.value = value\n setAttr(dom, attrName, value)\n }\n return\n } else {\n // remove original attribute\n remAttr(dom, attrName)\n }\n\n // event handler\n if (isFunction(value)) {\n setEventHandler(attrName, value, dom, tag)\n\n // if- conditional\n } else if (attrName == 'if') {\n var stub = expr.stub,\n add = function() { insertTo(stub.parentNode, stub, dom) },\n remove = function() { insertTo(dom.parentNode, dom, stub) }\n\n // add to DOM\n if (value) {\n if (stub) {\n add()\n dom.inStub = false\n // avoid to trigger the mount event if the tags is not visible yet\n // maybe we can optimize this avoiding to mount the tag at all\n if (!isInStub(dom)) {\n walk(dom, function(el) {\n if (el._tag && !el._tag.isMounted)\n el._tag.isMounted = !!el._tag.trigger('mount')\n })\n }\n }\n // remove from DOM\n } else {\n stub = expr.stub = stub || document.createTextNode('')\n // if the parentNode is defined we can easily replace the tag\n if (dom.parentNode)\n remove()\n // otherwise we need to wait the updated event\n else (tag.parent || tag).one('updated', remove)\n\n dom.inStub = true\n }\n // show / hide\n } else if (attrName === 'show') {\n dom.style.display = value ? '' : 'none'\n\n } else if (attrName === 'hide') {\n dom.style.display = value ? 'none' : ''\n\n } else if (expr.bool) {\n dom[attrName] = value\n if (value) setAttr(dom, attrName, attrName)\n if (FIREFOX && attrName === 'selected' && dom.tagName === 'OPTION') {\n dom.__riot1374 = value // #1374\n }\n\n } else if (value === 0 || value && typeof value !== T_OBJECT) {\n // <img src=\"{ expr }\">\n if (startsWith(attrName, RIOT_PREFIX) && attrName != RIOT_TAG) {\n attrName = attrName.slice(RIOT_PREFIX.length)\n }\n setAttr(dom, attrName, value)\n }\n\n })\n\n}\n/**\n * Specialized function for looping an array-like collection with `each={}`\n * @param { Array } els - collection of items\n * @param {Function} fn - callback function\n * @returns { Array } the array looped\n */\nfunction each(els, fn) {\n var len = els ? els.length : 0\n\n for (var i = 0, el; i < len; i++) {\n el = els[i]\n // return false -> current item was removed by fn during the loop\n if (el != null && fn(el, i) === false) i--\n }\n return els\n}\n\n/**\n * Detect if the argument passed is a function\n * @param { * } v - whatever you want to pass to this function\n * @returns { Boolean } -\n */\nfunction isFunction(v) {\n return typeof v === T_FUNCTION || false // avoid IE problems\n}\n\n/**\n * Get the outer html of any DOM node SVGs included\n * @param { Object } el - DOM node to parse\n * @returns { String } el.outerHTML\n */\nfunction getOuterHTML(el) {\n if (el.outerHTML) return el.outerHTML\n // some browsers do not support outerHTML on the SVGs tags\n else {\n var container = mkEl('div')\n container.appendChild(el.cloneNode(true))\n return container.innerHTML\n }\n}\n\n/**\n * Set the inner html of any DOM node SVGs included\n * @param { Object } container - DOM node where we will inject the new html\n * @param { String } html - html to inject\n */\nfunction setInnerHTML(container, html) {\n if (typeof container.innerHTML != T_UNDEF) container.innerHTML = html\n // some browsers do not support innerHTML on the SVGs tags\n else {\n var doc = new DOMParser().parseFromString(html, 'application/xml')\n container.appendChild(\n container.ownerDocument.importNode(doc.documentElement, true)\n )\n }\n}\n\n/**\n * Checks wether a DOM node must be considered part of an svg document\n * @param { String } name - tag name\n * @returns { Boolean } -\n */\nfunction isSVGTag(name) {\n return ~SVG_TAGS_LIST.indexOf(name)\n}\n\n/**\n * Detect if the argument passed is an object, exclude null.\n * NOTE: Use isObject(x) && !isArray(x) to excludes arrays.\n * @param { * } v - whatever you want to pass to this function\n * @returns { Boolean } -\n */\nfunction isObject(v) {\n return v && typeof v === T_OBJECT // typeof null is 'object'\n}\n\n/**\n * Remove any DOM attribute from a node\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to remove\n */\nfunction remAttr(dom, name) {\n dom.removeAttribute(name)\n}\n\n/**\n * Convert a string containing dashes to camel case\n * @param { String } string - input string\n * @returns { String } my-string -> myString\n */\nfunction toCamel(string) {\n return string.replace(/-(\\w)/g, function(_, c) {\n return c.toUpperCase()\n })\n}\n\n/**\n * Get the value of any DOM attribute on a node\n * @param { Object } dom - DOM node we want to parse\n * @param { String } name - name of the attribute we want to get\n * @returns { String | undefined } name of the node attribute whether it exists\n */\nfunction getAttr(dom, name) {\n return dom.getAttribute(name)\n}\n\n/**\n * Set any DOM/SVG attribute\n * @param { Object } dom - DOM node we want to update\n * @param { String } name - name of the property we want to set\n * @param { String } val - value of the property we want to set\n */\nfunction setAttr(dom, name, val) {\n var xlink = XLINK_REGEX.exec(name)\n if (xlink && xlink[1])\n dom.setAttributeNS(XLINK_NS, xlink[1], val)\n else\n dom.setAttribute(name, val)\n}\n\n/**\n * Detect the tag implementation by a DOM node\n * @param { Object } dom - DOM node we need to parse to get its tag implementation\n * @returns { Object } it returns an object containing the implementation of a custom tag (template and boot function)\n */\nfunction getTag(dom) {\n return dom.tagName && __tagImpl[getAttr(dom, RIOT_TAG_IS) ||\n getAttr(dom, RIOT_TAG) || dom.tagName.toLowerCase()]\n}\n/**\n * Add a child tag to its parent into the `tags` object\n * @param { Object } tag - child tag instance\n * @param { String } tagName - key where the new tag will be stored\n * @param { Object } parent - tag instance where the new child tag will be included\n */\nfunction addChildTag(tag, tagName, parent) {\n var cachedTag = parent.tags[tagName]\n\n // if there are multiple children tags having the same name\n if (cachedTag) {\n // if the parent tags property is not yet an array\n // create it adding the first cached tag\n if (!isArray(cachedTag))\n // don't add the same tag twice\n if (cachedTag !== tag)\n parent.tags[tagName] = [cachedTag]\n // add the new nested tag to the array\n if (!contains(parent.tags[tagName], tag))\n parent.tags[tagName].push(tag)\n } else {\n parent.tags[tagName] = tag\n }\n}\n\n/**\n * Move the position of a custom tag in its parent tag\n * @param { Object } tag - child tag instance\n * @param { String } tagName - key where the tag was stored\n * @param { Number } newPos - index where the new tag will be stored\n */\nfunction moveChildTag(tag, tagName, newPos) {\n var parent = tag.parent,\n tags\n // no parent no move\n if (!parent) return\n\n tags = parent.tags[tagName]\n\n if (isArray(tags))\n tags.splice(newPos, 0, tags.splice(tags.indexOf(tag), 1)[0])\n else addChildTag(tag, tagName, parent)\n}\n\n/**\n * Create a new child tag including it correctly into its parent\n * @param { Object } child - child tag implementation\n * @param { Object } opts - tag options containing the DOM node where the tag will be mounted\n * @param { String } innerHTML - inner html of the child node\n * @param { Object } parent - instance of the parent tag including the child custom tag\n * @returns { Object } instance of the new child tag just created\n */\nfunction initChildTag(child, opts, innerHTML, parent) {\n var tag = new Tag(child, opts, innerHTML),\n tagName = getTagName(opts.root),\n ptag = getImmediateCustomParentTag(parent)\n // fix for the parent attribute in the looped elements\n tag.parent = ptag\n // store the real parent tag\n // in some cases this could be different from the custom parent tag\n // for example in nested loops\n tag._parent = parent\n\n // add this tag to the custom parent tag\n addChildTag(tag, tagName, ptag)\n // and also to the real parent tag\n if (ptag !== parent)\n addChildTag(tag, tagName, parent)\n // empty the child node once we got its template\n // to avoid that its children get compiled multiple times\n opts.root.innerHTML = ''\n\n return tag\n}\n\n/**\n * Loop backward all the parents tree to detect the first custom parent tag\n * @param { Object } tag - a Tag instance\n * @returns { Object } the instance of the first custom parent tag found\n */\nfunction getImmediateCustomParentTag(tag) {\n var ptag = tag\n while (!getTag(ptag.root)) {\n if (!ptag.parent) break\n ptag = ptag.parent\n }\n return ptag\n}\n\n/**\n * Helper function to set an immutable property\n * @param { Object } el - object where the new property will be set\n * @param { String } key - object key where the new property will be stored\n * @param { * } value - value of the new property\n* @param { Object } options - set the propery overriding the default options\n * @returns { Object } - the initial object\n */\nfunction defineProperty(el, key, value, options) {\n Object.defineProperty(el, key, extend({\n value: value,\n enumerable: false,\n writable: false,\n configurable: true\n }, options))\n return el\n}\n\n/**\n * Get the tag name of any DOM node\n * @param { Object } dom - DOM node we want to parse\n * @returns { String } name to identify this dom node in riot\n */\nfunction getTagName(dom) {\n var child = getTag(dom),\n namedTag = getAttr(dom, 'name'),\n tagName = namedTag && !tmpl.hasExpr(namedTag) ?\n namedTag :\n child ? child.name : dom.tagName.toLowerCase()\n\n return tagName\n}\n\n/**\n * Extend any object with other properties\n * @param { Object } src - source object\n * @returns { Object } the resulting extended object\n *\n * var obj = { foo: 'baz' }\n * extend(obj, {bar: 'bar', foo: 'bar'})\n * console.log(obj) => {bar: 'bar', foo: 'bar'}\n *\n */\nfunction extend(src) {\n var obj, args = arguments\n for (var i = 1; i < args.length; ++i) {\n if (obj = args[i]) {\n for (var key in obj) {\n // check if this property of the source object could be overridden\n if (isWritable(src, key))\n src[key] = obj[key]\n }\n }\n }\n return src\n}\n\n/**\n * Check whether an array contains an item\n * @param { Array } arr - target array\n * @param { * } item - item to test\n * @returns { Boolean } Does 'arr' contain 'item'?\n */\nfunction contains(arr, item) {\n return ~arr.indexOf(item)\n}\n\n/**\n * Check whether an object is a kind of array\n * @param { * } a - anything\n * @returns {Boolean} is 'a' an array?\n */\nfunction isArray(a) { return Array.isArray(a) || a instanceof Array }\n\n/**\n * Detect whether a property of an object could be overridden\n * @param { Object } obj - source object\n * @param { String } key - object property\n * @returns { Boolean } is this property writable?\n */\nfunction isWritable(obj, key) {\n var props = Object.getOwnPropertyDescriptor(obj, key)\n return typeof obj[key] === T_UNDEF || props && props.writable\n}\n\n\n/**\n * With this function we avoid that the internal Tag methods get overridden\n * @param { Object } data - options we want to use to extend the tag instance\n * @returns { Object } clean object without containing the riot internal reserved words\n */\nfunction cleanUpData(data) {\n if (!(data instanceof Tag) && !(data && typeof data.trigger == T_FUNCTION))\n return data\n\n var o = {}\n for (var key in data) {\n if (!RESERVED_WORDS_BLACKLIST.test(key)) o[key] = data[key]\n }\n return o\n}\n\n/**\n * Walk down recursively all the children tags starting dom node\n * @param { Object } dom - starting node where we will start the recursion\n * @param { Function } fn - callback to transform the child node just found\n */\nfunction walk(dom, fn) {\n if (dom) {\n // stop the recursion\n if (fn(dom) === false) return\n else {\n dom = dom.firstChild\n\n while (dom) {\n walk(dom, fn)\n dom = dom.nextSibling\n }\n }\n }\n}\n\n/**\n * Minimize risk: only zero or one _space_ between attr & value\n * @param { String } html - html string we want to parse\n * @param { Function } fn - callback function to apply on any attribute found\n */\nfunction walkAttributes(html, fn) {\n var m,\n re = /([-\\w]+) ?= ?(?:\"([^\"]*)|'([^']*)|({[^}]*}))/g\n\n while (m = re.exec(html)) {\n fn(m[1].toLowerCase(), m[2] || m[3] || m[4])\n }\n}\n\n/**\n * Check whether a DOM node is in stub mode, useful for the riot 'if' directive\n * @param { Object } dom - DOM node we want to parse\n * @returns { Boolean } -\n */\nfunction isInStub(dom) {\n while (dom) {\n if (dom.inStub) return true\n dom = dom.parentNode\n }\n return false\n}\n\n/**\n * Create a generic DOM node\n * @param { String } name - name of the DOM node we want to create\n * @param { Boolean } isSvg - should we use a SVG as parent node?\n * @returns { Object } DOM node just created\n */\nfunction mkEl(name, isSvg) {\n return isSvg ?\n document.createElementNS('http://www.w3.org/2000/svg', 'svg') :\n document.createElement(name)\n}\n\n/**\n * Shorter and fast way to select multiple nodes in the DOM\n * @param { String } selector - DOM selector\n * @param { Object } ctx - DOM node where the targets of our search will is located\n * @returns { Object } dom nodes found\n */\nfunction $$(selector, ctx) {\n return (ctx || document).querySelectorAll(selector)\n}\n\n/**\n * Shorter and fast way to select a single node in the DOM\n * @param { String } selector - unique dom selector\n * @param { Object } ctx - DOM node where the target of our search will is located\n * @returns { Object } dom node found\n */\nfunction $(selector, ctx) {\n return (ctx || document).querySelector(selector)\n}\n\n/**\n * Simple object prototypal inheritance\n * @param { Object } parent - parent object\n * @returns { Object } child instance\n */\nfunction inherit(parent) {\n return Object.create(parent || null)\n}\n\n/**\n * Get the name property needed to identify a DOM node in riot\n * @param { Object } dom - DOM node we need to parse\n * @returns { String | undefined } give us back a string to identify this dom node\n */\nfunction getNamedKey(dom) {\n return getAttr(dom, 'id') || getAttr(dom, 'name')\n}\n\n/**\n * Set the named properties of a tag element\n * @param { Object } dom - DOM node we need to parse\n * @param { Object } parent - tag instance where the named dom element will be eventually added\n * @param { Array } keys - list of all the tag instance properties\n */\nfunction setNamed(dom, parent, keys) {\n // get the key value we want to add to the tag instance\n var key = getNamedKey(dom),\n isArr,\n // add the node detected to a tag instance using the named property\n add = function(value) {\n // avoid to override the tag properties already set\n if (contains(keys, key)) return\n // check whether this value is an array\n isArr = isArray(value)\n // if the key was never set\n if (!value)\n // set it once on the tag instance\n parent[key] = dom\n // if it was an array and not yet set\n else if (!isArr || isArr && !contains(value, dom)) {\n // add the dom node into the array\n if (isArr)\n value.push(dom)\n else\n parent[key] = [value, dom]\n }\n }\n\n // skip the elements with no named properties\n if (!key) return\n\n // check whether this key has been already evaluated\n if (tmpl.hasExpr(key))\n // wait the first updated event only once\n parent.one('mount', function() {\n key = getNamedKey(dom)\n add(parent[key])\n })\n else\n add(parent[key])\n\n}\n\n/**\n * Faster String startsWith alternative\n * @param { String } src - source string\n * @param { String } str - test string\n * @returns { Boolean } -\n */\nfunction startsWith(src, str) {\n return src.slice(0, str.length) === str\n}\n\n/**\n * requestAnimationFrame function\n * Adapted from https://gist.github.com/paulirish/1579671, license MIT\n */\nvar rAF = (function (w) {\n var raf = w.requestAnimationFrame ||\n w.mozRequestAnimationFrame || w.webkitRequestAnimationFrame\n\n if (!raf || /iP(ad|hone|od).*OS 6/.test(w.navigator.userAgent)) { // buggy iOS6\n var lastTime = 0\n\n raf = function (cb) {\n var nowtime = Date.now(), timeout = Math.max(16 - (nowtime - lastTime), 0)\n setTimeout(function () { cb(lastTime = nowtime + timeout) }, timeout)\n }\n }\n return raf\n\n})(window || {})\n\n/**\n * Mount a tag creating new Tag instance\n * @param { Object } root - dom node where the tag will be mounted\n * @param { String } tagName - name of the riot tag we want to mount\n * @param { Object } opts - options to pass to the Tag instance\n * @returns { Tag } a new Tag instance\n */\nfunction mountTo(root, tagName, opts) {\n var tag = __tagImpl[tagName],\n // cache the inner HTML to fix #855\n innerHTML = root._innerHTML = root._innerHTML || root.innerHTML\n\n // clear the inner html\n root.innerHTML = ''\n\n if (tag && root) tag = new Tag(tag, { root: root, opts: opts }, innerHTML)\n\n if (tag && tag.mount) {\n tag.mount()\n // add this tag to the virtualDom variable\n if (!contains(__virtualDom, tag)) __virtualDom.push(tag)\n }\n\n return tag\n}\n/**\n * Riot public api\n */\n\n// share methods for other riot parts, e.g. compiler\nriot.util = { brackets: brackets, tmpl: tmpl }\n\n/**\n * Create a mixin that could be globally shared across all the tags\n */\nriot.mixin = (function() {\n var mixins = {},\n globals = mixins[GLOBAL_MIXIN] = {},\n _id = 0\n\n /**\n * Create/Return a mixin by its name\n * @param { String } name - mixin name (global mixin if object)\n * @param { Object } mixin - mixin logic\n * @param { Boolean } g - is global?\n * @returns { Object } the mixin logic\n */\n return function(name, mixin, g) {\n // Unnamed global\n if (isObject(name)) {\n riot.mixin('__unnamed_'+_id++, name, true)\n return\n }\n\n var store = g ? globals : mixins\n\n // Getter\n if (!mixin) {\n if (typeof store[name] === T_UNDEF) {\n throw new Error('Unregistered mixin: ' + name)\n }\n return store[name]\n }\n // Setter\n if (isFunction(mixin)) {\n extend(mixin.prototype, store[name] || {})\n store[name] = mixin\n }\n else {\n store[name] = extend(store[name] || {}, mixin)\n }\n }\n\n})()\n\n/**\n * Create a new riot tag implementation\n * @param { String } name - name/id of the new riot tag\n * @param { String } html - tag template\n * @param { String } css - custom tag css\n * @param { String } attrs - root tag attributes\n * @param { Function } fn - user function\n * @returns { String } name/id of the tag just created\n */\nriot.tag = function(name, html, css, attrs, fn) {\n if (isFunction(attrs)) {\n fn = attrs\n if (/^[\\w\\-]+\\s?=/.test(css)) {\n attrs = css\n css = ''\n } else attrs = ''\n }\n if (css) {\n if (isFunction(css)) fn = css\n else styleManager.add(css)\n }\n name = name.toLowerCase()\n __tagImpl[name] = { name: name, tmpl: html, attrs: attrs, fn: fn }\n return name\n}\n\n/**\n * Create a new riot tag implementation (for use by the compiler)\n * @param { String } name - name/id of the new riot tag\n * @param { String } html - tag template\n * @param { String } css - custom tag css\n * @param { String } attrs - root tag attributes\n * @param { Function } fn - user function\n * @returns { String } name/id of the tag just created\n */\nriot.tag2 = function(name, html, css, attrs, fn) {\n if (css) styleManager.add(css)\n //if (bpair) riot.settings.brackets = bpair\n __tagImpl[name] = { name: name, tmpl: html, attrs: attrs, fn: fn }\n return name\n}\n\n/**\n * Mount a tag using a specific tag implementation\n * @param { String } selector - tag DOM selector\n * @param { String } tagName - tag implementation name\n * @param { Object } opts - tag logic\n * @returns { Array } new tags instances\n */\nriot.mount = function(selector, tagName, opts) {\n\n var els,\n allTags,\n tags = []\n\n // helper functions\n\n function addRiotTags(arr) {\n var list = ''\n each(arr, function (e) {\n if (!/[^-\\w]/.test(e)) {\n e = e.trim().toLowerCase()\n list += ',[' + RIOT_TAG_IS + '=\"' + e + '\"],[' + RIOT_TAG + '=\"' + e + '\"]'\n }\n })\n return list\n }\n\n function selectAllTags() {\n var keys = Object.keys(__tagImpl)\n return keys + addRiotTags(keys)\n }\n\n function pushTags(root) {\n if (root.tagName) {\n var riotTag = getAttr(root, RIOT_TAG_IS) || getAttr(root, RIOT_TAG)\n\n // have tagName? force riot-tag to be the same\n if (tagName && riotTag !== tagName) {\n riotTag = tagName\n setAttr(root, RIOT_TAG_IS, tagName)\n setAttr(root, RIOT_TAG, tagName) // this will be removed in riot 3.0.0\n }\n var tag = mountTo(root, riotTag || root.tagName.toLowerCase(), opts)\n\n if (tag) tags.push(tag)\n } else if (root.length) {\n each(root, pushTags) // assume nodeList\n }\n }\n\n // ----- mount code -----\n\n // inject styles into DOM\n styleManager.inject()\n\n if (isObject(tagName)) {\n opts = tagName\n tagName = 0\n }\n\n // crawl the DOM to find the tag\n if (typeof selector === T_STRING) {\n if (selector === '*')\n // select all the tags registered\n // and also the tags found with the riot-tag attribute set\n selector = allTags = selectAllTags()\n else\n // or just the ones named like the selector\n selector += addRiotTags(selector.split(/, */))\n\n // make sure to pass always a selector\n // to the querySelectorAll function\n els = selector ? $$(selector) : []\n }\n else\n // probably you have passed already a tag or a NodeList\n els = selector\n\n // select all the registered and mount them inside their root elements\n if (tagName === '*') {\n // get all custom tags\n tagName = allTags || selectAllTags()\n // if the root els it's just a single tag\n if (els.tagName)\n els = $$(tagName, els)\n else {\n // select all the children for all the different root elements\n var nodeList = []\n each(els, function (_el) {\n nodeList.push($$(tagName, _el))\n })\n els = nodeList\n }\n // get rid of the tagName\n tagName = 0\n }\n\n pushTags(els)\n\n return tags\n}\n\n/**\n * Update all the tags instances created\n * @returns { Array } all the tags instances\n */\nriot.update = function() {\n return each(__virtualDom, function(tag) {\n tag.update()\n })\n}\n\n/**\n * Export the Virtual DOM\n */\nriot.vdom = __virtualDom\n\n/**\n * Export the Tag constructor\n */\nriot.Tag = Tag\n // support CommonJS, AMD & browser\n /* istanbul ignore next */\n if (typeof exports === T_OBJECT)\n module.exports = riot\n else if (typeof define === T_FUNCTION && typeof define.amd !== T_UNDEF)\n define(function() { return riot })\n else\n window.riot = riot\n\n})(typeof window != 'undefined' ? window : void 0);\n\n\n\n// WEBPACK FOOTER //\n// ./~/riot/riot.js","module.exports = function() { throw new Error(\"define cannot be used indirect\"); };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-define.js\n// module id = 12\n// module chunks = 0","module.exports = __webpack_amd_options__;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/amd-options.js\n// module id = 13\n// module chunks = 0","/**\n * Zenscroll 3.2.3\n * https://github.com/zengabor/zenscroll/\n *\n * Copyright 2015–2016 Gabor Lenard\n *\n * This is free and unencumbered software released into the public domain.\n * \n * Anyone is free to copy, modify, publish, use, compile, sell, or\n * distribute this software, either in source code form or as a compiled\n * binary, for any purpose, commercial or non-commercial, and by any\n * means.\n * \n * In jurisdictions that recognize copyright laws, the author or authors\n * of this software dedicate any and all copyright interest in the\n * software to the public domain. We make this dedication for the benefit\n * of the public at large and to the detriment of our heirs and\n * successors. We intend this dedication to be an overt act of\n * relinquishment in perpetuity of all present and future rights to this\n * software under copyright law.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * For more information, please refer to <http://unlicense.org>\n *\n */\n\n/*jshint devel:true, asi:true */\n\n/*global define, module */\n\n\n(function (root, factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine([], factory())\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory()\n\t} else {\n\t\troot.zenscroll = factory()\n\t}\n}(this, function () {\n\t\"use strict\"\n\n\t// Exit if it’s not a browser environment:\n\tif (typeof window === \"undefined\" || !(\"document\" in window)) {\n\t\treturn {}\n\t}\n\n\tvar createScroller = function (scrollContainer, defaultDuration, edgeOffset) {\n\n\t\tdefaultDuration = defaultDuration || 999 //ms\n\t\tif (!edgeOffset && edgeOffset !== 0) {\n\t\t\t// When scrolling, this amount of distance is kept from the edges of the scrollContainer:\n\t\t\tedgeOffset = 9 //px\n\t\t}\n\n\t\tvar scrollTimeoutId\n\t\tvar setScrollTimeoutId = function (newValue) {\n\t\t\tscrollTimeoutId = newValue\n\t\t}\n\t\tvar docElem = document.documentElement\n\t\t\n\t\t// Detect if the browser already supports native smooth scrolling (e.g., Firefox 36+ and Chrome 49+) and it is enabled:\n\t\tvar nativeSmoothScrollEnabled = function () {\n\t\t\treturn (\"getComputedStyle\" in window) &&\n\t\t\t\twindow.getComputedStyle(scrollContainer ? scrollContainer : document.body)[\"scroll-behavior\"] === \"smooth\"\n\t\t}\n\n\t\tvar getScrollTop = function () {\n\t\t\tif (scrollContainer) {\n\t\t\t\treturn scrollContainer.scrollTop\n\t\t\t} else {\n\t\t\t\treturn window.scrollY || docElem.scrollTop\n\t\t\t}\n\t\t}\n\n\t\tvar getViewHeight = function () {\n\t\t\tif (scrollContainer) {\n\t\t\t\treturn Math.min(scrollContainer.offsetHeight, window.innerHeight)\n\t\t\t} else {\n\t\t\t\treturn window.innerHeight || docElem.clientHeight\n\t\t\t}\n\t\t}\n\n\t\tvar getRelativeTopOf = function (elem) {\n\t\t\tif (scrollContainer) {\n\t\t\t\treturn elem.offsetTop\n\t\t\t} else {\n\t\t\t\treturn elem.getBoundingClientRect().top + getScrollTop() - docElem.offsetTop\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Immediately stops the current smooth scroll operation\n\t\t */\n\t\tvar stopScroll = function () {\n\t\t\tclearTimeout(scrollTimeoutId)\n\t\t\tsetScrollTimeoutId(0)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to a specific vertical position in the document.\n\t\t *\n\t\t * @param {endY} The vertical position within the document.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * If 0 or not provided it is automatically calculated based on the \n\t\t * distance and the default duration.\n\t\t */\n\t\tvar scrollToY = function (endY, duration, onDone) {\n\t\t\tstopScroll()\n\t\t\tif (nativeSmoothScrollEnabled()) {\n\t\t\t\t(scrollContainer || window).scrollTo(0, endY)\n\t\t\t\tif (onDone) {\n\t\t\t\t\tonDone()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar startY = getScrollTop()\n\t\t\t\tvar distance = Math.max(endY,0) - startY\n\t\t\t\tduration = duration || Math.min(Math.abs(distance), defaultDuration)\n\t\t\t\tvar startTime = new Date().getTime();\n\t\t\t\t(function loopScroll() {\n\t\t\t\t\tsetScrollTimeoutId(setTimeout(function () {\n\t\t\t\t\t\tvar p = Math.min((new Date().getTime() - startTime) / duration, 1) // percentage\n\t\t\t\t\t\tvar y = Math.max(Math.floor(startY + distance*(p < 0.5 ? 2*p*p : p*(4 - p*2)-1)), 0)\n\t\t\t\t\t\tif (scrollContainer) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = y\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twindow.scrollTo(0, y)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (p < 1 && (getViewHeight() + y) < (scrollContainer || docElem).scrollHeight) {\n\t\t\t\t\t\t\tloopScroll()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(stopScroll, 99) // with cooldown time\n\t\t\t\t\t\t\tif (onDone) {\n\t\t\t\t\t\t\t\tonDone()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9))\n\t\t\t\t})()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the top of a specific element.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * A value of 0 is ignored.\n\t\t */\n\t\tvar scrollToElem = function (elem, duration, onDone) {\n\t\t\tscrollToY(getRelativeTopOf(elem) - edgeOffset, duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls an element into view if necessary.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * A value of 0 is ignored.\n\t\t */\n\t\tvar scrollIntoView = function (elem, duration, onDone) {\n\t\t\tvar elemHeight = elem.getBoundingClientRect().height\n\t\t\tvar elemTop = getRelativeTopOf(elem)\n\t\t\tvar elemBottom = elemTop + elemHeight\n\t\t\tvar containerHeight = getViewHeight()\n\t\t\tvar containerTop = getScrollTop()\n\t\t\tvar containerBottom = containerTop + containerHeight\n\t\t\tif ((elemTop - edgeOffset) < containerTop || (elemHeight + edgeOffset) > containerHeight) {\n\t\t\t\t// Element is clipped at top or is higher than screen.\n\t\t\t\tscrollToElem(elem, duration, onDone)\n\t\t\t} else if ((elemBottom + edgeOffset) > containerBottom) {\n\t\t\t\t// Element is clipped at the bottom.\n\t\t\t\tscrollToY(elemBottom - containerHeight + edgeOffset, duration, onDone)\n\t\t\t} else if (onDone) {\n\t\t\t\tonDone()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the center of an element.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {offset} Optionally the offset of the top of the element from the center of the screen.\n\t\t * A value of 0 is ignored.\n\t\t */\n\t\tvar scrollToCenterOf = function (elem, duration, offset, onDone) {\n\t\t\tscrollToY(\n\t\t\t\tMath.max(\n\t\t\t\t\tgetRelativeTopOf(elem) - getViewHeight()/2 + (offset || elem.getBoundingClientRect().height/2), \n\t\t\t\t\t0\n\t\t\t\t), \n\t\t\t\tduration,\n\t\t\t\tonDone\n\t\t\t)\n\t\t}\n\n\t\t/**\n\t\t * Changes default settings for this scroller.\n\t\t *\n\t\t * @param {newDefaultDuration} New value for default duration, used for each scroll method by default.\n\t\t * Ignored if 0 or falsy.\n\t\t * @param {newEdgeOffset} New value for the edge offset, used by each scroll method by default.\n\t\t */\n\t\tvar setup = function (newDefaultDuration, newEdgeOffset) {\n\t\t\tif (newDefaultDuration) {\n\t\t\t\tdefaultDuration = newDefaultDuration\n\t\t\t}\n\t\t\tif (newEdgeOffset === 0 || newEdgeOffset) {\n\t\t\t\tedgeOffset = newEdgeOffset\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsetup: setup,\n\t\t\tto: scrollToElem,\n\t\t\ttoY: scrollToY,\n\t\t\tintoView: scrollIntoView,\n\t\t\tcenter: scrollToCenterOf,\n\t\t\tstop: stopScroll,\n\t\t\tmoving: function () { return !!scrollTimeoutId }\n\t\t}\n\n\t}\n\n\t// Create a scroller for the browser window, omitting parameters:\n\tvar defaultScroller = createScroller()\n\n\t// Create listeners for the documentElement only & exclude IE8-\n\tif (\"addEventListener\" in window && document.body.style.scrollBehavior !== \"smooth\" && !window.noZensmooth) {\n\t\tvar replaceUrl = function (hash) {\n\t\t\ttry {\n\t\t\t\thistory.replaceState({}, \"\", window.location.href.split(\"#\")[0] + hash)\n\t\t\t} catch (e) {\n\t\t\t\t// To avoid the Security exception in Chrome when the page was opened via the file protocol, e.g., file://index.html\n\t\t\t}\n\t\t} \n\t\twindow.addEventListener(\"click\", function (event) {\n\t\t\tvar anchor = event.target\n\t\t\twhile (anchor && anchor.tagName !== \"A\") {\n\t\t\t\tanchor = anchor.parentNode\n\t\t\t}\n\t\t\t// Only handle links that were clicked with the primary button, without modifier keys:\n\t\t\tif (!anchor || event.which !== 1 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar href = anchor.getAttribute(\"href\") || \"\"\n\t\t\tif (href.indexOf(\"#\") === 0) {\n\t\t\t\tif (href === \"#\") {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tdefaultScroller.toY(0)\n\t\t\t\t\treplaceUrl(\"\")\n\t\t\t\t} else {\n\t\t\t\t\tvar targetId = anchor.hash.substring(1)\n\t\t\t\t\tvar targetElem = document.getElementById(targetId)\n\t\t\t\t\tif (targetElem) {\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\tdefaultScroller.to(targetElem)\n\t\t\t\t\t\treplaceUrl(\"#\" + targetId)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, false)\n\t}\n\n\treturn {\n\t\t// Expose the \"constructor\" that can create a new scroller:\n\t\tcreateScroller: createScroller,\n\t\t// Surface the methods of the default scroller:\n\t\tsetup: defaultScroller.setup,\n\t\tto: defaultScroller.to,\n\t\ttoY: defaultScroller.toY,\n\t\tintoView: defaultScroller.intoView,\n\t\tcenter: defaultScroller.center,\n\t\tstop: defaultScroller.stop,\n\t\tmoving: defaultScroller.moving\n\t}\n\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./~/zenscroll/zenscroll.js","/*!\nWaypoints - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n var keyCounter = 0\n var allWaypoints = {}\n\n /* http://imakewebthings.com/waypoints/api/waypoint */\n function Waypoint(options) {\n if (!options) {\n throw new Error('No options passed to Waypoint constructor')\n }\n if (!options.element) {\n throw new Error('No element option passed to Waypoint constructor')\n }\n if (!options.handler) {\n throw new Error('No handler option passed to Waypoint constructor')\n }\n\n this.key = 'waypoint-' + keyCounter\n this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)\n this.element = this.options.element\n this.adapter = new Waypoint.Adapter(this.element)\n this.callback = options.handler\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical'\n this.enabled = this.options.enabled\n this.triggerPoint = null\n this.group = Waypoint.Group.findOrCreate({\n name: this.options.group,\n axis: this.axis\n })\n this.context = Waypoint.Context.findOrCreateByElement(this.options.context)\n\n if (Waypoint.offsetAliases[this.options.offset]) {\n this.options.offset = Waypoint.offsetAliases[this.options.offset]\n }\n this.group.add(this)\n this.context.add(this)\n allWaypoints[this.key] = this\n keyCounter += 1\n }\n\n /* Private */\n Waypoint.prototype.queueTrigger = function(direction) {\n this.group.queueTrigger(this, direction)\n }\n\n /* Private */\n Waypoint.prototype.trigger = function(args) {\n if (!this.enabled) {\n return\n }\n if (this.callback) {\n this.callback.apply(this, args)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy */\n Waypoint.prototype.destroy = function() {\n this.context.remove(this)\n this.group.remove(this)\n delete allWaypoints[this.key]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable */\n Waypoint.prototype.disable = function() {\n this.enabled = false\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable */\n Waypoint.prototype.enable = function() {\n this.context.refresh()\n this.enabled = true\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/next */\n Waypoint.prototype.next = function() {\n return this.group.next(this)\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/previous */\n Waypoint.prototype.previous = function() {\n return this.group.previous(this)\n }\n\n /* Private */\n Waypoint.invokeAll = function(method) {\n var allWaypointsArray = []\n for (var waypointKey in allWaypoints) {\n allWaypointsArray.push(allWaypoints[waypointKey])\n }\n for (var i = 0, end = allWaypointsArray.length; i < end; i++) {\n allWaypointsArray[i][method]()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy-all */\n Waypoint.destroyAll = function() {\n Waypoint.invokeAll('destroy')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable-all */\n Waypoint.disableAll = function() {\n Waypoint.invokeAll('disable')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable-all */\n Waypoint.enableAll = function() {\n Waypoint.Context.refreshAll()\n for (var waypointKey in allWaypoints) {\n allWaypoints[waypointKey].enabled = true\n }\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/refresh-all */\n Waypoint.refreshAll = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-height */\n Waypoint.viewportHeight = function() {\n return window.innerHeight || document.documentElement.clientHeight\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-width */\n Waypoint.viewportWidth = function() {\n return document.documentElement.clientWidth\n }\n\n Waypoint.adapters = []\n\n Waypoint.defaults = {\n context: window,\n continuous: true,\n enabled: true,\n group: 'default',\n horizontal: false,\n offset: 0\n }\n\n Waypoint.offsetAliases = {\n 'bottom-in-view': function() {\n return this.context.innerHeight() - this.adapter.outerHeight()\n },\n 'right-in-view': function() {\n return this.context.innerWidth() - this.adapter.outerWidth()\n }\n }\n\n window.Waypoint = Waypoint\n}())\n;(function() {\n 'use strict'\n\n function requestAnimationFrameShim(callback) {\n window.setTimeout(callback, 1000 / 60)\n }\n\n var keyCounter = 0\n var contexts = {}\n var Waypoint = window.Waypoint\n var oldWindowLoad = window.onload\n\n /* http://imakewebthings.com/waypoints/api/context */\n function Context(element) {\n this.element = element\n this.Adapter = Waypoint.Adapter\n this.adapter = new this.Adapter(element)\n this.key = 'waypoint-context-' + keyCounter\n this.didScroll = false\n this.didResize = false\n this.oldScroll = {\n x: this.adapter.scrollLeft(),\n y: this.adapter.scrollTop()\n }\n this.waypoints = {\n vertical: {},\n horizontal: {}\n }\n\n element.waypointContextKey = this.key\n contexts[element.waypointContextKey] = this\n keyCounter += 1\n if (!Waypoint.windowContext) {\n Waypoint.windowContext = true\n Waypoint.windowContext = new Context(window)\n }\n\n this.createThrottledScrollHandler()\n this.createThrottledResizeHandler()\n }\n\n /* Private */\n Context.prototype.add = function(waypoint) {\n var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'\n this.waypoints[axis][waypoint.key] = waypoint\n this.refresh()\n }\n\n /* Private */\n Context.prototype.checkEmpty = function() {\n var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)\n var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)\n var isWindow = this.element == this.element.window\n if (horizontalEmpty && verticalEmpty && !isWindow) {\n this.adapter.off('.waypoints')\n delete contexts[this.key]\n }\n }\n\n /* Private */\n Context.prototype.createThrottledResizeHandler = function() {\n var self = this\n\n function resizeHandler() {\n self.handleResize()\n self.didResize = false\n }\n\n this.adapter.on('resize.waypoints', function() {\n if (!self.didResize) {\n self.didResize = true\n Waypoint.requestAnimationFrame(resizeHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.createThrottledScrollHandler = function() {\n var self = this\n function scrollHandler() {\n self.handleScroll()\n self.didScroll = false\n }\n\n this.adapter.on('scroll.waypoints', function() {\n if (!self.didScroll || Waypoint.isTouch) {\n self.didScroll = true\n Waypoint.requestAnimationFrame(scrollHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.handleResize = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Private */\n Context.prototype.handleScroll = function() {\n var triggeredGroups = {}\n var axes = {\n horizontal: {\n newScroll: this.adapter.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.adapter.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n var isForward = axis.newScroll > axis.oldScroll\n var direction = isForward ? axis.forward : axis.backward\n\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n if (waypoint.triggerPoint === null) {\n continue\n }\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\n if (crossedForward || crossedBackward) {\n waypoint.queueTrigger(direction)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n\n this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n }\n }\n\n /* Private */\n Context.prototype.innerHeight = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportHeight()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerHeight()\n }\n\n /* Private */\n Context.prototype.remove = function(waypoint) {\n delete this.waypoints[waypoint.axis][waypoint.key]\n this.checkEmpty()\n }\n\n /* Private */\n Context.prototype.innerWidth = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportWidth()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerWidth()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-destroy */\n Context.prototype.destroy = function() {\n var allWaypoints = []\n for (var axis in this.waypoints) {\n for (var waypointKey in this.waypoints[axis]) {\n allWaypoints.push(this.waypoints[axis][waypointKey])\n }\n }\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\n allWaypoints[i].destroy()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-refresh */\n Context.prototype.refresh = function() {\n /*eslint-disable eqeqeq */\n var isWindow = this.element == this.element.window\n /*eslint-enable eqeqeq */\n var contextOffset = isWindow ? undefined : this.adapter.offset()\n var triggeredGroups = {}\n var axes\n\n this.handleScroll()\n axes = {\n horizontal: {\n contextOffset: isWindow ? 0 : contextOffset.left,\n contextScroll: isWindow ? 0 : this.oldScroll.x,\n contextDimension: this.innerWidth(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWindow ? 0 : contextOffset.top,\n contextScroll: isWindow ? 0 : this.oldScroll.y,\n contextDimension: this.innerHeight(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n var adjustment = waypoint.options.offset\n var oldTriggerPoint = waypoint.triggerPoint\n var elementOffset = 0\n var freshWaypoint = oldTriggerPoint == null\n var contextModifier, wasBeforeScroll, nowAfterScroll\n var triggeredBackward, triggeredForward\n\n if (waypoint.element !== waypoint.element.window) {\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\n }\n\n if (typeof adjustment === 'function') {\n adjustment = adjustment.apply(waypoint)\n }\n else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment)\n if (waypoint.options.offset.indexOf('%') > - 1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\n }\n }\n\n contextModifier = axis.contextScroll - axis.contextOffset\n waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\n triggeredBackward = wasBeforeScroll && nowAfterScroll\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\n\n if (!freshWaypoint && triggeredBackward) {\n waypoint.queueTrigger(axis.backward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (!freshWaypoint && triggeredForward) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n Waypoint.requestAnimationFrame(function() {\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n })\n\n return this\n }\n\n /* Private */\n Context.findOrCreateByElement = function(element) {\n return Context.findByElement(element) || new Context(element)\n }\n\n /* Private */\n Context.refreshAll = function() {\n for (var contextId in contexts) {\n contexts[contextId].refresh()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\n Context.findByElement = function(element) {\n return contexts[element.waypointContextKey]\n }\n\n window.onload = function() {\n if (oldWindowLoad) {\n oldWindowLoad()\n }\n Context.refreshAll()\n }\n\n\n Waypoint.requestAnimationFrame = function(callback) {\n var requestFn = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n requestAnimationFrameShim\n requestFn.call(window, callback)\n }\n Waypoint.Context = Context\n}())\n;(function() {\n 'use strict'\n\n function byTriggerPoint(a, b) {\n return a.triggerPoint - b.triggerPoint\n }\n\n function byReverseTriggerPoint(a, b) {\n return b.triggerPoint - a.triggerPoint\n }\n\n var groups = {\n vertical: {},\n horizontal: {}\n }\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/api/group */\n function Group(options) {\n this.name = options.name\n this.axis = options.axis\n this.id = this.name + '-' + this.axis\n this.waypoints = []\n this.clearTriggerQueues()\n groups[this.axis][this.name] = this\n }\n\n /* Private */\n Group.prototype.add = function(waypoint) {\n this.waypoints.push(waypoint)\n }\n\n /* Private */\n Group.prototype.clearTriggerQueues = function() {\n this.triggerQueues = {\n up: [],\n down: [],\n left: [],\n right: []\n }\n }\n\n /* Private */\n Group.prototype.flushTriggers = function() {\n for (var direction in this.triggerQueues) {\n var waypoints = this.triggerQueues[direction]\n var reverse = direction === 'up' || direction === 'left'\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\n var waypoint = waypoints[i]\n if (waypoint.options.continuous || i === waypoints.length - 1) {\n waypoint.trigger([direction])\n }\n }\n }\n this.clearTriggerQueues()\n }\n\n /* Private */\n Group.prototype.next = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n var isLast = index === this.waypoints.length - 1\n return isLast ? null : this.waypoints[index + 1]\n }\n\n /* Private */\n Group.prototype.previous = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n return index ? this.waypoints[index - 1] : null\n }\n\n /* Private */\n Group.prototype.queueTrigger = function(waypoint, direction) {\n this.triggerQueues[direction].push(waypoint)\n }\n\n /* Private */\n Group.prototype.remove = function(waypoint) {\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n if (index > -1) {\n this.waypoints.splice(index, 1)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/first */\n Group.prototype.first = function() {\n return this.waypoints[0]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/last */\n Group.prototype.last = function() {\n return this.waypoints[this.waypoints.length - 1]\n }\n\n /* Private */\n Group.findOrCreate = function(options) {\n return groups[options.axis][options.name] || new Group(options)\n }\n\n Waypoint.Group = Group\n}())\n;(function() {\n 'use strict'\n\n var Waypoint = window.Waypoint\n\n function isWindow(element) {\n return element === element.window\n }\n\n function getWindow(element) {\n if (isWindow(element)) {\n return element\n }\n return element.defaultView\n }\n\n function NoFrameworkAdapter(element) {\n this.element = element\n this.handlers = {}\n }\n\n NoFrameworkAdapter.prototype.innerHeight = function() {\n var isWin = isWindow(this.element)\n return isWin ? this.element.innerHeight : this.element.clientHeight\n }\n\n NoFrameworkAdapter.prototype.innerWidth = function() {\n var isWin = isWindow(this.element)\n return isWin ? this.element.innerWidth : this.element.clientWidth\n }\n\n NoFrameworkAdapter.prototype.off = function(event, handler) {\n function removeListeners(element, listeners, handler) {\n for (var i = 0, end = listeners.length - 1; i < end; i++) {\n var listener = listeners[i]\n if (!handler || handler === listener) {\n element.removeEventListener(listener)\n }\n }\n }\n\n var eventParts = event.split('.')\n var eventType = eventParts[0]\n var namespace = eventParts[1]\n var element = this.element\n\n if (namespace && this.handlers[namespace] && eventType) {\n removeListeners(element, this.handlers[namespace][eventType], handler)\n this.handlers[namespace][eventType] = []\n }\n else if (eventType) {\n for (var ns in this.handlers) {\n removeListeners(element, this.handlers[ns][eventType] || [], handler)\n this.handlers[ns][eventType] = []\n }\n }\n else if (namespace && this.handlers[namespace]) {\n for (var type in this.handlers[namespace]) {\n removeListeners(element, this.handlers[namespace][type], handler)\n }\n this.handlers[namespace] = {}\n }\n }\n\n /* Adapted from jQuery 1.x offset() */\n NoFrameworkAdapter.prototype.offset = function() {\n if (!this.element.ownerDocument) {\n return null\n }\n\n var documentElement = this.element.ownerDocument.documentElement\n var win = getWindow(this.element.ownerDocument)\n var rect = {\n top: 0,\n left: 0\n }\n\n if (this.element.getBoundingClientRect) {\n rect = this.element.getBoundingClientRect()\n }\n\n return {\n top: rect.top + win.pageYOffset - documentElement.clientTop,\n left: rect.left + win.pageXOffset - documentElement.clientLeft\n }\n }\n\n NoFrameworkAdapter.prototype.on = function(event, handler) {\n var eventParts = event.split('.')\n var eventType = eventParts[0]\n var namespace = eventParts[1] || '__default'\n var nsHandlers = this.handlers[namespace] = this.handlers[namespace] || {}\n var nsTypeList = nsHandlers[eventType] = nsHandlers[eventType] || []\n\n nsTypeList.push(handler)\n this.element.addEventListener(eventType, handler)\n }\n\n NoFrameworkAdapter.prototype.outerHeight = function(includeMargin) {\n var height = this.innerHeight()\n var computedStyle\n\n if (includeMargin && !isWindow(this.element)) {\n computedStyle = window.getComputedStyle(this.element)\n height += parseInt(computedStyle.marginTop, 10)\n height += parseInt(computedStyle.marginBottom, 10)\n }\n\n return height\n }\n\n NoFrameworkAdapter.prototype.outerWidth = function(includeMargin) {\n var width = this.innerWidth()\n var computedStyle\n\n if (includeMargin && !isWindow(this.element)) {\n computedStyle = window.getComputedStyle(this.element)\n width += parseInt(computedStyle.marginLeft, 10)\n width += parseInt(computedStyle.marginRight, 10)\n }\n\n return width\n }\n\n NoFrameworkAdapter.prototype.scrollLeft = function() {\n var win = getWindow(this.element)\n return win ? win.pageXOffset : this.element.scrollLeft\n }\n\n NoFrameworkAdapter.prototype.scrollTop = function() {\n var win = getWindow(this.element)\n return win ? win.pageYOffset : this.element.scrollTop\n }\n\n NoFrameworkAdapter.extend = function() {\n var args = Array.prototype.slice.call(arguments)\n\n function merge(target, obj) {\n if (typeof target === 'object' && typeof obj === 'object') {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n target[key] = obj[key]\n }\n }\n }\n\n return target\n }\n\n for (var i = 1, end = args.length; i < end; i++) {\n merge(args[0], args[i])\n }\n return args[0]\n }\n\n NoFrameworkAdapter.inArray = function(element, array, i) {\n return array == null ? -1 : array.indexOf(element, i)\n }\n\n NoFrameworkAdapter.isEmptyObject = function(obj) {\n /* eslint no-unused-vars: 0 */\n for (var name in obj) {\n return false\n }\n return true\n }\n\n Waypoint.adapters.push({\n name: 'noframework',\n Adapter: NoFrameworkAdapter\n })\n Waypoint.Adapter = NoFrameworkAdapter\n}())\n;\n\n\n// WEBPACK FOOTER //\n// ./~/waypoints/lib/noframework.waypoints.js","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/postcss-loader/index.js!./../node_modules/less-loader/index.js!./main.less\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/postcss-loader/index.js!./../node_modules/less-loader/index.js!./main.less\", function() {\n\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js?minimize!./../node_modules/postcss-loader/index.js!./../node_modules/less-loader/index.js!./main.less\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./less/main.less\n// module id = 16\n// module chunks = 0","exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\nexports.push([module.id, \"@import url(https://fonts.googleapis.com/css?family=Cousine);\", \"\"]);\nexports.push([module.id, \"@import url(https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700);\", \"\"]);\n\n// module\nexports.push([module.id, \"/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}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}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=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{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}code[class*=language-],pre[class*=language-]{color:#000;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{position:relative;margin:.5em 0;box-shadow:-1px 0 0 0 #358ccb,0 0 0 1px #dfdfdf;border-left:10px solid #358ccb;background-color:#fdfdfd;background-image:linear-gradient(transparent 50%,rgba(69,142,209,.04) 0);background-size:3em 3em;background-origin:content-box;overflow:visible;padding:0}code[class*=language]{max-height:inherit;height:100%;padding:0 1em;display:block;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background-color:#fdfdfd;box-sizing:border-box;margin-bottom:1em}:not(pre)>code[class*=language-]{position:relative;padding:.2em;border-radius:.3em;color:#c92c2c;border:1px solid rgba(0,0,0,.1);display:inline;white-space:normal}pre[class*=language-]:after,pre[class*=language-]:before{content:'';z-index:-2;display:block;position:absolute;bottom:.75em;left:.18em;width:40%;height:20%;max-height:13em;box-shadow:0 13px 8px #979797;transform:rotate(-2deg)}:not(pre)>code[class*=language-]:after,pre[class*=language-]:after{right:.75em;left:auto;transform:rotate(2deg)}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#7d8b99}.token.punctuation{color:#5f6364}.token.boolean,.token.constant,.token.deleted,.token.function-name,.token.number,.token.property,.token.symbol,.token.tag{color:#c92c2c}.token.attr-name,.token.builtin,.token.char,.token.function,.token.inserted,.token.selector,.token.string{color:#2f9c0a}.token.entity,.token.operator,.token.url,.token.variable{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.class-name,.token.keyword{color:#1990b8}.token.important,.token.regex{color:#e90}.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.important{font-weight:400}.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.namespace{opacity:.7}@media screen and (max-width:767px){pre[class*=language-]:after,pre[class*=language-]:before{bottom:14px;box-shadow:none}}.token.cr:before,.token.lf:before,.token.tab:not(:empty):before{color:#e0d7d1}pre[class*=language-].line-numbers{padding-left:0}pre[class*=language-].line-numbers code{padding-left:3.8em}pre[class*=language-].line-numbers .line-numbers-rows{left:0}pre[class*=language-][data-line]{padding-top:0;padding-bottom:0;padding-left:0}pre[data-line] code{position:relative;padding-left:4em}pre .line-highlight{margin-top:0}[flex-offset=\\\"0\\\"]{margin-left:0}[flex-offset=\\\"5\\\"]{margin-left:5%}[flex-offset=\\\"10\\\"]{margin-left:10%}[flex-offset=\\\"15\\\"]{margin-left:15%}[flex-offset=\\\"20\\\"]{margin-left:20%}[flex-offset=\\\"25\\\"]{margin-left:25%}[flex-offset=\\\"30\\\"]{margin-left:30%}[flex-offset=\\\"35\\\"]{margin-left:35%}[flex-offset=\\\"40\\\"]{margin-left:40%}[flex-offset=\\\"45\\\"]{margin-left:45%}[flex-offset=\\\"50\\\"]{margin-left:50%}[flex-offset=\\\"55\\\"]{margin-left:55%}[flex-offset=\\\"60\\\"]{margin-left:60%}[flex-offset=\\\"65\\\"]{margin-left:65%}[flex-offset=\\\"70\\\"]{margin-left:70%}[flex-offset=\\\"75\\\"]{margin-left:75%}[flex-offset=\\\"80\\\"]{margin-left:80%}[flex-offset=\\\"85\\\"]{margin-left:85%}[flex-offset=\\\"90\\\"]{margin-left:90%}[flex-offset=\\\"95\\\"]{margin-left:95%}[flex-offset=\\\"33\\\"]{margin-left:33.33333%}[flex-offset=\\\"66\\\"]{margin-left:66.66667%}[flex-order=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout]>*{box-sizing:border-box}[layout=column]{-ms-flex-direction:column;flex-direction:column}[layout=row]{-ms-flex-direction:row;flex-direction:row}[layout-align]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align^=center]{-ms-flex-pack:center;justify-content:center}[layout-align^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align$=center]>*{max-width:100%}[layout-align$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align=center],[layout-align=end],[layout-align=space-around],[layout-align=space-between],[layout-align=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex]{-ms-flex:1;flex:1}[flex-start]{margin-bottom:auto}[flex-end]{margin-top:auto}[flex-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex],[layout=row]>[flex]{max-height:100%}[layout=column]>[flex]{max-width:100%}[layout=row]>[flex=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout=column]>[flex=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout=row]>[flex=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout=column]>[flex=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout=row]>[flex=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout=column]>[flex=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout=row]>[flex=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout=column]>[flex=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout=row]>[flex=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout=column]>[flex=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout=row]>[flex=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout=column]>[flex=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout=row]>[flex=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout=column]>[flex=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout=row]>[flex=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout=column]>[flex=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout=row]>[flex=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout=column]>[flex=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout=row]>[flex=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout=column]>[flex=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout=row]>[flex=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout=column]>[flex=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout=row]>[flex=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout=column]>[flex=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout=row]>[flex=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout=column]>[flex=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout=row]>[flex=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout=column]>[flex=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout=row]>[flex=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout=column]>[flex=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout=row]>[flex=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout=column]>[flex=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout=row]>[flex=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout=column]>[flex=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout=row]>[flex=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout=column]>[flex=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout=row]>[flex=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout=column]>[flex=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout=row]>[flex=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout=column]>[flex=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout=row]>[flex=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout=column]>[flex=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout=row]>[flex=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout=column]>[flex=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide]{display:none}@media (max-width:599px){[flex-offset-sm=\\\"0\\\"]{margin-left:0}[flex-offset-sm=\\\"5\\\"]{margin-left:5%}[flex-offset-sm=\\\"10\\\"]{margin-left:10%}[flex-offset-sm=\\\"15\\\"]{margin-left:15%}[flex-offset-sm=\\\"20\\\"]{margin-left:20%}[flex-offset-sm=\\\"25\\\"]{margin-left:25%}[flex-offset-sm=\\\"30\\\"]{margin-left:30%}[flex-offset-sm=\\\"35\\\"]{margin-left:35%}[flex-offset-sm=\\\"40\\\"]{margin-left:40%}[flex-offset-sm=\\\"45\\\"]{margin-left:45%}[flex-offset-sm=\\\"50\\\"]{margin-left:50%}[flex-offset-sm=\\\"55\\\"]{margin-left:55%}[flex-offset-sm=\\\"60\\\"]{margin-left:60%}[flex-offset-sm=\\\"65\\\"]{margin-left:65%}[flex-offset-sm=\\\"70\\\"]{margin-left:70%}[flex-offset-sm=\\\"75\\\"]{margin-left:75%}[flex-offset-sm=\\\"80\\\"]{margin-left:80%}[flex-offset-sm=\\\"85\\\"]{margin-left:85%}[flex-offset-sm=\\\"90\\\"]{margin-left:90%}[flex-offset-sm=\\\"95\\\"]{margin-left:95%}[flex-offset-sm=\\\"33\\\"]{margin-left:33.33333%}[flex-offset-sm=\\\"66\\\"]{margin-left:66.66667%}[flex-order-sm=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order-sm=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order-sm=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order-sm=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order-sm=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order-sm=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order-sm=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order-sm=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order-sm=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order-sm=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order-sm=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order-sm=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order-sm=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order-sm=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order-sm=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order-sm=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order-sm=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order-sm=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order-sm=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order-sm=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order-sm=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout-sm]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout-sm]>*{box-sizing:border-box}[layout-sm=column]{-ms-flex-direction:column;flex-direction:column}[layout-sm=row]{-ms-flex-direction:row;flex-direction:row}[layout-align-sm]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align-sm^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align-sm^=center]{-ms-flex-pack:center;justify-content:center}[layout-align-sm^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align-sm^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align-sm^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align-sm$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align-sm$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align-sm$=center]>*{max-width:100%}[layout-align-sm$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align-sm=center],[layout-align-sm=end],[layout-align-sm=space-around],[layout-align-sm=space-between],[layout-align-sm=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex-sm]{-ms-flex:1;flex:1}[flex-sm-start]{margin-bottom:auto}[flex-sm-end]{margin-top:auto}[flex-sm-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-sm-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-sm-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-sm-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-sm-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex-sm],[layout-sm=row]>[flex-sm],[layout=row]>[flex-sm]{max-height:100%}[layout-sm=column]>[flex-sm],[layout=column]>[flex-sm]{max-width:100%}[layout-sm=row]>[flex-sm=\\\"5\\\"],[layout-sm=row]>[flex=\\\"5\\\"],[layout=row]>[flex-sm=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout-sm=column]>[flex-sm=\\\"5\\\"],[layout-sm=column]>[flex=\\\"5\\\"],[layout=column]>[flex-sm=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout-sm=row]>[flex-sm=\\\"10\\\"],[layout-sm=row]>[flex=\\\"10\\\"],[layout=row]>[flex-sm=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout-sm=column]>[flex-sm=\\\"10\\\"],[layout-sm=column]>[flex=\\\"10\\\"],[layout=column]>[flex-sm=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout-sm=row]>[flex-sm=\\\"15\\\"],[layout-sm=row]>[flex=\\\"15\\\"],[layout=row]>[flex-sm=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout-sm=column]>[flex-sm=\\\"15\\\"],[layout-sm=column]>[flex=\\\"15\\\"],[layout=column]>[flex-sm=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout-sm=row]>[flex-sm=\\\"20\\\"],[layout-sm=row]>[flex=\\\"20\\\"],[layout=row]>[flex-sm=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout-sm=column]>[flex-sm=\\\"20\\\"],[layout-sm=column]>[flex=\\\"20\\\"],[layout=column]>[flex-sm=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout-sm=row]>[flex-sm=\\\"25\\\"],[layout-sm=row]>[flex=\\\"25\\\"],[layout=row]>[flex-sm=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout-sm=column]>[flex-sm=\\\"25\\\"],[layout-sm=column]>[flex=\\\"25\\\"],[layout=column]>[flex-sm=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout-sm=row]>[flex-sm=\\\"30\\\"],[layout-sm=row]>[flex=\\\"30\\\"],[layout=row]>[flex-sm=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout-sm=column]>[flex-sm=\\\"30\\\"],[layout-sm=column]>[flex=\\\"30\\\"],[layout=column]>[flex-sm=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout-sm=row]>[flex-sm=\\\"35\\\"],[layout-sm=row]>[flex=\\\"35\\\"],[layout=row]>[flex-sm=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout-sm=column]>[flex-sm=\\\"35\\\"],[layout-sm=column]>[flex=\\\"35\\\"],[layout=column]>[flex-sm=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout-sm=row]>[flex-sm=\\\"40\\\"],[layout-sm=row]>[flex=\\\"40\\\"],[layout=row]>[flex-sm=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout-sm=column]>[flex-sm=\\\"40\\\"],[layout-sm=column]>[flex=\\\"40\\\"],[layout=column]>[flex-sm=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout-sm=row]>[flex-sm=\\\"45\\\"],[layout-sm=row]>[flex=\\\"45\\\"],[layout=row]>[flex-sm=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout-sm=column]>[flex-sm=\\\"45\\\"],[layout-sm=column]>[flex=\\\"45\\\"],[layout=column]>[flex-sm=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout-sm=row]>[flex-sm=\\\"50\\\"],[layout-sm=row]>[flex=\\\"50\\\"],[layout=row]>[flex-sm=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout-sm=column]>[flex-sm=\\\"50\\\"],[layout-sm=column]>[flex=\\\"50\\\"],[layout=column]>[flex-sm=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout-sm=row]>[flex-sm=\\\"55\\\"],[layout-sm=row]>[flex=\\\"55\\\"],[layout=row]>[flex-sm=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout-sm=column]>[flex-sm=\\\"55\\\"],[layout-sm=column]>[flex=\\\"55\\\"],[layout=column]>[flex-sm=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout-sm=row]>[flex-sm=\\\"60\\\"],[layout-sm=row]>[flex=\\\"60\\\"],[layout=row]>[flex-sm=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout-sm=column]>[flex-sm=\\\"60\\\"],[layout-sm=column]>[flex=\\\"60\\\"],[layout=column]>[flex-sm=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout-sm=row]>[flex-sm=\\\"65\\\"],[layout-sm=row]>[flex=\\\"65\\\"],[layout=row]>[flex-sm=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout-sm=column]>[flex-sm=\\\"65\\\"],[layout-sm=column]>[flex=\\\"65\\\"],[layout=column]>[flex-sm=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout-sm=row]>[flex-sm=\\\"70\\\"],[layout-sm=row]>[flex=\\\"70\\\"],[layout=row]>[flex-sm=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout-sm=column]>[flex-sm=\\\"70\\\"],[layout-sm=column]>[flex=\\\"70\\\"],[layout=column]>[flex-sm=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout-sm=row]>[flex-sm=\\\"75\\\"],[layout-sm=row]>[flex=\\\"75\\\"],[layout=row]>[flex-sm=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout-sm=column]>[flex-sm=\\\"75\\\"],[layout-sm=column]>[flex=\\\"75\\\"],[layout=column]>[flex-sm=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout-sm=row]>[flex-sm=\\\"80\\\"],[layout-sm=row]>[flex=\\\"80\\\"],[layout=row]>[flex-sm=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout-sm=column]>[flex-sm=\\\"80\\\"],[layout-sm=column]>[flex=\\\"80\\\"],[layout=column]>[flex-sm=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout-sm=row]>[flex-sm=\\\"85\\\"],[layout-sm=row]>[flex=\\\"85\\\"],[layout=row]>[flex-sm=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout-sm=column]>[flex-sm=\\\"85\\\"],[layout-sm=column]>[flex=\\\"85\\\"],[layout=column]>[flex-sm=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout-sm=row]>[flex-sm=\\\"90\\\"],[layout-sm=row]>[flex=\\\"90\\\"],[layout=row]>[flex-sm=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout-sm=column]>[flex-sm=\\\"90\\\"],[layout-sm=column]>[flex=\\\"90\\\"],[layout=column]>[flex-sm=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout-sm=row]>[flex-sm=\\\"95\\\"],[layout-sm=row]>[flex=\\\"95\\\"],[layout=row]>[flex-sm=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout-sm=column]>[flex-sm=\\\"95\\\"],[layout-sm=column]>[flex=\\\"95\\\"],[layout=column]>[flex-sm=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout-sm=row]>[flex-sm=\\\"100\\\"],[layout-sm=row]>[flex=\\\"100\\\"],[layout=row]>[flex-sm=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout-sm=column]>[flex-sm=\\\"100\\\"],[layout-sm=column]>[flex=\\\"100\\\"],[layout=column]>[flex-sm=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout-sm=row]>[flex-sm=\\\"33\\\"],[layout-sm=row]>[flex=\\\"33\\\"],[layout=row]>[flex-sm=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout-sm=column]>[flex-sm=\\\"33\\\"],[layout-sm=column]>[flex=\\\"33\\\"],[layout=column]>[flex-sm=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout-sm=row]>[flex-sm=\\\"66\\\"],[layout-sm=row]>[flex=\\\"66\\\"],[layout=row]>[flex-sm=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout-sm=column]>[flex-sm=\\\"66\\\"],[layout-sm=column]>[flex=\\\"66\\\"],[layout=column]>[flex-sm=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide-sm]{display:none}}@media (min-width:600px){[flex-offset-gt-sm=\\\"0\\\"]{margin-left:0}[flex-offset-gt-sm=\\\"5\\\"]{margin-left:5%}[flex-offset-gt-sm=\\\"10\\\"]{margin-left:10%}[flex-offset-gt-sm=\\\"15\\\"]{margin-left:15%}[flex-offset-gt-sm=\\\"20\\\"]{margin-left:20%}[flex-offset-gt-sm=\\\"25\\\"]{margin-left:25%}[flex-offset-gt-sm=\\\"30\\\"]{margin-left:30%}[flex-offset-gt-sm=\\\"35\\\"]{margin-left:35%}[flex-offset-gt-sm=\\\"40\\\"]{margin-left:40%}[flex-offset-gt-sm=\\\"45\\\"]{margin-left:45%}[flex-offset-gt-sm=\\\"50\\\"]{margin-left:50%}[flex-offset-gt-sm=\\\"55\\\"]{margin-left:55%}[flex-offset-gt-sm=\\\"60\\\"]{margin-left:60%}[flex-offset-gt-sm=\\\"65\\\"]{margin-left:65%}[flex-offset-gt-sm=\\\"70\\\"]{margin-left:70%}[flex-offset-gt-sm=\\\"75\\\"]{margin-left:75%}[flex-offset-gt-sm=\\\"80\\\"]{margin-left:80%}[flex-offset-gt-sm=\\\"85\\\"]{margin-left:85%}[flex-offset-gt-sm=\\\"90\\\"]{margin-left:90%}[flex-offset-gt-sm=\\\"95\\\"]{margin-left:95%}[flex-offset-gt-sm=\\\"33\\\"]{margin-left:33.33333%}[flex-offset-gt-sm=\\\"66\\\"]{margin-left:66.66667%}[flex-order-gt-sm=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order-gt-sm=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order-gt-sm=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order-gt-sm=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order-gt-sm=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order-gt-sm=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order-gt-sm=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order-gt-sm=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order-gt-sm=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order-gt-sm=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order-gt-sm=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order-gt-sm=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order-gt-sm=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order-gt-sm=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order-gt-sm=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order-gt-sm=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order-gt-sm=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order-gt-sm=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order-gt-sm=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order-gt-sm=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order-gt-sm=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout-gt-sm]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout-gt-sm]>*{box-sizing:border-box}[layout-gt-sm=column]{-ms-flex-direction:column;flex-direction:column}[layout-gt-sm=row]{-ms-flex-direction:row;flex-direction:row}[layout-align-gt-sm]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align-gt-sm^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align-gt-sm^=center]{-ms-flex-pack:center;justify-content:center}[layout-align-gt-sm^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align-gt-sm^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align-gt-sm^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align-gt-sm$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align-gt-sm$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align-gt-sm$=center]>*{max-width:100%}[layout-align-gt-sm$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align-gt-sm=center],[layout-align-gt-sm=end],[layout-align-gt-sm=space-around],[layout-align-gt-sm=space-between],[layout-align-gt-sm=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex-gt-sm]{-ms-flex:1;flex:1}[flex-gt-sm-start]{margin-bottom:auto}[flex-gt-sm-end]{margin-top:auto}[flex-gt-sm-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-gt-sm-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-gt-sm-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-gt-sm-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-gt-sm-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex-gt-sm],[layout-gt-sm=row]>[flex-gt-sm],[layout=row]>[flex-gt-sm]{max-height:100%}[layout-gt-sm=column]>[flex-gt-sm],[layout=column]>[flex-gt-sm]{max-width:100%}[layout-gt-sm=row]>[flex-gt-sm=\\\"5\\\"],[layout-gt-sm=row]>[flex=\\\"5\\\"],[layout=row]>[flex-gt-sm=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout-gt-sm=column]>[flex-gt-sm=\\\"5\\\"],[layout-gt-sm=column]>[flex=\\\"5\\\"],[layout=column]>[flex-gt-sm=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout-gt-sm=row]>[flex-gt-sm=\\\"10\\\"],[layout-gt-sm=row]>[flex=\\\"10\\\"],[layout=row]>[flex-gt-sm=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout-gt-sm=column]>[flex-gt-sm=\\\"10\\\"],[layout-gt-sm=column]>[flex=\\\"10\\\"],[layout=column]>[flex-gt-sm=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout-gt-sm=row]>[flex-gt-sm=\\\"15\\\"],[layout-gt-sm=row]>[flex=\\\"15\\\"],[layout=row]>[flex-gt-sm=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout-gt-sm=column]>[flex-gt-sm=\\\"15\\\"],[layout-gt-sm=column]>[flex=\\\"15\\\"],[layout=column]>[flex-gt-sm=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout-gt-sm=row]>[flex-gt-sm=\\\"20\\\"],[layout-gt-sm=row]>[flex=\\\"20\\\"],[layout=row]>[flex-gt-sm=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout-gt-sm=column]>[flex-gt-sm=\\\"20\\\"],[layout-gt-sm=column]>[flex=\\\"20\\\"],[layout=column]>[flex-gt-sm=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout-gt-sm=row]>[flex-gt-sm=\\\"25\\\"],[layout-gt-sm=row]>[flex=\\\"25\\\"],[layout=row]>[flex-gt-sm=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout-gt-sm=column]>[flex-gt-sm=\\\"25\\\"],[layout-gt-sm=column]>[flex=\\\"25\\\"],[layout=column]>[flex-gt-sm=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout-gt-sm=row]>[flex-gt-sm=\\\"30\\\"],[layout-gt-sm=row]>[flex=\\\"30\\\"],[layout=row]>[flex-gt-sm=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout-gt-sm=column]>[flex-gt-sm=\\\"30\\\"],[layout-gt-sm=column]>[flex=\\\"30\\\"],[layout=column]>[flex-gt-sm=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout-gt-sm=row]>[flex-gt-sm=\\\"35\\\"],[layout-gt-sm=row]>[flex=\\\"35\\\"],[layout=row]>[flex-gt-sm=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout-gt-sm=column]>[flex-gt-sm=\\\"35\\\"],[layout-gt-sm=column]>[flex=\\\"35\\\"],[layout=column]>[flex-gt-sm=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout-gt-sm=row]>[flex-gt-sm=\\\"40\\\"],[layout-gt-sm=row]>[flex=\\\"40\\\"],[layout=row]>[flex-gt-sm=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout-gt-sm=column]>[flex-gt-sm=\\\"40\\\"],[layout-gt-sm=column]>[flex=\\\"40\\\"],[layout=column]>[flex-gt-sm=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout-gt-sm=row]>[flex-gt-sm=\\\"45\\\"],[layout-gt-sm=row]>[flex=\\\"45\\\"],[layout=row]>[flex-gt-sm=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout-gt-sm=column]>[flex-gt-sm=\\\"45\\\"],[layout-gt-sm=column]>[flex=\\\"45\\\"],[layout=column]>[flex-gt-sm=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout-gt-sm=row]>[flex-gt-sm=\\\"50\\\"],[layout-gt-sm=row]>[flex=\\\"50\\\"],[layout=row]>[flex-gt-sm=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout-gt-sm=column]>[flex-gt-sm=\\\"50\\\"],[layout-gt-sm=column]>[flex=\\\"50\\\"],[layout=column]>[flex-gt-sm=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout-gt-sm=row]>[flex-gt-sm=\\\"55\\\"],[layout-gt-sm=row]>[flex=\\\"55\\\"],[layout=row]>[flex-gt-sm=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout-gt-sm=column]>[flex-gt-sm=\\\"55\\\"],[layout-gt-sm=column]>[flex=\\\"55\\\"],[layout=column]>[flex-gt-sm=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout-gt-sm=row]>[flex-gt-sm=\\\"60\\\"],[layout-gt-sm=row]>[flex=\\\"60\\\"],[layout=row]>[flex-gt-sm=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout-gt-sm=column]>[flex-gt-sm=\\\"60\\\"],[layout-gt-sm=column]>[flex=\\\"60\\\"],[layout=column]>[flex-gt-sm=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout-gt-sm=row]>[flex-gt-sm=\\\"65\\\"],[layout-gt-sm=row]>[flex=\\\"65\\\"],[layout=row]>[flex-gt-sm=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout-gt-sm=column]>[flex-gt-sm=\\\"65\\\"],[layout-gt-sm=column]>[flex=\\\"65\\\"],[layout=column]>[flex-gt-sm=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout-gt-sm=row]>[flex-gt-sm=\\\"70\\\"],[layout-gt-sm=row]>[flex=\\\"70\\\"],[layout=row]>[flex-gt-sm=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout-gt-sm=column]>[flex-gt-sm=\\\"70\\\"],[layout-gt-sm=column]>[flex=\\\"70\\\"],[layout=column]>[flex-gt-sm=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout-gt-sm=row]>[flex-gt-sm=\\\"75\\\"],[layout-gt-sm=row]>[flex=\\\"75\\\"],[layout=row]>[flex-gt-sm=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout-gt-sm=column]>[flex-gt-sm=\\\"75\\\"],[layout-gt-sm=column]>[flex=\\\"75\\\"],[layout=column]>[flex-gt-sm=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout-gt-sm=row]>[flex-gt-sm=\\\"80\\\"],[layout-gt-sm=row]>[flex=\\\"80\\\"],[layout=row]>[flex-gt-sm=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout-gt-sm=column]>[flex-gt-sm=\\\"80\\\"],[layout-gt-sm=column]>[flex=\\\"80\\\"],[layout=column]>[flex-gt-sm=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout-gt-sm=row]>[flex-gt-sm=\\\"85\\\"],[layout-gt-sm=row]>[flex=\\\"85\\\"],[layout=row]>[flex-gt-sm=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout-gt-sm=column]>[flex-gt-sm=\\\"85\\\"],[layout-gt-sm=column]>[flex=\\\"85\\\"],[layout=column]>[flex-gt-sm=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout-gt-sm=row]>[flex-gt-sm=\\\"90\\\"],[layout-gt-sm=row]>[flex=\\\"90\\\"],[layout=row]>[flex-gt-sm=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout-gt-sm=column]>[flex-gt-sm=\\\"90\\\"],[layout-gt-sm=column]>[flex=\\\"90\\\"],[layout=column]>[flex-gt-sm=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout-gt-sm=row]>[flex-gt-sm=\\\"95\\\"],[layout-gt-sm=row]>[flex=\\\"95\\\"],[layout=row]>[flex-gt-sm=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout-gt-sm=column]>[flex-gt-sm=\\\"95\\\"],[layout-gt-sm=column]>[flex=\\\"95\\\"],[layout=column]>[flex-gt-sm=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout-gt-sm=row]>[flex-gt-sm=\\\"100\\\"],[layout-gt-sm=row]>[flex=\\\"100\\\"],[layout=row]>[flex-gt-sm=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout-gt-sm=column]>[flex-gt-sm=\\\"100\\\"],[layout-gt-sm=column]>[flex=\\\"100\\\"],[layout=column]>[flex-gt-sm=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout-gt-sm=row]>[flex-gt-sm=\\\"33\\\"],[layout-gt-sm=row]>[flex=\\\"33\\\"],[layout=row]>[flex-gt-sm=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout-gt-sm=column]>[flex-gt-sm=\\\"33\\\"],[layout-gt-sm=column]>[flex=\\\"33\\\"],[layout=column]>[flex-gt-sm=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout-gt-sm=row]>[flex-gt-sm=\\\"66\\\"],[layout-gt-sm=row]>[flex=\\\"66\\\"],[layout=row]>[flex-gt-sm=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout-gt-sm=column]>[flex-gt-sm=\\\"66\\\"],[layout-gt-sm=column]>[flex=\\\"66\\\"],[layout=column]>[flex-gt-sm=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide-gt-sm]{display:none}}@media (min-width:600px) and (max-width:959px){[flex-offset-md=\\\"0\\\"]{margin-left:0}[flex-offset-md=\\\"5\\\"]{margin-left:5%}[flex-offset-md=\\\"10\\\"]{margin-left:10%}[flex-offset-md=\\\"15\\\"]{margin-left:15%}[flex-offset-md=\\\"20\\\"]{margin-left:20%}[flex-offset-md=\\\"25\\\"]{margin-left:25%}[flex-offset-md=\\\"30\\\"]{margin-left:30%}[flex-offset-md=\\\"35\\\"]{margin-left:35%}[flex-offset-md=\\\"40\\\"]{margin-left:40%}[flex-offset-md=\\\"45\\\"]{margin-left:45%}[flex-offset-md=\\\"50\\\"]{margin-left:50%}[flex-offset-md=\\\"55\\\"]{margin-left:55%}[flex-offset-md=\\\"60\\\"]{margin-left:60%}[flex-offset-md=\\\"65\\\"]{margin-left:65%}[flex-offset-md=\\\"70\\\"]{margin-left:70%}[flex-offset-md=\\\"75\\\"]{margin-left:75%}[flex-offset-md=\\\"80\\\"]{margin-left:80%}[flex-offset-md=\\\"85\\\"]{margin-left:85%}[flex-offset-md=\\\"90\\\"]{margin-left:90%}[flex-offset-md=\\\"95\\\"]{margin-left:95%}[flex-offset-md=\\\"33\\\"]{margin-left:33.33333%}[flex-offset-md=\\\"66\\\"]{margin-left:66.66667%}[flex-order-md=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order-md=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order-md=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order-md=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order-md=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order-md=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order-md=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order-md=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order-md=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order-md=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order-md=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order-md=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order-md=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order-md=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order-md=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order-md=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order-md=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order-md=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order-md=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order-md=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order-md=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout-md]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout-md]>*{box-sizing:border-box}[layout-md=column]{-ms-flex-direction:column;flex-direction:column}[layout-md=row]{-ms-flex-direction:row;flex-direction:row}[layout-align-md]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align-md^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align-md^=center]{-ms-flex-pack:center;justify-content:center}[layout-align-md^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align-md^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align-md^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align-md$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align-md$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align-md$=center]>*{max-width:100%}[layout-align-md$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align-md=center],[layout-align-md=end],[layout-align-md=space-around],[layout-align-md=space-between],[layout-align-md=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex-md]{-ms-flex:1;flex:1}[flex-md-start]{margin-bottom:auto}[flex-md-end]{margin-top:auto}[flex-md-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-md-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-md-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-md-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-md-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex-md],[layout-md=row]>[flex-md],[layout=row]>[flex-md]{max-height:100%}[layout-md=column]>[flex-md],[layout=column]>[flex-md]{max-width:100%}[layout-md=row]>[flex-md=\\\"5\\\"],[layout-md=row]>[flex=\\\"5\\\"],[layout=row]>[flex-md=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout-md=column]>[flex-md=\\\"5\\\"],[layout-md=column]>[flex=\\\"5\\\"],[layout=column]>[flex-md=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout-md=row]>[flex-md=\\\"10\\\"],[layout-md=row]>[flex=\\\"10\\\"],[layout=row]>[flex-md=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout-md=column]>[flex-md=\\\"10\\\"],[layout-md=column]>[flex=\\\"10\\\"],[layout=column]>[flex-md=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout-md=row]>[flex-md=\\\"15\\\"],[layout-md=row]>[flex=\\\"15\\\"],[layout=row]>[flex-md=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout-md=column]>[flex-md=\\\"15\\\"],[layout-md=column]>[flex=\\\"15\\\"],[layout=column]>[flex-md=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout-md=row]>[flex-md=\\\"20\\\"],[layout-md=row]>[flex=\\\"20\\\"],[layout=row]>[flex-md=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout-md=column]>[flex-md=\\\"20\\\"],[layout-md=column]>[flex=\\\"20\\\"],[layout=column]>[flex-md=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout-md=row]>[flex-md=\\\"25\\\"],[layout-md=row]>[flex=\\\"25\\\"],[layout=row]>[flex-md=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout-md=column]>[flex-md=\\\"25\\\"],[layout-md=column]>[flex=\\\"25\\\"],[layout=column]>[flex-md=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout-md=row]>[flex-md=\\\"30\\\"],[layout-md=row]>[flex=\\\"30\\\"],[layout=row]>[flex-md=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout-md=column]>[flex-md=\\\"30\\\"],[layout-md=column]>[flex=\\\"30\\\"],[layout=column]>[flex-md=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout-md=row]>[flex-md=\\\"35\\\"],[layout-md=row]>[flex=\\\"35\\\"],[layout=row]>[flex-md=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout-md=column]>[flex-md=\\\"35\\\"],[layout-md=column]>[flex=\\\"35\\\"],[layout=column]>[flex-md=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout-md=row]>[flex-md=\\\"40\\\"],[layout-md=row]>[flex=\\\"40\\\"],[layout=row]>[flex-md=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout-md=column]>[flex-md=\\\"40\\\"],[layout-md=column]>[flex=\\\"40\\\"],[layout=column]>[flex-md=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout-md=row]>[flex-md=\\\"45\\\"],[layout-md=row]>[flex=\\\"45\\\"],[layout=row]>[flex-md=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout-md=column]>[flex-md=\\\"45\\\"],[layout-md=column]>[flex=\\\"45\\\"],[layout=column]>[flex-md=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout-md=row]>[flex-md=\\\"50\\\"],[layout-md=row]>[flex=\\\"50\\\"],[layout=row]>[flex-md=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout-md=column]>[flex-md=\\\"50\\\"],[layout-md=column]>[flex=\\\"50\\\"],[layout=column]>[flex-md=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout-md=row]>[flex-md=\\\"55\\\"],[layout-md=row]>[flex=\\\"55\\\"],[layout=row]>[flex-md=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout-md=column]>[flex-md=\\\"55\\\"],[layout-md=column]>[flex=\\\"55\\\"],[layout=column]>[flex-md=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout-md=row]>[flex-md=\\\"60\\\"],[layout-md=row]>[flex=\\\"60\\\"],[layout=row]>[flex-md=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout-md=column]>[flex-md=\\\"60\\\"],[layout-md=column]>[flex=\\\"60\\\"],[layout=column]>[flex-md=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout-md=row]>[flex-md=\\\"65\\\"],[layout-md=row]>[flex=\\\"65\\\"],[layout=row]>[flex-md=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout-md=column]>[flex-md=\\\"65\\\"],[layout-md=column]>[flex=\\\"65\\\"],[layout=column]>[flex-md=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout-md=row]>[flex-md=\\\"70\\\"],[layout-md=row]>[flex=\\\"70\\\"],[layout=row]>[flex-md=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout-md=column]>[flex-md=\\\"70\\\"],[layout-md=column]>[flex=\\\"70\\\"],[layout=column]>[flex-md=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout-md=row]>[flex-md=\\\"75\\\"],[layout-md=row]>[flex=\\\"75\\\"],[layout=row]>[flex-md=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout-md=column]>[flex-md=\\\"75\\\"],[layout-md=column]>[flex=\\\"75\\\"],[layout=column]>[flex-md=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout-md=row]>[flex-md=\\\"80\\\"],[layout-md=row]>[flex=\\\"80\\\"],[layout=row]>[flex-md=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout-md=column]>[flex-md=\\\"80\\\"],[layout-md=column]>[flex=\\\"80\\\"],[layout=column]>[flex-md=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout-md=row]>[flex-md=\\\"85\\\"],[layout-md=row]>[flex=\\\"85\\\"],[layout=row]>[flex-md=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout-md=column]>[flex-md=\\\"85\\\"],[layout-md=column]>[flex=\\\"85\\\"],[layout=column]>[flex-md=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout-md=row]>[flex-md=\\\"90\\\"],[layout-md=row]>[flex=\\\"90\\\"],[layout=row]>[flex-md=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout-md=column]>[flex-md=\\\"90\\\"],[layout-md=column]>[flex=\\\"90\\\"],[layout=column]>[flex-md=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout-md=row]>[flex-md=\\\"95\\\"],[layout-md=row]>[flex=\\\"95\\\"],[layout=row]>[flex-md=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout-md=column]>[flex-md=\\\"95\\\"],[layout-md=column]>[flex=\\\"95\\\"],[layout=column]>[flex-md=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout-md=row]>[flex-md=\\\"100\\\"],[layout-md=row]>[flex=\\\"100\\\"],[layout=row]>[flex-md=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout-md=column]>[flex-md=\\\"100\\\"],[layout-md=column]>[flex=\\\"100\\\"],[layout=column]>[flex-md=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout-md=row]>[flex-md=\\\"33\\\"],[layout-md=row]>[flex=\\\"33\\\"],[layout=row]>[flex-md=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout-md=column]>[flex-md=\\\"33\\\"],[layout-md=column]>[flex=\\\"33\\\"],[layout=column]>[flex-md=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout-md=row]>[flex-md=\\\"66\\\"],[layout-md=row]>[flex=\\\"66\\\"],[layout=row]>[flex-md=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout-md=column]>[flex-md=\\\"66\\\"],[layout-md=column]>[flex=\\\"66\\\"],[layout=column]>[flex-md=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide-md]{display:none}}@media (min-width:960px){[flex-offset-gt-md=\\\"0\\\"]{margin-left:0}[flex-offset-gt-md=\\\"5\\\"]{margin-left:5%}[flex-offset-gt-md=\\\"10\\\"]{margin-left:10%}[flex-offset-gt-md=\\\"15\\\"]{margin-left:15%}[flex-offset-gt-md=\\\"20\\\"]{margin-left:20%}[flex-offset-gt-md=\\\"25\\\"]{margin-left:25%}[flex-offset-gt-md=\\\"30\\\"]{margin-left:30%}[flex-offset-gt-md=\\\"35\\\"]{margin-left:35%}[flex-offset-gt-md=\\\"40\\\"]{margin-left:40%}[flex-offset-gt-md=\\\"45\\\"]{margin-left:45%}[flex-offset-gt-md=\\\"50\\\"]{margin-left:50%}[flex-offset-gt-md=\\\"55\\\"]{margin-left:55%}[flex-offset-gt-md=\\\"60\\\"]{margin-left:60%}[flex-offset-gt-md=\\\"65\\\"]{margin-left:65%}[flex-offset-gt-md=\\\"70\\\"]{margin-left:70%}[flex-offset-gt-md=\\\"75\\\"]{margin-left:75%}[flex-offset-gt-md=\\\"80\\\"]{margin-left:80%}[flex-offset-gt-md=\\\"85\\\"]{margin-left:85%}[flex-offset-gt-md=\\\"90\\\"]{margin-left:90%}[flex-offset-gt-md=\\\"95\\\"]{margin-left:95%}[flex-offset-gt-md=\\\"33\\\"]{margin-left:33.33333%}[flex-offset-gt-md=\\\"66\\\"]{margin-left:66.66667%}[flex-order-gt-md=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order-gt-md=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order-gt-md=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order-gt-md=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order-gt-md=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order-gt-md=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order-gt-md=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order-gt-md=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order-gt-md=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order-gt-md=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order-gt-md=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order-gt-md=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order-gt-md=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order-gt-md=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order-gt-md=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order-gt-md=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order-gt-md=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order-gt-md=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order-gt-md=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order-gt-md=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order-gt-md=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout-gt-md]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout-gt-md]>*{box-sizing:border-box}[layout-gt-md=column]{-ms-flex-direction:column;flex-direction:column}[layout-gt-md=row]{-ms-flex-direction:row;flex-direction:row}[layout-align-gt-md]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align-gt-md^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align-gt-md^=center]{-ms-flex-pack:center;justify-content:center}[layout-align-gt-md^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align-gt-md^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align-gt-md^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align-gt-md$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align-gt-md$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align-gt-md$=center]>*{max-width:100%}[layout-align-gt-md$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align-gt-md=center],[layout-align-gt-md=end],[layout-align-gt-md=space-around],[layout-align-gt-md=space-between],[layout-align-gt-md=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex-gt-md]{-ms-flex:1;flex:1}[flex-gt-md-start]{margin-bottom:auto}[flex-gt-md-end]{margin-top:auto}[flex-gt-md-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-gt-md-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-gt-md-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-gt-md-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-gt-md-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex-gt-md],[layout-gt-md=row]>[flex-gt-md],[layout=row]>[flex-gt-md]{max-height:100%}[layout-gt-md=column]>[flex-gt-md],[layout=column]>[flex-gt-md]{max-width:100%}[layout-gt-md=row]>[flex-gt-md=\\\"5\\\"],[layout-gt-md=row]>[flex=\\\"5\\\"],[layout=row]>[flex-gt-md=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout-gt-md=column]>[flex-gt-md=\\\"5\\\"],[layout-gt-md=column]>[flex=\\\"5\\\"],[layout=column]>[flex-gt-md=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout-gt-md=row]>[flex-gt-md=\\\"10\\\"],[layout-gt-md=row]>[flex=\\\"10\\\"],[layout=row]>[flex-gt-md=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout-gt-md=column]>[flex-gt-md=\\\"10\\\"],[layout-gt-md=column]>[flex=\\\"10\\\"],[layout=column]>[flex-gt-md=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout-gt-md=row]>[flex-gt-md=\\\"15\\\"],[layout-gt-md=row]>[flex=\\\"15\\\"],[layout=row]>[flex-gt-md=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout-gt-md=column]>[flex-gt-md=\\\"15\\\"],[layout-gt-md=column]>[flex=\\\"15\\\"],[layout=column]>[flex-gt-md=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout-gt-md=row]>[flex-gt-md=\\\"20\\\"],[layout-gt-md=row]>[flex=\\\"20\\\"],[layout=row]>[flex-gt-md=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout-gt-md=column]>[flex-gt-md=\\\"20\\\"],[layout-gt-md=column]>[flex=\\\"20\\\"],[layout=column]>[flex-gt-md=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout-gt-md=row]>[flex-gt-md=\\\"25\\\"],[layout-gt-md=row]>[flex=\\\"25\\\"],[layout=row]>[flex-gt-md=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout-gt-md=column]>[flex-gt-md=\\\"25\\\"],[layout-gt-md=column]>[flex=\\\"25\\\"],[layout=column]>[flex-gt-md=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout-gt-md=row]>[flex-gt-md=\\\"30\\\"],[layout-gt-md=row]>[flex=\\\"30\\\"],[layout=row]>[flex-gt-md=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout-gt-md=column]>[flex-gt-md=\\\"30\\\"],[layout-gt-md=column]>[flex=\\\"30\\\"],[layout=column]>[flex-gt-md=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout-gt-md=row]>[flex-gt-md=\\\"35\\\"],[layout-gt-md=row]>[flex=\\\"35\\\"],[layout=row]>[flex-gt-md=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout-gt-md=column]>[flex-gt-md=\\\"35\\\"],[layout-gt-md=column]>[flex=\\\"35\\\"],[layout=column]>[flex-gt-md=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout-gt-md=row]>[flex-gt-md=\\\"40\\\"],[layout-gt-md=row]>[flex=\\\"40\\\"],[layout=row]>[flex-gt-md=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout-gt-md=column]>[flex-gt-md=\\\"40\\\"],[layout-gt-md=column]>[flex=\\\"40\\\"],[layout=column]>[flex-gt-md=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout-gt-md=row]>[flex-gt-md=\\\"45\\\"],[layout-gt-md=row]>[flex=\\\"45\\\"],[layout=row]>[flex-gt-md=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout-gt-md=column]>[flex-gt-md=\\\"45\\\"],[layout-gt-md=column]>[flex=\\\"45\\\"],[layout=column]>[flex-gt-md=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout-gt-md=row]>[flex-gt-md=\\\"50\\\"],[layout-gt-md=row]>[flex=\\\"50\\\"],[layout=row]>[flex-gt-md=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout-gt-md=column]>[flex-gt-md=\\\"50\\\"],[layout-gt-md=column]>[flex=\\\"50\\\"],[layout=column]>[flex-gt-md=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout-gt-md=row]>[flex-gt-md=\\\"55\\\"],[layout-gt-md=row]>[flex=\\\"55\\\"],[layout=row]>[flex-gt-md=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout-gt-md=column]>[flex-gt-md=\\\"55\\\"],[layout-gt-md=column]>[flex=\\\"55\\\"],[layout=column]>[flex-gt-md=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout-gt-md=row]>[flex-gt-md=\\\"60\\\"],[layout-gt-md=row]>[flex=\\\"60\\\"],[layout=row]>[flex-gt-md=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout-gt-md=column]>[flex-gt-md=\\\"60\\\"],[layout-gt-md=column]>[flex=\\\"60\\\"],[layout=column]>[flex-gt-md=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout-gt-md=row]>[flex-gt-md=\\\"65\\\"],[layout-gt-md=row]>[flex=\\\"65\\\"],[layout=row]>[flex-gt-md=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout-gt-md=column]>[flex-gt-md=\\\"65\\\"],[layout-gt-md=column]>[flex=\\\"65\\\"],[layout=column]>[flex-gt-md=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout-gt-md=row]>[flex-gt-md=\\\"70\\\"],[layout-gt-md=row]>[flex=\\\"70\\\"],[layout=row]>[flex-gt-md=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout-gt-md=column]>[flex-gt-md=\\\"70\\\"],[layout-gt-md=column]>[flex=\\\"70\\\"],[layout=column]>[flex-gt-md=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout-gt-md=row]>[flex-gt-md=\\\"75\\\"],[layout-gt-md=row]>[flex=\\\"75\\\"],[layout=row]>[flex-gt-md=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout-gt-md=column]>[flex-gt-md=\\\"75\\\"],[layout-gt-md=column]>[flex=\\\"75\\\"],[layout=column]>[flex-gt-md=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout-gt-md=row]>[flex-gt-md=\\\"80\\\"],[layout-gt-md=row]>[flex=\\\"80\\\"],[layout=row]>[flex-gt-md=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout-gt-md=column]>[flex-gt-md=\\\"80\\\"],[layout-gt-md=column]>[flex=\\\"80\\\"],[layout=column]>[flex-gt-md=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout-gt-md=row]>[flex-gt-md=\\\"85\\\"],[layout-gt-md=row]>[flex=\\\"85\\\"],[layout=row]>[flex-gt-md=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout-gt-md=column]>[flex-gt-md=\\\"85\\\"],[layout-gt-md=column]>[flex=\\\"85\\\"],[layout=column]>[flex-gt-md=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout-gt-md=row]>[flex-gt-md=\\\"90\\\"],[layout-gt-md=row]>[flex=\\\"90\\\"],[layout=row]>[flex-gt-md=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout-gt-md=column]>[flex-gt-md=\\\"90\\\"],[layout-gt-md=column]>[flex=\\\"90\\\"],[layout=column]>[flex-gt-md=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout-gt-md=row]>[flex-gt-md=\\\"95\\\"],[layout-gt-md=row]>[flex=\\\"95\\\"],[layout=row]>[flex-gt-md=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout-gt-md=column]>[flex-gt-md=\\\"95\\\"],[layout-gt-md=column]>[flex=\\\"95\\\"],[layout=column]>[flex-gt-md=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout-gt-md=row]>[flex-gt-md=\\\"100\\\"],[layout-gt-md=row]>[flex=\\\"100\\\"],[layout=row]>[flex-gt-md=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout-gt-md=column]>[flex-gt-md=\\\"100\\\"],[layout-gt-md=column]>[flex=\\\"100\\\"],[layout=column]>[flex-gt-md=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout-gt-md=row]>[flex-gt-md=\\\"33\\\"],[layout-gt-md=row]>[flex=\\\"33\\\"],[layout=row]>[flex-gt-md=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout-gt-md=column]>[flex-gt-md=\\\"33\\\"],[layout-gt-md=column]>[flex=\\\"33\\\"],[layout=column]>[flex-gt-md=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout-gt-md=row]>[flex-gt-md=\\\"66\\\"],[layout-gt-md=row]>[flex=\\\"66\\\"],[layout=row]>[flex-gt-md=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout-gt-md=column]>[flex-gt-md=\\\"66\\\"],[layout-gt-md=column]>[flex=\\\"66\\\"],[layout=column]>[flex-gt-md=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide-gt-md]{display:none}}@media (min-width:960px) and (max-width:1199px){[flex-offset-lg=\\\"0\\\"]{margin-left:0}[flex-offset-lg=\\\"5\\\"]{margin-left:5%}[flex-offset-lg=\\\"10\\\"]{margin-left:10%}[flex-offset-lg=\\\"15\\\"]{margin-left:15%}[flex-offset-lg=\\\"20\\\"]{margin-left:20%}[flex-offset-lg=\\\"25\\\"]{margin-left:25%}[flex-offset-lg=\\\"30\\\"]{margin-left:30%}[flex-offset-lg=\\\"35\\\"]{margin-left:35%}[flex-offset-lg=\\\"40\\\"]{margin-left:40%}[flex-offset-lg=\\\"45\\\"]{margin-left:45%}[flex-offset-lg=\\\"50\\\"]{margin-left:50%}[flex-offset-lg=\\\"55\\\"]{margin-left:55%}[flex-offset-lg=\\\"60\\\"]{margin-left:60%}[flex-offset-lg=\\\"65\\\"]{margin-left:65%}[flex-offset-lg=\\\"70\\\"]{margin-left:70%}[flex-offset-lg=\\\"75\\\"]{margin-left:75%}[flex-offset-lg=\\\"80\\\"]{margin-left:80%}[flex-offset-lg=\\\"85\\\"]{margin-left:85%}[flex-offset-lg=\\\"90\\\"]{margin-left:90%}[flex-offset-lg=\\\"95\\\"]{margin-left:95%}[flex-offset-lg=\\\"33\\\"]{margin-left:33.33333%}[flex-offset-lg=\\\"66\\\"]{margin-left:66.66667%}[flex-order-lg=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order-lg=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order-lg=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order-lg=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order-lg=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order-lg=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order-lg=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order-lg=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order-lg=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order-lg=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order-lg=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order-lg=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order-lg=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order-lg=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order-lg=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order-lg=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order-lg=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order-lg=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order-lg=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order-lg=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order-lg=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout-lg]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout-lg]>*{box-sizing:border-box}[layout-lg=column]{-ms-flex-direction:column;flex-direction:column}[layout-lg=row]{-ms-flex-direction:row;flex-direction:row}[layout-align-lg]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align-lg^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align-lg^=center]{-ms-flex-pack:center;justify-content:center}[layout-align-lg^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align-lg^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align-lg^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align-lg$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align-lg$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align-lg$=center]>*{max-width:100%}[layout-align-lg$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align-lg=center],[layout-align-lg=end],[layout-align-lg=space-around],[layout-align-lg=space-between],[layout-align-lg=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex-lg]{-ms-flex:1;flex:1}[flex-lg-start]{margin-bottom:auto}[flex-lg-end]{margin-top:auto}[flex-lg-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-lg-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-lg-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-lg-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-lg-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex-lg],[layout-lg=row]>[flex-lg],[layout=row]>[flex-lg]{max-height:100%}[layout-lg=column]>[flex-lg],[layout=column]>[flex-lg]{max-width:100%}[layout-lg=row]>[flex-lg=\\\"5\\\"],[layout-lg=row]>[flex=\\\"5\\\"],[layout=row]>[flex-lg=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout-lg=column]>[flex-lg=\\\"5\\\"],[layout-lg=column]>[flex=\\\"5\\\"],[layout=column]>[flex-lg=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout-lg=row]>[flex-lg=\\\"10\\\"],[layout-lg=row]>[flex=\\\"10\\\"],[layout=row]>[flex-lg=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout-lg=column]>[flex-lg=\\\"10\\\"],[layout-lg=column]>[flex=\\\"10\\\"],[layout=column]>[flex-lg=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout-lg=row]>[flex-lg=\\\"15\\\"],[layout-lg=row]>[flex=\\\"15\\\"],[layout=row]>[flex-lg=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout-lg=column]>[flex-lg=\\\"15\\\"],[layout-lg=column]>[flex=\\\"15\\\"],[layout=column]>[flex-lg=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout-lg=row]>[flex-lg=\\\"20\\\"],[layout-lg=row]>[flex=\\\"20\\\"],[layout=row]>[flex-lg=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout-lg=column]>[flex-lg=\\\"20\\\"],[layout-lg=column]>[flex=\\\"20\\\"],[layout=column]>[flex-lg=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout-lg=row]>[flex-lg=\\\"25\\\"],[layout-lg=row]>[flex=\\\"25\\\"],[layout=row]>[flex-lg=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout-lg=column]>[flex-lg=\\\"25\\\"],[layout-lg=column]>[flex=\\\"25\\\"],[layout=column]>[flex-lg=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout-lg=row]>[flex-lg=\\\"30\\\"],[layout-lg=row]>[flex=\\\"30\\\"],[layout=row]>[flex-lg=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout-lg=column]>[flex-lg=\\\"30\\\"],[layout-lg=column]>[flex=\\\"30\\\"],[layout=column]>[flex-lg=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout-lg=row]>[flex-lg=\\\"35\\\"],[layout-lg=row]>[flex=\\\"35\\\"],[layout=row]>[flex-lg=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout-lg=column]>[flex-lg=\\\"35\\\"],[layout-lg=column]>[flex=\\\"35\\\"],[layout=column]>[flex-lg=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout-lg=row]>[flex-lg=\\\"40\\\"],[layout-lg=row]>[flex=\\\"40\\\"],[layout=row]>[flex-lg=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout-lg=column]>[flex-lg=\\\"40\\\"],[layout-lg=column]>[flex=\\\"40\\\"],[layout=column]>[flex-lg=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout-lg=row]>[flex-lg=\\\"45\\\"],[layout-lg=row]>[flex=\\\"45\\\"],[layout=row]>[flex-lg=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout-lg=column]>[flex-lg=\\\"45\\\"],[layout-lg=column]>[flex=\\\"45\\\"],[layout=column]>[flex-lg=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout-lg=row]>[flex-lg=\\\"50\\\"],[layout-lg=row]>[flex=\\\"50\\\"],[layout=row]>[flex-lg=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout-lg=column]>[flex-lg=\\\"50\\\"],[layout-lg=column]>[flex=\\\"50\\\"],[layout=column]>[flex-lg=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout-lg=row]>[flex-lg=\\\"55\\\"],[layout-lg=row]>[flex=\\\"55\\\"],[layout=row]>[flex-lg=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout-lg=column]>[flex-lg=\\\"55\\\"],[layout-lg=column]>[flex=\\\"55\\\"],[layout=column]>[flex-lg=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout-lg=row]>[flex-lg=\\\"60\\\"],[layout-lg=row]>[flex=\\\"60\\\"],[layout=row]>[flex-lg=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout-lg=column]>[flex-lg=\\\"60\\\"],[layout-lg=column]>[flex=\\\"60\\\"],[layout=column]>[flex-lg=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout-lg=row]>[flex-lg=\\\"65\\\"],[layout-lg=row]>[flex=\\\"65\\\"],[layout=row]>[flex-lg=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout-lg=column]>[flex-lg=\\\"65\\\"],[layout-lg=column]>[flex=\\\"65\\\"],[layout=column]>[flex-lg=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout-lg=row]>[flex-lg=\\\"70\\\"],[layout-lg=row]>[flex=\\\"70\\\"],[layout=row]>[flex-lg=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout-lg=column]>[flex-lg=\\\"70\\\"],[layout-lg=column]>[flex=\\\"70\\\"],[layout=column]>[flex-lg=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout-lg=row]>[flex-lg=\\\"75\\\"],[layout-lg=row]>[flex=\\\"75\\\"],[layout=row]>[flex-lg=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout-lg=column]>[flex-lg=\\\"75\\\"],[layout-lg=column]>[flex=\\\"75\\\"],[layout=column]>[flex-lg=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout-lg=row]>[flex-lg=\\\"80\\\"],[layout-lg=row]>[flex=\\\"80\\\"],[layout=row]>[flex-lg=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout-lg=column]>[flex-lg=\\\"80\\\"],[layout-lg=column]>[flex=\\\"80\\\"],[layout=column]>[flex-lg=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout-lg=row]>[flex-lg=\\\"85\\\"],[layout-lg=row]>[flex=\\\"85\\\"],[layout=row]>[flex-lg=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout-lg=column]>[flex-lg=\\\"85\\\"],[layout-lg=column]>[flex=\\\"85\\\"],[layout=column]>[flex-lg=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout-lg=row]>[flex-lg=\\\"90\\\"],[layout-lg=row]>[flex=\\\"90\\\"],[layout=row]>[flex-lg=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout-lg=column]>[flex-lg=\\\"90\\\"],[layout-lg=column]>[flex=\\\"90\\\"],[layout=column]>[flex-lg=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout-lg=row]>[flex-lg=\\\"95\\\"],[layout-lg=row]>[flex=\\\"95\\\"],[layout=row]>[flex-lg=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout-lg=column]>[flex-lg=\\\"95\\\"],[layout-lg=column]>[flex=\\\"95\\\"],[layout=column]>[flex-lg=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout-lg=row]>[flex-lg=\\\"100\\\"],[layout-lg=row]>[flex=\\\"100\\\"],[layout=row]>[flex-lg=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout-lg=column]>[flex-lg=\\\"100\\\"],[layout-lg=column]>[flex=\\\"100\\\"],[layout=column]>[flex-lg=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout-lg=row]>[flex-lg=\\\"33\\\"],[layout-lg=row]>[flex=\\\"33\\\"],[layout=row]>[flex-lg=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout-lg=column]>[flex-lg=\\\"33\\\"],[layout-lg=column]>[flex=\\\"33\\\"],[layout=column]>[flex-lg=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout-lg=row]>[flex-lg=\\\"66\\\"],[layout-lg=row]>[flex=\\\"66\\\"],[layout=row]>[flex-lg=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout-lg=column]>[flex-lg=\\\"66\\\"],[layout-lg=column]>[flex=\\\"66\\\"],[layout=column]>[flex-lg=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide-lg]{display:none}}@media (min-width:1200px){[flex-offset-gt-lg=\\\"0\\\"]{margin-left:0}[flex-offset-gt-lg=\\\"5\\\"]{margin-left:5%}[flex-offset-gt-lg=\\\"10\\\"]{margin-left:10%}[flex-offset-gt-lg=\\\"15\\\"]{margin-left:15%}[flex-offset-gt-lg=\\\"20\\\"]{margin-left:20%}[flex-offset-gt-lg=\\\"25\\\"]{margin-left:25%}[flex-offset-gt-lg=\\\"30\\\"]{margin-left:30%}[flex-offset-gt-lg=\\\"35\\\"]{margin-left:35%}[flex-offset-gt-lg=\\\"40\\\"]{margin-left:40%}[flex-offset-gt-lg=\\\"45\\\"]{margin-left:45%}[flex-offset-gt-lg=\\\"50\\\"]{margin-left:50%}[flex-offset-gt-lg=\\\"55\\\"]{margin-left:55%}[flex-offset-gt-lg=\\\"60\\\"]{margin-left:60%}[flex-offset-gt-lg=\\\"65\\\"]{margin-left:65%}[flex-offset-gt-lg=\\\"70\\\"]{margin-left:70%}[flex-offset-gt-lg=\\\"75\\\"]{margin-left:75%}[flex-offset-gt-lg=\\\"80\\\"]{margin-left:80%}[flex-offset-gt-lg=\\\"85\\\"]{margin-left:85%}[flex-offset-gt-lg=\\\"90\\\"]{margin-left:90%}[flex-offset-gt-lg=\\\"95\\\"]{margin-left:95%}[flex-offset-gt-lg=\\\"33\\\"]{margin-left:33.33333%}[flex-offset-gt-lg=\\\"66\\\"]{margin-left:66.66667%}[flex-order-gt-lg=\\\"0\\\"]{-ms-flex-order:0;order:0}[flex-order-gt-lg=\\\"1\\\"]{-ms-flex-order:1;order:1}[flex-order-gt-lg=\\\"2\\\"]{-ms-flex-order:2;order:2}[flex-order-gt-lg=\\\"3\\\"]{-ms-flex-order:3;order:3}[flex-order-gt-lg=\\\"4\\\"]{-ms-flex-order:4;order:4}[flex-order-gt-lg=\\\"5\\\"]{-ms-flex-order:5;order:5}[flex-order-gt-lg=\\\"6\\\"]{-ms-flex-order:6;order:6}[flex-order-gt-lg=\\\"7\\\"]{-ms-flex-order:7;order:7}[flex-order-gt-lg=\\\"8\\\"]{-ms-flex-order:8;order:8}[flex-order-gt-lg=\\\"9\\\"]{-ms-flex-order:9;order:9}[flex-order-gt-lg=\\\"10\\\"]{-ms-flex-order:10;order:10}[flex-order-gt-lg=\\\"11\\\"]{-ms-flex-order:11;order:11}[flex-order-gt-lg=\\\"12\\\"]{-ms-flex-order:12;order:12}[flex-order-gt-lg=\\\"13\\\"]{-ms-flex-order:13;order:13}[flex-order-gt-lg=\\\"14\\\"]{-ms-flex-order:14;order:14}[flex-order-gt-lg=\\\"15\\\"]{-ms-flex-order:15;order:15}[flex-order-gt-lg=\\\"16\\\"]{-ms-flex-order:16;order:16}[flex-order-gt-lg=\\\"17\\\"]{-ms-flex-order:17;order:17}[flex-order-gt-lg=\\\"18\\\"]{-ms-flex-order:18;order:18}[flex-order-gt-lg=\\\"19\\\"]{-ms-flex-order:19;order:19}[flex-order-gt-lg=\\\"20\\\"]{-ms-flex-order:20;order:20}[layout-gt-lg]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}[layout-gt-lg]>*{box-sizing:border-box}[layout-gt-lg=column]{-ms-flex-direction:column;flex-direction:column}[layout-gt-lg=row]{-ms-flex-direction:row;flex-direction:row}[layout-align-gt-lg]{-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:stretch;align-content:stretch;-ms-flex-align:stretch;align-items:stretch}[layout-align-gt-lg^=start]{-ms-flex-pack:start;justify-content:flex-start}[layout-align-gt-lg^=center]{-ms-flex-pack:center;justify-content:center}[layout-align-gt-lg^=end]{-ms-flex-pack:end;justify-content:flex-end}[layout-align-gt-lg^=space-around]{-ms-flex-pack:distribute;justify-content:space-around}[layout-align-gt-lg^=space-between]{-ms-flex-pack:justify;justify-content:space-between}[layout-align-gt-lg$=start]{-ms-flex-align:start;align-items:flex-start;-ms-flex-line-pack:start;align-content:flex-start}[layout-align-gt-lg$=center]{-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;max-width:100%}[layout-align-gt-lg$=center]>*{max-width:100%}[layout-align-gt-lg$=end]{-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}[layout-align-gt-lg=center],[layout-align-gt-lg=end],[layout-align-gt-lg=space-around],[layout-align-gt-lg=space-between],[layout-align-gt-lg=start]{-ms-flex-align:stretch;align-items:stretch;-ms-flex-line-pack:stretch;align-content:stretch}[flex-gt-lg]{-ms-flex:1;flex:1}[flex-gt-lg-start]{margin-bottom:auto}[flex-gt-lg-end]{margin-top:auto}[flex-gt-lg-none]{-ms-flex:0 0 auto;flex:0 0 auto}[flex-gt-lg-initial]{-ms-flex:0 1 auto;flex:0 1 auto}[flex-gt-lg-noshrink]{-ms-flex:1 0 auto;flex:1 0 auto}[flex-gt-lg-auto]{-ms-flex:1 1 auto;flex:1 1 auto}[flex-gt-lg-grow]{-ms-flex:1 1 100%;flex:1 1 100%}[flex-gt-lg],[layout-gt-lg=row]>[flex-gt-lg],[layout=row]>[flex-gt-lg]{max-height:100%}[layout-gt-lg=column]>[flex-gt-lg],[layout=column]>[flex-gt-lg]{max-width:100%}[layout-gt-lg=row]>[flex-gt-lg=\\\"5\\\"],[layout-gt-lg=row]>[flex=\\\"5\\\"],[layout=row]>[flex-gt-lg=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-width:5%}[layout-gt-lg=column]>[flex-gt-lg=\\\"5\\\"],[layout-gt-lg=column]>[flex=\\\"5\\\"],[layout=column]>[flex-gt-lg=\\\"5\\\"]{-ms-flex:1 1 5%;flex:1 1 5%;max-height:5%}[layout-gt-lg=row]>[flex-gt-lg=\\\"10\\\"],[layout-gt-lg=row]>[flex=\\\"10\\\"],[layout=row]>[flex-gt-lg=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-width:10%}[layout-gt-lg=column]>[flex-gt-lg=\\\"10\\\"],[layout-gt-lg=column]>[flex=\\\"10\\\"],[layout=column]>[flex-gt-lg=\\\"10\\\"]{-ms-flex:1 1 10%;flex:1 1 10%;max-height:10%}[layout-gt-lg=row]>[flex-gt-lg=\\\"15\\\"],[layout-gt-lg=row]>[flex=\\\"15\\\"],[layout=row]>[flex-gt-lg=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-width:15%}[layout-gt-lg=column]>[flex-gt-lg=\\\"15\\\"],[layout-gt-lg=column]>[flex=\\\"15\\\"],[layout=column]>[flex-gt-lg=\\\"15\\\"]{-ms-flex:1 1 15%;flex:1 1 15%;max-height:15%}[layout-gt-lg=row]>[flex-gt-lg=\\\"20\\\"],[layout-gt-lg=row]>[flex=\\\"20\\\"],[layout=row]>[flex-gt-lg=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-width:20%}[layout-gt-lg=column]>[flex-gt-lg=\\\"20\\\"],[layout-gt-lg=column]>[flex=\\\"20\\\"],[layout=column]>[flex-gt-lg=\\\"20\\\"]{-ms-flex:1 1 20%;flex:1 1 20%;max-height:20%}[layout-gt-lg=row]>[flex-gt-lg=\\\"25\\\"],[layout-gt-lg=row]>[flex=\\\"25\\\"],[layout=row]>[flex-gt-lg=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-width:25%}[layout-gt-lg=column]>[flex-gt-lg=\\\"25\\\"],[layout-gt-lg=column]>[flex=\\\"25\\\"],[layout=column]>[flex-gt-lg=\\\"25\\\"]{-ms-flex:1 1 25%;flex:1 1 25%;max-height:25%}[layout-gt-lg=row]>[flex-gt-lg=\\\"30\\\"],[layout-gt-lg=row]>[flex=\\\"30\\\"],[layout=row]>[flex-gt-lg=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-width:30%}[layout-gt-lg=column]>[flex-gt-lg=\\\"30\\\"],[layout-gt-lg=column]>[flex=\\\"30\\\"],[layout=column]>[flex-gt-lg=\\\"30\\\"]{-ms-flex:1 1 30%;flex:1 1 30%;max-height:30%}[layout-gt-lg=row]>[flex-gt-lg=\\\"35\\\"],[layout-gt-lg=row]>[flex=\\\"35\\\"],[layout=row]>[flex-gt-lg=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-width:35%}[layout-gt-lg=column]>[flex-gt-lg=\\\"35\\\"],[layout-gt-lg=column]>[flex=\\\"35\\\"],[layout=column]>[flex-gt-lg=\\\"35\\\"]{-ms-flex:1 1 35%;flex:1 1 35%;max-height:35%}[layout-gt-lg=row]>[flex-gt-lg=\\\"40\\\"],[layout-gt-lg=row]>[flex=\\\"40\\\"],[layout=row]>[flex-gt-lg=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-width:40%}[layout-gt-lg=column]>[flex-gt-lg=\\\"40\\\"],[layout-gt-lg=column]>[flex=\\\"40\\\"],[layout=column]>[flex-gt-lg=\\\"40\\\"]{-ms-flex:1 1 40%;flex:1 1 40%;max-height:40%}[layout-gt-lg=row]>[flex-gt-lg=\\\"45\\\"],[layout-gt-lg=row]>[flex=\\\"45\\\"],[layout=row]>[flex-gt-lg=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-width:45%}[layout-gt-lg=column]>[flex-gt-lg=\\\"45\\\"],[layout-gt-lg=column]>[flex=\\\"45\\\"],[layout=column]>[flex-gt-lg=\\\"45\\\"]{-ms-flex:1 1 45%;flex:1 1 45%;max-height:45%}[layout-gt-lg=row]>[flex-gt-lg=\\\"50\\\"],[layout-gt-lg=row]>[flex=\\\"50\\\"],[layout=row]>[flex-gt-lg=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-width:50%}[layout-gt-lg=column]>[flex-gt-lg=\\\"50\\\"],[layout-gt-lg=column]>[flex=\\\"50\\\"],[layout=column]>[flex-gt-lg=\\\"50\\\"]{-ms-flex:1 1 50%;flex:1 1 50%;max-height:50%}[layout-gt-lg=row]>[flex-gt-lg=\\\"55\\\"],[layout-gt-lg=row]>[flex=\\\"55\\\"],[layout=row]>[flex-gt-lg=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-width:55%}[layout-gt-lg=column]>[flex-gt-lg=\\\"55\\\"],[layout-gt-lg=column]>[flex=\\\"55\\\"],[layout=column]>[flex-gt-lg=\\\"55\\\"]{-ms-flex:1 1 55%;flex:1 1 55%;max-height:55%}[layout-gt-lg=row]>[flex-gt-lg=\\\"60\\\"],[layout-gt-lg=row]>[flex=\\\"60\\\"],[layout=row]>[flex-gt-lg=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-width:60%}[layout-gt-lg=column]>[flex-gt-lg=\\\"60\\\"],[layout-gt-lg=column]>[flex=\\\"60\\\"],[layout=column]>[flex-gt-lg=\\\"60\\\"]{-ms-flex:1 1 60%;flex:1 1 60%;max-height:60%}[layout-gt-lg=row]>[flex-gt-lg=\\\"65\\\"],[layout-gt-lg=row]>[flex=\\\"65\\\"],[layout=row]>[flex-gt-lg=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-width:65%}[layout-gt-lg=column]>[flex-gt-lg=\\\"65\\\"],[layout-gt-lg=column]>[flex=\\\"65\\\"],[layout=column]>[flex-gt-lg=\\\"65\\\"]{-ms-flex:1 1 65%;flex:1 1 65%;max-height:65%}[layout-gt-lg=row]>[flex-gt-lg=\\\"70\\\"],[layout-gt-lg=row]>[flex=\\\"70\\\"],[layout=row]>[flex-gt-lg=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-width:70%}[layout-gt-lg=column]>[flex-gt-lg=\\\"70\\\"],[layout-gt-lg=column]>[flex=\\\"70\\\"],[layout=column]>[flex-gt-lg=\\\"70\\\"]{-ms-flex:1 1 70%;flex:1 1 70%;max-height:70%}[layout-gt-lg=row]>[flex-gt-lg=\\\"75\\\"],[layout-gt-lg=row]>[flex=\\\"75\\\"],[layout=row]>[flex-gt-lg=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-width:75%}[layout-gt-lg=column]>[flex-gt-lg=\\\"75\\\"],[layout-gt-lg=column]>[flex=\\\"75\\\"],[layout=column]>[flex-gt-lg=\\\"75\\\"]{-ms-flex:1 1 75%;flex:1 1 75%;max-height:75%}[layout-gt-lg=row]>[flex-gt-lg=\\\"80\\\"],[layout-gt-lg=row]>[flex=\\\"80\\\"],[layout=row]>[flex-gt-lg=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-width:80%}[layout-gt-lg=column]>[flex-gt-lg=\\\"80\\\"],[layout-gt-lg=column]>[flex=\\\"80\\\"],[layout=column]>[flex-gt-lg=\\\"80\\\"]{-ms-flex:1 1 80%;flex:1 1 80%;max-height:80%}[layout-gt-lg=row]>[flex-gt-lg=\\\"85\\\"],[layout-gt-lg=row]>[flex=\\\"85\\\"],[layout=row]>[flex-gt-lg=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-width:85%}[layout-gt-lg=column]>[flex-gt-lg=\\\"85\\\"],[layout-gt-lg=column]>[flex=\\\"85\\\"],[layout=column]>[flex-gt-lg=\\\"85\\\"]{-ms-flex:1 1 85%;flex:1 1 85%;max-height:85%}[layout-gt-lg=row]>[flex-gt-lg=\\\"90\\\"],[layout-gt-lg=row]>[flex=\\\"90\\\"],[layout=row]>[flex-gt-lg=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-width:90%}[layout-gt-lg=column]>[flex-gt-lg=\\\"90\\\"],[layout-gt-lg=column]>[flex=\\\"90\\\"],[layout=column]>[flex-gt-lg=\\\"90\\\"]{-ms-flex:1 1 90%;flex:1 1 90%;max-height:90%}[layout-gt-lg=row]>[flex-gt-lg=\\\"95\\\"],[layout-gt-lg=row]>[flex=\\\"95\\\"],[layout=row]>[flex-gt-lg=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-width:95%}[layout-gt-lg=column]>[flex-gt-lg=\\\"95\\\"],[layout-gt-lg=column]>[flex=\\\"95\\\"],[layout=column]>[flex-gt-lg=\\\"95\\\"]{-ms-flex:1 1 95%;flex:1 1 95%;max-height:95%}[layout-gt-lg=row]>[flex-gt-lg=\\\"100\\\"],[layout-gt-lg=row]>[flex=\\\"100\\\"],[layout=row]>[flex-gt-lg=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%}[layout-gt-lg=column]>[flex-gt-lg=\\\"100\\\"],[layout-gt-lg=column]>[flex=\\\"100\\\"],[layout=column]>[flex-gt-lg=\\\"100\\\"]{-ms-flex:1 1 100%;flex:1 1 100%;max-height:100%}[layout-gt-lg=row]>[flex-gt-lg=\\\"33\\\"],[layout-gt-lg=row]>[flex=\\\"33\\\"],[layout=row]>[flex-gt-lg=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}[layout-gt-lg=column]>[flex-gt-lg=\\\"33\\\"],[layout-gt-lg=column]>[flex=\\\"33\\\"],[layout=column]>[flex-gt-lg=\\\"33\\\"]{-ms-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}[layout-gt-lg=row]>[flex-gt-lg=\\\"66\\\"],[layout-gt-lg=row]>[flex=\\\"66\\\"],[layout=row]>[flex-gt-lg=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}[layout-gt-lg=column]>[flex-gt-lg=\\\"66\\\"],[layout-gt-lg=column]>[flex=\\\"66\\\"],[layout=column]>[flex-gt-lg=\\\"66\\\"]{-ms-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}[hide-gt-lg]{display:none}}[layout-padding]>[flex-sm]{padding:.25em}[layout-padding],[layout-padding]>[flex-gt-sm],[layout-padding]>[flex-md],[layout-padding]>[flex]{padding:.5em}[layout-padding]>[flex-gt-md],[layout-padding]>[flex-lg]{padding:1em}[layout-margin]>[flex-sm]{margin:.25em}[layout-margin],[layout-margin]>[flex-gt-sm],[layout-margin]>[flex-md],[layout-margin]>[flex]{margin:.5em}[layout-margin]>[flex-gt-md],[layout-margin]>[flex-lg]{margin:1em}[layout-nowrap]{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.button.outline{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;margin-top:1em;border-radius:.1em;font-size:1em;cursor:pointer;line-height:1;text-transform:uppercase;transition:all .5s ease;font-family:Merriweather Sans,verdana;background-color:transparent;color:#f4f1f2;border:1px solid #f4f1f2}.button.outline:hover{background-color:#f4f1f2;color:#f04}.button.reverse{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;margin-top:1em;border-radius:.1em;font-size:1em;cursor:pointer;line-height:1;text-transform:uppercase;transition:all .5s ease;font-family:Merriweather Sans,verdana;background-color:transparent;color:#f04;border:1px solid #f04}.button.reverse:hover{color:#f4f1f2;background-color:#f04}.stripe.fluid{padding:0}.stripe.fluid>*{width:100%}.stripe.medium{padding:2em 0;width:100%;padding-top:4em;padding-bottom:4em}.stripe.medium>*{margin-left:auto;margin-right:auto}@media screen and (max-width:600px){.stripe.medium>*{padding-left:5%;padding-right:5%}}@media screen and (min-width:600px){.stripe.medium>*{width:493.33333333px}}@media screen and (min-width:960px){.stripe.medium>*{width:800px}}@media screen and (min-width:1200px){.stripe.medium>*{width:880px}}.stripe.small{padding:2em 0;width:100%;padding-top:4em;padding-bottom:4em}.stripe.small>*{margin-left:auto;margin-right:auto}@media screen and (max-width:600px){.stripe.small>*{padding-left:5%;padding-right:5%}}@media screen and (min-width:600px){.stripe.small>*{width:386.66666667px}}@media screen and (min-width:960px){.stripe.small>*{width:640px}}@media screen and (min-width:1200px){.stripe.small>*{width:560px}}::-webkit-scrollbar{width:.5em}::-webkit-scrollbar-thumb{background:rgba(56,46,49,.5)}::-webkit-scrollbar-track{background:rgba(244,241,242,.5)}code,pre{font-family:Cousine,monospace}code{color:#f04}body,html{scroll-behavior:smooth;background-color:#f4f1f2;min-width:320px;font-family:Merriweather Sans,verdana;font-weight:300;font-size:16px;line-height:1.5em;color:#382e31;margin:0;padding:0}app,body,html{height:100%;width:100%}table{margin:1em 0 2em;border-spacing:0;width:100%}table th,table thead{background:#e8e3e4}table th{font-family:Merriweather Sans,verdana,sans-serif;font-weight:400;text-align:left;vertical-align:top}table tr td,table tr th{vertical-align:top;padding:.75em .75em .25em .5em;border-bottom:1px solid #ddd5d7}h1,h2,h3,h4,h5,h6{margin:0;margin:1em 0;line-height:1.25em;text-transform:none;font-family:Merriweather Sans,sans-serif;font-weight:400}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{text-decoration:none}h1,h2,h3,h4{position:relative}h1 a,h2 a,h3 a,h4 a{position:absolute;left:-1em;width:calc(100% + 1em);opacity:0;transition:all .33s ease}h1:hover a,h2:hover a,h3:hover a,h4:hover a{opacity:1}h1{font-size:2.5em;margin:0;padding-top:1.5em;text-transform:uppercase}h2{font-size:1.5em;color:#f04}h3,h3 a{font-size:1.15em;color:#f04}h4{font-size:1rem;color:#f04}hr{border:none;width:100%;height:.1rem;background-color:#baabaf}hr,p{margin:1em 0}p{padding:0;line-height:1.5em;word-wrap:break-word}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{position:relative;transition:all .5s ease;text-decoration:none;cursor:pointer;outline:0}a,a:hover{color:#f04}a img{border:none;outline:none}a p,a span{cursor:pointer}img{max-width:100%;height:auto}ul{list-style:square}ol,ul{padding:0 0 0 1em;margin-bottom:0}ol{list-style-type:decimal}ol ol{list-style-type:lower-alpha}b,strong{font-weight:700;font-family:Merriweather Sans,verdana,sans-serif}fieldset{margin:0;padding:0;border:0}input[type=submit]{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;margin-top:1em;border-radius:.1em;font-size:1em;cursor:pointer;line-height:1;text-transform:uppercase;transition:all .5s ease;font-family:Merriweather Sans,verdana;background-color:transparent;color:#f04;border:1px solid #f04;margin:0}input[type=submit]:hover{color:#f4f1f2;background-color:#f04}*{box-sizing:border-box}.logo img{border:1px solid #f4f1f2;border-radius:2px}.logo a{color:#f4f1f2;padding-left:.5em}menu{position:fixed;margin:0;margin-left:10em;padding:0;background:rgba(56,46,49,.5);z-index:200;transition:all .33s ease;overflow-y:auto;max-height:100%}@media screen and (max-width:600px){menu{display:none}}menu b{color:#f04}menu a{font-size:.8em;color:#f4f1f2;display:block;padding:.25em .5em}menu a:hover{color:#f04;background:#f4f1f2}menu input{width:100%;padding:.25em .5em}header{background:#f04;color:#f4f1f2;padding:2em 0}@media screen and (max-width:600px){header{padding:2em 0;width:100%;padding-top:4em;padding-bottom:4em;text-align:center}header>*{margin-left:auto;margin-right:auto}}@media screen and (max-width:600px) and screen and (max-width:600px){header>*{padding-left:5%;padding-right:5%}}@media screen and (max-width:600px) and screen and (min-width:600px){header>*{width:493.33333333px}}@media screen and (max-width:600px) and screen and (min-width:960px){header>*{width:800px}}@media screen and (max-width:600px) and screen and (min-width:1200px){header>*{width:880px}}@media screen and (min-width:600px){header{position:fixed;width:10em;left:0;top:0;height:100%;box-shadow:inset -.125em 0 rgba(56,46,49,.5)}}header p{color:#382e31;background:#f4f1f2;box-shadow:inset -.125em 0 rgba(56,46,49,.5);padding:1em}header nav{padding-top:1em}header nav a{display:block;color:#f4f1f2;padding:1em;text-transform:uppercase}header nav a.active,header nav a:hover{background:#f4f1f2;color:#f04;box-shadow:inset -.125em 0 #f04}.top{transition:all 1s ease;opacity:0;border-radius:100%;position:fixed;background:rgba(56,46,49,.5);color:#f4f1f2;font-size:5em;left:calc(50% - .5em);bottom:-.5em;padding-top:.4em;height:1em;width:1em;z-index:200;text-align:center;vertical-align:bottom;box-shadow:0 0 .1em rgba(244,241,242,.5)}@media screen and (min-width:600px){.top{display:none}}.top.active{opacity:1}main{padding:2em 0;width:100%;background-color:#f4f1f2;color:#382e31;padding-top:4em;padding-bottom:4em}main>*{margin-left:auto;margin-right:auto}@media screen and (max-width:600px){main>*{padding-left:5%;padding-right:5%}}@media screen and (min-width:600px){main>*{width:440px}}@media screen and (min-width:960px){main>*{width:720px}}@media screen and (min-width:1200px){main>*{width:720px}}@media screen and (min-width:600px){main{width:calc(100% - 10em);margin-left:10em}}main a{border-bottom:1px dashed #f04}main a:hover{border-bottom:1px solid #f04}main h1 a,main h1 a:hover,main h2 a,main h2 a:hover,main h3 a,main h3 a:hover,main h4 a,main h4 a:hover,main h5 a,main h5 a:hover,main h6 a,main h6 a:hover{border-bottom:none}footer{padding:2em 0;width:100%;background-color:#382e31;padding-top:4em;padding-bottom:4em;color:#f4f1f2}footer>*{margin-left:auto;margin-right:auto}@media screen and (max-width:600px){footer>*{padding-left:5%;padding-right:5%}}@media screen and (min-width:600px){footer>*{width:440px}}@media screen and (min-width:960px){footer>*{width:720px}}@media screen and (min-width:1200px){footer>*{width:720px}}@media screen and (min-width:600px){footer{width:calc(100% - 10em);margin-left:10em}}article{padding:.5em}.github-corner{position:absolute;top:0;right:0}code[class*=language]{padding:0 .5em}pre[class*=language]{border-left-width:0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/postcss-loader!./~/less-loader!./less/main.less\n// module id = 17\n// module chunks = 0","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/css-loader/lib/css-base.js","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/style-loader/addStyles.js\n// module id = 19\n// module chunks = 0","riot.tag2('app', '<a href=\"https://github.com/MartinMuzatko/riot-cheatsheet\" class=\"github-corner\"><svg width=\"80\" height=\"80\" viewbox=\"0 0 250 250\" style=\"fill:#fff; color:#151513; position: absolute; top: 0; border: 0; right: 0;\"><path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"></path><path d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\" fill=\"currentColor\" style=\"transform-origin: 130px 106px;\" class=\"octo-arm\"></path><path d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\" fill=\"currentColor\" class=\"octo-body\"></path></svg></a> <header id=\"head\" layout=\"column\" layout-align=\"start\"> <div class=\"logo\" layout=\"row\" layout-align=\"space-around center\"> <a href=\"http://riotjs.com\"><img src=\"http://riotjs.com/img/logo/riot60x.png\" alt=\"RiotJS\"></a> <a href=\"http://riotjs.com/release-notes/\">{version}</a> </div> <p>Love this cheatsheet? <iframe style=\"vertical-align:middle\" src=\"https://ghbtns.com/github-btn.html?user=MartinMuzatko&repo=riot-cheatsheet&type=star&count=true\" frameborder=\"0\" scrolling=\"0\" width=\"90px\" height=\"20px\"></iframe> </p> <nav flex-auto layout=\"column\"> <a onclick=\"{toggleItem}\" href=\"#cheatsheet-{doc}\" class=\"{active: name == doc}\" each=\"{doc in docs}\">{doc}</a> <a flex-end href=\"#credits\">credits</a> </nav> </header> <menu> <input placeholder=\"find topic...\" onfocus=\"{filterShortcuts}\" oninput=\"{filterShortcuts}\" type=\"text\" name=\"filter\"> <a onclick=\"{resetShortcuts}\" if=\"{shortcut.active}\" each=\"{shortcut in shortcuts}\" href=\"#{shortcut.id}\"> <highlight find=\"{filter.value}\">{shortcut.name}</highlight> </a> </menu> <a onclick=\"{removeClass}\" href=\"#head\" name=\"top\" class=\"top\"> ̑ </a> <main name=\"main\"> <div> <article id=\"cheatsheet-{doc}\" each=\"{doc in docs}\"> <markdown file=\"{doc}\"></markdown> </article> </div> </main> <footer id=\"credits\"> <div> <p> Created with <span style=\"color: red\">♥</span> by <a href=\"https://twitter.com/martinmuzatko\">@MartinMuzatko</a> </p> <p> Learn how to use Riot in the real world. Visit <a href=\"http://happy-css.com\">happy-css.com</a> </p> </div> </footer>', '.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}', '', function(opts) {\n this.shortcuts = []\n\n this.docs = [\n 'templating',\n 'tag',\n 'riot',\n 'mixin',\n 'observable',\n 'router',\n ]\n\n this.name = this.docs[0]\n\n this.version = riot.version\n\n this.filterShortcuts = function(e) {\n var value = this.filter.value.toUpperCase().replace(/\\s$/g, '')\n this.shortcuts.map(shortcut => {\n var name = shortcut.name.toUpperCase()\n shortcut.active = false\n if (value == '') {\n return\n }\n if (value == '*') {\n shortcut.active = true\n return\n }\n if (!!~name.indexOf(value)) {\n shortcut.active = true\n }\n if (value.split(' ').length > 1) {\n var values = value.split(' ')\n for (var val in values) {\n if (!!~name.indexOf(values[val])) {\n shortcut.active = true\n }\n }\n }\n if (shortcut.group) {\n var levelNames = this.getGroupNames(shortcut)\n levelNames.map(level => {\n shortcut.active = !!~level.indexOf(value) ? true : shortcut.active\n })\n }\n })\n }.bind(this)\n\n this.removeClass = function() {\n this.top.classList.remove('active')\n }.bind(this)\n\n this.toggleItem = function(e) {\n this.name = e.item.doc\n }.bind(this)\n\n this.resetShortcuts = () => {\n this.shortcuts.map(shortcut => {shortcut.active = false})\n }\n\n this.getGroupNames = (node, result = []) => {\n if (node.group) {\n result.push(node.group.name.toUpperCase())\n return this.getGroupNames(node.group, result)\n } else {\n return result\n }\n }\n\n this.getGroupLevel = (node, level) => {\n if (!node) {\n return node\n }\n if (node.group && node.level != level) {\n return this.getGroupLevel(node.group, level)\n } else {\n return node\n }\n }\n\n this.on('mount', () => {\n\n document.body.addEventListener('keydown', (event) => {\n if (event.code == 'Escape') {\n if (document.activeElement == this.filter) {\n this.filter.blur()\n this.resetShortcuts()\n this.update()\n } else {\n this.filter.focus()\n }\n }\n })\n\n new Waypoint({\n element: this.main,\n handler: (event) => {\n if (event == 'down') {\n this.top.classList.add('active')\n }\n }\n })\n\n for (var doc in this.docs) {\n doc = this.docs[doc]\n new Waypoint({\n element: this['cheatsheet-'+doc],\n riot: this,\n doc: doc,\n handler: function() {\n this.options.riot.name = this.options.doc\n this.options.riot.update()\n }\n })\n }\n\n this.tags.markdown[this.tags.markdown.length-1].on('mount', () => {\n this.shortcuts = []\n var shortcuts = document.querySelectorAll('h1,h2,h3')\n var level = 1\n var currentNode = 1\n var group = undefined\n for (var i = 0; i < shortcuts.length; i++) {\n\n var shortcut = shortcuts[i]\n var previousShortcut = this.shortcuts[i-1]\n var levelBefore = level\n var id = shortcut.id\n level = shortcut.tagName.replace(/\\w/, '') | 0\n\n var highestGroup = this.getGroupLevel(previousShortcut, 1)\n if (highestGroup && level>1) {\n id = `${highestGroup.id}-${shortcut.id}`\n }\n shortcut.id = id\n\n shortcut.innerHTML = `<a href=\"#${id}\">#</a>` + shortcut.innerHTML\n\n // Generate group hirarchy based on heading level\n if (this.shortcuts.length) {\n group = this.getGroupLevel(this.shortcuts[currentNode-1], level-1)\n }\n if (level > levelBefore) {\n // Recursively build group\n group = previousShortcut\n currentNode = i\n }\n this.shortcuts.push({\n id: id,\n name: shortcut.innerText.replace(/#/g, ''),\n active: false,\n level: level,\n group: group\n })\n }\n this.update()\n })\n })\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/tags/app.html","riot.tag2('markdown', '<div name=\"content\"></div>', '', '', function(opts) {\n this.on('mount', () => {\n this.content.outerHTML = require(`../../docs/${opts.file}.md`)\n })\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/tags/markdown.html","var map = {\n\t\"./mixin.md\": 23,\n\t\"./observable.md\": 24,\n\t\"./riot.md\": 25,\n\t\"./router.md\": 26,\n\t\"./tag.md\": 27,\n\t\"./templating.md\": 28\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 22;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs ^\\.\\/.*\\.md$\n// module id = 22\n// module chunks = 0","module.exports = \"<h1 id=\\\"mixins\\\">Mixins</h1>\\n<h2 id=\\\"mixin-anatomy\\\">Mixin anatomy</h2>\\n<p>A mixin can be a <code>function</code>, <code>object</code> or <code>class</code>\\nMixins have, after initializing them, access to your tag</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >var</span> authService <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >{</span>\\n init<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Called upon initializing the mixin</span>\\n <span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >,</span>\\n login<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >(</span>user<span class=\\\"token punctuation\\\" >,</span> pass<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span><span class=\\\"token comment\\\" spellcheck=\\\"true\\\">//...}</span>\\n<span class=\\\"token punctuation\\\" >}</span></code></pre><h2 id=\\\"initializing\\\">Initializing</h2>\\n<h3 id=\\\"inline-usage\\\">Inline Usage</h3>\\n<p>For global objects or dynamic mixins within the tag</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mixin</span><span class=\\\"token punctuation\\\" >(</span>authService<span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"shared-mixin\\\">Shared Mixin</h3>\\n<p>Share your mixin across tags</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// In global scope</span>\\nriot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mixin</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'auth-service'</span><span class=\\\"token punctuation\\\" >,</span> authService<span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// In your tag</span>\\n<span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mixin</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'auth-service'</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"global-mixin\\\">Global Mixin</h3>\\n<p>Add mixin to every mounted tag</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// In global scope BEFORE mounting</span>\\nriot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mixin</span><span class=\\\"token punctuation\\\" >(</span>authService<span class=\\\"token punctuation\\\" >)</span></code></pre>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/mixin.md\n// module id = 23\n// module chunks = 0","module.exports = \"<h1 id=\\\"observable\\\">Observable</h1>\\n<p>Great to create tag-based API\\nFor use outside tags, see <a href=\\\"#riot-observable\\\"></a></p>\\n<h2 id=\\\"trigger\\\">Trigger</h2>\\n<p>Trigger custom events similar <code>update</code></p>\\n<h3 id=\\\"simple-trigger\\\">Simple trigger</h3>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >trigger</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'selected'</span><span class=\\\"token punctuation\\\" >,</span> items<span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"trigger-with-data\\\">Trigger with data</h3>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >trigger</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'selected'</span><span class=\\\"token punctuation\\\" >,</span> items<span class=\\\"token punctuation\\\" >)</span></code></pre><h2 id=\\\"listening-to-triggers\\\">Listening to triggers</h2>\\n<p>From inside the tag or parent/child tag\\nYou can use them for <a href=\\\"#tag-lifecycle-events\\\">lifecycle events</a> too.</p>\\n<h3 id=\\\"always-listen\\\">Always listen</h3>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'selected'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span>items<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Do something with the selected items</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"listen-once\\\">Listen once</h3>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >one</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'selected'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span>items<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Do something with the selected items</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"stop-listening\\\">Stop listening</h3>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >off</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'selected'</span><span class=\\\"token punctuation\\\" >)</span></code></pre>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/observable.md\n// module id = 24\n// module chunks = 0","module.exports = \"<h1 id=\\\"riot\\\">Riot</h1>\\n<h2 id=\\\"mount\\\">mount</h2>\\n<p>Mounting a tag will make it appear on your webpage/app\\nThere are various ways to mount your tags</p>\\n<h3 id=\\\"all\\\">All</h3>\\n<p>This will mount all tags and their children tags</p>\\n<p><strong>Notice:</strong> This will not mount dynamically loaded tags such as with a router</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mount</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'*'</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"specific-with-options\\\">Specific with options</h3>\\n<p>When mounting a tag, you can pass options, accessible as <code>opts</code></p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>list<span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>list<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >var</span> items <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >[</span>\\n <span class=\\\"token string\\\" >'fork'</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token string\\\" >'star'</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token string\\\" >'contribute'</span>\\n <span class=\\\"token punctuation\\\" >]</span>\\n riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mount</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'todo-list'</span><span class=\\\"token punctuation\\\" >,</span> items<span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"data-attribute\\\">Data attribute</h3>\\n<p><strong>Notice:</strong> This feature is supported in <strong>Riot 2.3.17</strong> or later\\nWith a <code>data</code> attribute, you can mount a tag into an element</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>ul data<span class=\\\"token operator\\\" >-</span>is<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"todo-list\\\"</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>ul<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// You can mount all or with data too here</span>\\n riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mount</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'todo-list'</span><span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"mount-to-dom-node\\\">Mount to DOM node</h3>\\n<p>You can also use a DOM node to mount your tag</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>main name<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"content\\\"</span><span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// At maximum, riot.mount takes three arguments</span>\\n riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mount</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>content<span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token string\\\" >'todo-list'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >{</span>items<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >[</span><span class=\\\"token string\\\" >'be nice'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token string\\\" >'share your knowledge'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token string\\\" >'give feedback'</span><span class=\\\"token punctuation\\\" >]</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h2 id=\\\"observable\\\">observable</h2>\\n<p>Turns a non-riot object/class into an observable, being capable of triggering and listening to events\\nThis will add <code>trigger</code>, <code>on</code>, <code>one</code> and <code>off</code> to the provided object\\nSee <a href=\\\"#observable\\\">Observable</a> for all methods</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >class</span> <span class=\\\"token class-name\\\" >AuthService</span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token function\\\" >constructor</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token punctuation\\\" >{</span>\\n riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >observable</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >)</span>\\n <span class=\\\"token punctuation\\\" >}</span>\\n<span class=\\\"token punctuation\\\" >}</span></code></pre>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/riot.md\n// module id = 25\n// module chunks = 0","module.exports = \"<h1 id=\\\"router\\\">Router</h1>\\n<p>The router takes care of the history <code>pushState</code></p>\\n<p>Depending on route, you can mount different tags, update data and so on.</p>\\n<h2 id=\\\"minimal-setup\\\">Minimal setup</h2>\\n<h3 id=\\\"setup\\\">Setup</h3>\\n<p>The function works with any amount of parameters</p>\\n<p><strong>Recommendation:</strong> Put your routing setup within <code>this.on('mount', () => {})</code> in your main tag, that controls everything (e.g. <code>app.html</code>)</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>main name<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"content\\\"</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>main<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\nriot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >route</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >(</span>collection<span class=\\\"token punctuation\\\" >,</span> action<span class=\\\"token punctuation\\\" >,</span> id<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Mount another tag, or do something with the data</span>\\n riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mount</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>content<span class=\\\"token punctuation\\\" >,</span> collection<span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >{</span>view<span class=\\\"token punctuation\\\" >:</span> action<span class=\\\"token punctuation\\\" >,</span> id<span class=\\\"token punctuation\\\" >:</span> id<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"go-to-route\\\">Go to Route</h3>\\n<p>This will call the route method defined above\\nWhere <code>customer</code> is <code>collection</code>, <code>edit</code> is <code>action</code> and <code>289</code> is <code>id</code></p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >route</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'customer/edit/289'</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"start-listening\\\">Start listening</h3>\\n<p>This starts the router, and examines the hash that is already in place\\n<strong>Notice:</strong> This feature is supported in <strong>Riot 2.3</strong> or later</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span>route<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >start</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token boolean\\\" >true</span><span class=\\\"token punctuation\\\" >)</span></code></pre><p>In earlier versions of riot, this was done with</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span>route<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >start</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span>\\nriot<span class=\\\"token punctuation\\\" >.</span>route<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >exec</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span></code></pre><p>You can also separately set them up, if you like to</p>\\n<h2 id=\\\"advanced-setup\\\">Advanced setup</h2>\\n<p>In the advanced setup, you can set up a function per route call and you are more flexible with wildcard support</p>\\n<p><strong>Notice:</strong> These features are only supported on <strong>Riot 2.3</strong> or later</p>\\n<h3 id=\\\"route-without-wildcard\\\">Route without wildcard</h3>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >route</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'/index'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"route-with-wildcard\\\">Route with wildcard</h3>\\n<p>Regex for wildcards:</p>\\n<p>* <code>([^/?#]+?)</code></p>\\n<p>.. <code>.*</code></p>\\n<p>This route will catch everything that is a subroute of <code>blog</code></p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >route</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'/blog/*'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span>entry<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><p>You can setup more distinct variables, other than splitting <code>/</code></p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >route</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'/blog/*-*/*'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span>month<span class=\\\"token punctuation\\\" >,</span> year<span class=\\\"token punctuation\\\" >,</span> entry<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// route might look like /blog/06-2012/give-me-lasagna</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><p>Everything after a keyword</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\">riot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >route</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'/old..'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Sorry, this page has been removed</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h2 id=\\\"subroutes\\\">Subroutes</h2>\\n<p>Subroutes overwrite existing routes, based on context</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >var</span> subRoute <span class=\\\"token operator\\\" >=</span> riot<span class=\\\"token punctuation\\\" >.</span>route<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >create</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span>\\n<span class=\\\"token function\\\" >subRoute</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'/blog/tags'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Instead of looking for a post named tags</span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// List all tags used in posts</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/router.md\n// module id = 26\n// module chunks = 0","module.exports = \"<h1 id=\\\"tag\\\">Tag</h1>\\n<h2 id=\\\"lifecycle-events\\\">Lifecycle events</h2>\\n<h3 id=\\\"before-mount\\\">before-mount</h3>\\n<p>Before the tag is mounted</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'before-mount'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"mount\\\">mount</h3>\\n<p>After all expressions are evaluated on mount</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'mount'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"update\\\">update</h3>\\n<p>Allows recalculation of data before updating</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'update'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"updated\\\">updated</h3>\\n<p>After updates</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'updated'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"before-unmount\\\">before-unmount</h3>\\n<p>Before the tag is removed</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'before-unmount'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"unmount\\\">unmount</h3>\\n<p>After the tag is removed</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'unmount'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"all-events\\\">all events</h3>\\n<p>Listen to all events\\nYou can fetch the event name if desired</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >on</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'*'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token punctuation\\\" >(</span>eventName<span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >=</span><span class=\\\"token operator\\\" >></span> <span class=\\\"token punctuation\\\" >{</span>\\n<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h2 id=\\\"tag-methods-properties\\\">Tag Methods & Properties</h2>\\n<h3 id=\\\"on-one-off-trigger\\\">on, one, off, trigger</h3>\\n<p>A riot tag already implements a <code>riot.observable</code>\\nSee <a href=\\\"#observable\\\">observable</a></p>\\n<h3 id=\\\"update\\\">Update</h3>\\n<p>Shortcut for <a href=\\\"#observable-trigger\\\">trigger</a> <code>this.trigger('update')</code></p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >update</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span></code></pre><h3 id=\\\"ismounted\\\">isMounted</h3>\\n<p>Attribute to tell whether or not the tag is mounted</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>isMounted</code></pre><h3 id=\\\"root\\\">root</h3>\\n<p>Points to it's own tag element</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>root <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// reference to riot tag</span></code></pre><h3 id=\\\"opts\\\">opts</h3>\\n<p>Options passed via HTML or on mount, See <a href=\\\"#templating-options\\\">options</a></p>\\n<h3 id=\\\"mixin\\\">mixin</h3>\\n<p>See <a href=\\\"#mixins\\\">Mixins</a></p>\\n<h3 id=\\\"tags\\\">tags</h3>\\n<p>See <a href=\\\"#templating-child-tags\\\">Child tags</a></p>\\n<h3 id=\\\"parent\\\">parent</h3>\\n<p>Access the parent tag, if there is one</p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>parent <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// <Tag></span></code></pre>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/tag.md\n// module id = 27\n// module chunks = 0","module.exports = \"<h1 id=\\\"templating\\\">Templating</h1>\\n<h2 id=\\\"anatomy\\\">Anatomy</h2>\\n<p>Everything is a component, Riot refers to them as tags\\nTags have to be <a href=\\\"#riot-mount\\\">mounted</a></p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>example<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>b<span class=\\\"token operator\\\" >></span>Markup<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>b<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Script</span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>example<span class=\\\"token operator\\\" >></span></code></pre><h2 id=\\\"expressions\\\">Expressions</h2>\\n<h3 id=\\\"pure-javascript\\\">Pure JavaScript</h3>\\n<p>Can contain any javascript except curly brackets</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\">Random number<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >{</span>Math<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >random</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span> <span class=\\\"token operator\\\" >*</span> <span class=\\\"token number\\\" >10</span><span class=\\\"token punctuation\\\" >}</span>\\n<span class=\\\"token operator\\\" >&</span>copy<span class=\\\"token punctuation\\\" >;</span> <span class=\\\"token operator\\\" ><</span>time datetime<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span><span class=\\\"token keyword\\\" >new</span> <span class=\\\"token class-name\\\" >Date</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span><span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >getFullYear</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token punctuation\\\" >)</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>time<span class=\\\"token operator\\\" >></span>\\nHow long is a day <span class=\\\"token keyword\\\" >in</span> seconds<span class=\\\"token operator\\\" >?</span> <span class=\\\"token punctuation\\\" >{</span><span class=\\\"token number\\\" >60</span><span class=\\\"token operator\\\" >*</span><span class=\\\"token number\\\" >60</span><span class=\\\"token operator\\\" >*</span><span class=\\\"token number\\\" >24</span><span class=\\\"token punctuation\\\" >}</span></code></pre><h3 id=\\\"accessing-tag-properties\\\">Accessing tag properties</h3>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\">My name is <span class=\\\"token punctuation\\\" >{</span>author<span class=\\\"token punctuation\\\" >.</span>name<span class=\\\"token punctuation\\\" >}</span>\\nand I'm <span class=\\\"token punctuation\\\" >{</span>author<span class=\\\"token punctuation\\\" >.</span>age<span class=\\\"token punctuation\\\" >}</span> <span class=\\\"token punctuation\\\" >{</span>unit<span class=\\\"token punctuation\\\" >}</span>s old\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>author <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >{</span>\\n name<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token string\\\" >'Martin'</span><span class=\\\"token punctuation\\\" >,</span>\\n age<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token number\\\" >25</span>\\n <span class=\\\"token punctuation\\\" >}</span>\\n<span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>unit <span class=\\\"token operator\\\" >=</span> <span class=\\\"token string\\\" >'year'</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h2 id=\\\"foreach-loop-data\\\">Foreach - loop data</h2>\\n<h3 id=\\\"array\\\">Array</h3>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>nav<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>a href<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"#{doc}\\\"</span> each<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>doc <span class=\\\"token keyword\\\" >in</span> docs<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token punctuation\\\" >{</span>doc<span class=\\\"token punctuation\\\" >}</span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>a<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>nav<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>docs <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >[</span>\\n <span class=\\\"token string\\\" >'templating'</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token string\\\" >'tag'</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token string\\\" >'mixin'</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token string\\\" >'observable'</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token string\\\" >'router'</span>\\n <span class=\\\"token punctuation\\\" >]</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><p>You can access both index and value by providing a second argument</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>nav<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>a href<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"#{doc}\\\"</span> each<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>doc<span class=\\\"token punctuation\\\" >,</span> index <span class=\\\"token keyword\\\" >in</span> docs<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token punctuation\\\" >{</span>index <span class=\\\"token operator\\\" >+</span> <span class=\\\"token number\\\" >1</span><span class=\\\"token punctuation\\\" >}</span> <span class=\\\"token operator\\\" >-</span> <span class=\\\"token punctuation\\\" >{</span>doc<span class=\\\"token punctuation\\\" >}</span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>a<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>nav<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"object\\\">Object</h3>\\n<p>Used for more complex structures, where each item has a distinct key</p>\\n<p>Objects use different order of <code>key, value</code> in the each statement</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>card size<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>card<span class=\\\"token punctuation\\\" >.</span>size<span class=\\\"token punctuation\\\" >}</span> name<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>title<span class=\\\"token punctuation\\\" >}</span>\\n each<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>title<span class=\\\"token punctuation\\\" >,</span> card <span class=\\\"token keyword\\\" >in</span> cards<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>card<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>cards <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >{</span>\\n analytics <span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >{</span>\\n size<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token number\\\" >1</span><span class=\\\"token punctuation\\\" >,</span>\\n toolbar<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >[</span><span class=\\\"token string\\\" >'reset'</span><span class=\\\"token punctuation\\\" >]</span>\\n <span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >,</span>\\n posts<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >{</span>\\n size<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token number\\\" >2</span><span class=\\\"token punctuation\\\" >,</span>\\n toolbar<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token punctuation\\\" >[</span><span class=\\\"token string\\\" >'add'</span><span class=\\\"token punctuation\\\" >,</span> <span class=\\\"token string\\\" >'list'</span><span class=\\\"token punctuation\\\" >]</span>\\n <span class=\\\"token punctuation\\\" >}</span>\\n <span class=\\\"token punctuation\\\" >}</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"virtual\\\">Virtual</h3>\\n<p>The virtual tag is used for loops that should generate no wrapper markup</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>dl<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>virtual each<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>item <span class=\\\"token keyword\\\" >in</span> items<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>dt<span class=\\\"token operator\\\" >></span><span class=\\\"token punctuation\\\" >{</span>item<span class=\\\"token punctuation\\\" >.</span>key<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>dt<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>dd<span class=\\\"token operator\\\" >></span><span class=\\\"token punctuation\\\" >{</span>item<span class=\\\"token punctuation\\\" >.</span>value<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>dd<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>virtual<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>dl<span class=\\\"token operator\\\" >></span></code></pre><h2 id=\\\"conditionals\\\">Conditionals</h2>\\n<h3 id=\\\"shorthand-ternary\\\">Shorthand ternary</h3>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>div <span class=\\\"token keyword\\\" >class</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>active<span class=\\\"token punctuation\\\" >:</span> item<span class=\\\"token punctuation\\\" >.</span>active<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>div<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"ternary\\\">Ternary</h3>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>div <span class=\\\"token keyword\\\" >class</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>item<span class=\\\"token punctuation\\\" >.</span>active <span class=\\\"token operator\\\" >?</span> <span class=\\\"token string\\\" >'active'</span> <span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token string\\\" >''</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>div<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"blocklevel\\\">Blocklevel</h3>\\n<p>Does not write HTML if condition is false</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>div <span class=\\\"token keyword\\\" >if</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>shop<span class=\\\"token punctuation\\\" >.</span>items<span class=\\\"token punctuation\\\" >.</span>length<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>div<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"hide\\\">Hide</h3>\\n<p>Writes HTML, just sets <code>display</code> style to <code>none</code> if condition is true</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>nav hide<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>mobile<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>nav<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"show\\\">Show</h3>\\n<p>Opposite of Hide <code>display</code></p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>nav show<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>mobile<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>nav<span class=\\\"token operator\\\" >></span></code></pre><h2 id=\\\"access-elements-and-tags\\\">Access elements and tags</h2>\\n<h3 id=\\\"html-elements\\\">HTML Elements</h3>\\n<p>You can also use <code>id</code> if you are not comfortable with <code>name</code></p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>input name<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"todo\\\"</span><span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>todo<span class=\\\"token punctuation\\\" >.</span>value <span class=\\\"token operator\\\" >=</span> <span class=\\\"token string\\\" >'write todolist'</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"child-tags\\\">Child tags</h3>\\n<p>Access via <code>name</code> or <code>id</code></p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>item name<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"first\\\"</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>tags<span class=\\\"token punctuation\\\" >.</span>first\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><p>If there are more instances, you get an array of tags</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>item name<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"last\\\"</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>tags<span class=\\\"token punctuation\\\" >[</span><span class=\\\"token string\\\" >'todo-item'</span><span class=\\\"token punctuation\\\" >]</span> <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Array<Tag> - 2</span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>tags<span class=\\\"token punctuation\\\" >.</span>last <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// <Tag> - 1</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h2 id=\\\"options\\\">Options</h2>\\n<p>Options can be passed via html params or on mount</p>\\n<p>Options only accept <code>boolean</code>, <code>number</code>, <code>string</code> or simple <code>array</code>, when passing values directly</p>\\n<h3 id=\\\"passing-values-directly-per-html\\\">Passing values directly per HTML</h3>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>item name<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"Finish Cheatsheet\\\"</span> done<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span><span class=\\\"token boolean\\\" >false</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// Script of todo-item</span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>opts<span class=\\\"token punctuation\\\" >.</span>name <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// 'Finish Cheatsheet'</span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>opts<span class=\\\"token punctuation\\\" >.</span>done <span class=\\\"token comment\\\" spellcheck=\\\"true\\\">// false</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"passing-variables-per-html\\\">Passing variables per HTML</h3>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>todo<span class=\\\"token operator\\\" >-</span>item item<span class=\\\"token operator\\\" >=</span><span class=\\\"token punctuation\\\" >{</span>item<span class=\\\"token punctuation\\\" >}</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>todo<span class=\\\"token operator\\\" >-</span>item<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span>script<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token keyword\\\" >this</span><span class=\\\"token punctuation\\\" >.</span>item <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >{</span>\\n name<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token string\\\" >'Study riot'</span><span class=\\\"token punctuation\\\" >,</span>\\n done<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token boolean\\\" >true</span>\\n <span class=\\\"token punctuation\\\" >}</span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>script<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"passing-values-on-mount\\\">Passing values on Mount</h3>\\n<p>On mount, we are more flexible, since we are in js\\nSee <a href=\\\"#riot-mount\\\">mount</a></p>\\n<pre class=\\\"language-js\\\"><code class=\\\"language-js\\\"><span class=\\\"token keyword\\\" >var</span> items <span class=\\\"token operator\\\" >=</span> <span class=\\\"token punctuation\\\" >[</span>\\n <span class=\\\"token punctuation\\\" >{</span>name<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token string\\\" >'Share'</span><span class=\\\"token punctuation\\\" >,</span> done<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token boolean\\\" >true</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token punctuation\\\" >{</span>name<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token string\\\" >'Star'</span><span class=\\\"token punctuation\\\" >,</span> done<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token boolean\\\" >true</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >,</span>\\n <span class=\\\"token punctuation\\\" >{</span>name<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token string\\\" >'Work'</span><span class=\\\"token punctuation\\\" >,</span> done<span class=\\\"token punctuation\\\" >:</span> <span class=\\\"token boolean\\\" >false</span><span class=\\\"token punctuation\\\" >}</span><span class=\\\"token punctuation\\\" >,</span>\\n<span class=\\\"token punctuation\\\" >]</span>\\nriot<span class=\\\"token punctuation\\\" >.</span><span class=\\\"token function\\\" >mount</span><span class=\\\"token punctuation\\\" >(</span><span class=\\\"token string\\\" >'todo-list'</span><span class=\\\"token punctuation\\\" >,</span> items<span class=\\\"token punctuation\\\" >)</span></code></pre><h2 id=\\\"yield\\\">Yield</h2>\\n<p>Yielding is like <a href=\\\"#templating-options\\\">options</a>, just that it accepts HTML and other riot tags</p>\\n<p>Definition</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>popup<span class=\\\"token operator\\\" >-</span>body<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token keyword\\\" >yield</span><span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>popup<span class=\\\"token operator\\\" >-</span>body<span class=\\\"token operator\\\" >></span></code></pre><p>Usage</p>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>popup<span class=\\\"token operator\\\" >-</span>body<span class=\\\"token operator\\\" >></span>\\n Hi<span class=\\\"token operator\\\" >!</span> I'm supporting\\n <span class=\\\"token operator\\\" ><</span>abbr title<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"Hypertext Markup Language\\\"</span><span class=\\\"token operator\\\" >></span>HTML<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>abbr<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>popup<span class=\\\"token operator\\\" >-</span>body<span class=\\\"token operator\\\" >></span></code></pre><h3 id=\\\"multiple-yieldpoints\\\">Multiple Yieldpoints</h3>\\n<p><strong>Notice:</strong> This feature is supported in <strong>Riot 2.3.12</strong> or later</p>\\n<h4 id=\\\"usage\\\">Usage</h4>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>card<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token keyword\\\" >yield</span> to<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"toolbar\\\"</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>a<span class=\\\"token operator\\\" >></span>Add post<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>a<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>a<span class=\\\"token operator\\\" >></span>Recently published<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>a<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span><span class=\\\"token keyword\\\" >yield</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token keyword\\\" >yield</span> to<span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"header\\\"</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>i <span class=\\\"token keyword\\\" >class</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"fa fa-text\\\"</span><span class=\\\"token operator\\\" >></span><span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>i<span class=\\\"token operator\\\" >></span> Posts\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span><span class=\\\"token keyword\\\" >yield</span><span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>card<span class=\\\"token operator\\\" >></span></code></pre><h4 id=\\\"definition\\\">Definition</h4>\\n<pre class=\\\"language-html\\\"><code class=\\\"language-html\\\"><span class=\\\"token operator\\\" ><</span>card<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>h2<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token keyword\\\" >yield</span> <span class=\\\"token keyword\\\" >from</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"header\\\"</span> <span class=\\\"token operator\\\" >/</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>h2<span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span>div <span class=\\\"token keyword\\\" >class</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"toolbar\\\"</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token keyword\\\" >yield</span> <span class=\\\"token keyword\\\" >from</span><span class=\\\"token operator\\\" >=</span><span class=\\\"token string\\\" >\\\"toolbar\\\"</span> <span class=\\\"token operator\\\" >/</span><span class=\\\"token operator\\\" >></span>\\n <span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>div<span class=\\\"token operator\\\" >></span>\\n<span class=\\\"token operator\\\" ><</span><span class=\\\"token operator\\\" >/</span>card<span class=\\\"token operator\\\" >></span></code></pre>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/templating.md\n// module id = 28\n// module chunks = 0","riot.tag2('highlight', '<div name=\"result\"></div> <div style=\"display: none;\" name=\"content\"> <yield> </div>', '', '', function(opts) {\n this.on('update', () => {\n\n var content = this.content.innerText\n var searchQueries = this.opts.find.toLowerCase().split(' ')\n\n for (var searchQuery in searchQueries) {\n searchQuery = searchQueries[searchQuery]\n if (!!~content.toLowerCase().indexOf(searchQuery)) {\n content = content.replace(\n\n new RegExp(`(${searchQuery})(?!\\<\\/b\\>)`, 'i'),\n '<b>$1</b>'\n )\n }\n }\n this.result.innerHTML = content\n })\n});\n\n\n\n// WEBPACK FOOTER //\n// ./js/tags/highlight.html"],"sourceRoot":""}