packages feed

toodles (empty) → 0.1.0.0

raw patch · 13 files changed

+12166/−0 lines, 13 filesdep +MissingHdep +aesondep +basesetup-changedbinary-added

Dependencies added: MissingH, aeson, base, blaze-html, bytestring, cmdargs, directory, filepath, http-types, megaparsec, regex-posix, servant, servant-blaze, servant-server, strict, text, transformers, wai, warp, yaml

Files

+ README.md view
@@ -0,0 +1,91 @@+# Toodles++[![Build Status](https://travis-ci.org/aviaviavi/toodles.svg?branch=master)](https://travis-ci.org/aviaviavi/toodles)++Toodles scrapes your entire repository for TODO entries and organizes them so+you can manage your project directly from the code. View, filter, sort, and then+edit your TODO's with an easy to use web application. When you're done, commit+and push your changes and share changes with your team!++![Toodles Screenshot](https://i.imgur.com/DEwzMYn.png)++### TODO details++Specify details about your TODO's so that you can filter and sort them with+ease! Specify details within parenthasis and separate with the `|` delimeter.++```python+# TODO(assignee|p=1|keys=vals|#tags) +```++#### Priority++The key `p=<integer>` will be interpreted as a priority number++#### KeyVals++Use arbitrary key value pairs `<key>=<value>|<key2>=<value2>|...` and design any+organization scheme you wish! A good use for this is to enter dates of deadlines+for TODO's that you can sort on in Toodles++#### Tags++A detail starting with `#`, eg `#bug|#techdebt|#database|...` will be interpreted as+a tag, which can be used to label and group your TODO's.++#### Assign++Assign your TODO's to someone. Any plain word that will be interpreted as an assignee.++```python+# TODO(bob) - something we need to do later+```++### Per Project Configuration++You can configure toodles by putting a `.toodles.yaml` file in the root of your+project. See this repo's `.toodles.yaml` for the full configuration spec.++Currently via config you can:++- Set files to ignore via a list of regular expressions++### Scanned Languages++Submit a PR if you'd like a language to be added. There will eventually be+support for this to be user configurable++- C/C+++- Elixir+- Erlang+- Go+- Haskell+- Java+- Javascript+- Objective-C+- Protobuf+- Python+- Ruby+- Rust+- Scala+- Shell / Bash+- Swift+- Typescript+- Yaml+++### Current Limitations++Due to the parser's current simplicity, Toodles won't see TODO's in multiline initiated comment. For instance in javascript++```javascript+// TODO(#bug) this would be parsed++/*++ TODO(#bug) this will _not_ be picked up by toodles++*/+```++
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ app/Main.hs view
@@ -0,0 +1,580 @@+{-# LANGUAGE DataKinds           #-}+{-# LANGUAGE DeriveDataTypeable  #-}+{-# LANGUAGE DeriveGeneric       #-}+{-# LANGUAGE OverloadedStrings   #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeOperators       #-}++-- TODO(avi|p=3|#techdebt) - break this into modules+module Main where++import qualified Control.Exception          as E+import           Control.Monad+import           Control.Monad.IO.Class+import           Data.Aeson+import qualified Data.ByteString.Lazy.Char8 as B8S+import           Data.IORef+import           Data.List+import           Data.Maybe+import           Data.Either+import           Data.Monoid+import           Data.Proxy+import           Data.String.Utils+import qualified Data.Text                  as T+import           Data.Version               (showVersion)+import           Data.Void+import           Debug.Trace+import           GHC.Generics+import           Network.HTTP.Types         (status200)+import           Network.Wai+import           Network.Wai.Handler.Warp+import           Paths_toodles              (version)+import           Servant+import           Servant.HTML.Blaze+import           System.Console.CmdArgs+import           System.IO.HVFS+import           System.Directory+import qualified System.IO.Strict           as SIO+import           System.Path+import           System.Path.NameManip+import qualified Text.Blaze.Html5           as BZ+import           Text.Megaparsec+import           Text.Megaparsec.Char+import qualified Text.Megaparsec.Char.Lexer as L+import           Text.Printf+import           Text.Read+import           Text.Regex.Posix+import Paths_toodles+import qualified Data.Yaml as Y++type LineNumber = Integer++data TodoEntry+  = TodoEntryHead { id               :: Integer+                  , body             :: [T.Text]+                  , assignee         :: Maybe T.Text+                  , sourceFile       :: FilePath+                  , lineNumber       :: LineNumber+                  , priority         :: Maybe Integer+                  , customAttributes :: [(T.Text, T.Text)]+                  , tags             :: [T.Text]+                  , leadingText      :: T.Text }+  | TodoBodyLine T.Text+  deriving (Show, Generic)++data TodoListResult = TodoListResult+  { todos   :: [TodoEntry]+  , message :: T.Text+  } deriving (Show, Generic)++data DeleteTodoRequest = DeleteTodoRequest+  { ids :: [Integer]+  } deriving (Show, Generic)++data EditTodoRequest = EditTodoRequest+  { editIds     :: [Integer]+  , setAssignee :: Maybe T.Text+  , addTags     :: [T.Text]+  , setPriority :: Maybe Integer+  } deriving (Show, Generic)++data ToodlesConfig = ToodlesConfig {+  ignore :: [FilePath]+                                   } deriving (Show, Generic)++instance FromJSON TodoEntry++instance ToJSON TodoEntry++instance FromJSON TodoListResult++instance ToJSON TodoListResult++instance FromJSON DeleteTodoRequest++instance ToJSON DeleteTodoRequest++instance FromJSON EditTodoRequest++instance ToJSON EditTodoRequest++instance FromJSON ToodlesConfig++type ToodlesAPI =+  "todos" :> QueryFlag "recompute" :> Get '[ JSON] TodoListResult :<|>+  "todos" :> "delete" :> ReqBody '[ JSON] DeleteTodoRequest :> Post '[ JSON] T.Text :<|>+  "todos" :> "edit" :> ReqBody '[ JSON] EditTodoRequest :> Post '[ JSON] T.Text :<|>+  "static" :> Raw :<|>+  "source_file" :> Capture "id" Integer :> Get '[ HTML] BZ.Html :<|>+  CaptureAll "anything-else" T.Text :> Get '[HTML] BZ.Html++server :: ToodlesState -> Server ToodlesAPI+server s =+  liftIO . getFullSearchResults s :<|>+  deleteTodos s :<|>+  editTodos s :<|>+  serveDirectoryFileServer (dataPath s) :<|>+  showRawFile s :<|>+  root s++data ToodlesState = ToodlesState+  { results  :: IORef TodoListResult,+    dataPath :: FilePath+  }++toodlesAPI :: Proxy ToodlesAPI+toodlesAPI = Proxy++slice from to xs = take (to - from + 1) (drop from xs)++doUntilNull :: ([a] -> IO [a]) -> [a] -> IO ()+doUntilNull f xs = do+  result <- f xs+  if null result+    then return ()+    else doUntilNull f result++removeTodoFromCode :: MonadIO m => TodoEntry -> m ()+removeTodoFromCode = updateTodoLinesInFile (const [])++-- | Given a function to emit new lines for a given todo, write that update in+-- place of the current todo lines+updateTodoLinesInFile ::+     MonadIO m => (TodoEntry -> [T.Text]) -> TodoEntry -> m ()+updateTodoLinesInFile f todo = do+  let startIndex = lineNumber todo - 1+      newLines = map T.unpack $ f todo+  fileLines <- liftIO $ lines <$> (SIO.readFile $ sourceFile todo)+  let updatedLines =+        (slice 0 (fromIntegral $ startIndex - 1) fileLines) ++ newLines +++        (slice+           ((fromIntegral startIndex) + (length $ body todo))+           (length fileLines - 1)+           fileLines)+  liftIO $ writeFile (sourceFile todo) $ unlines updatedLines++removeAndAdjust :: [TodoEntry] -> IO [TodoEntry]+removeAndAdjust deleteList =+  if null deleteList+    then return []+    else let deleteItem = head deleteList+             rest = tail deleteList+         in do _ <- removeTodoFromCode deleteItem+               return $+                 map+                   (\t ->+                      if (sourceFile t == sourceFile deleteItem) &&+                         (lineNumber t > lineNumber deleteItem)+                        then t+                             { lineNumber =+                                 (lineNumber t) -+                                 (fromIntegral . length $ body deleteItem)+                             }+                        else t)+                   rest++deleteTodos :: ToodlesState -> DeleteTodoRequest -> Handler T.Text+deleteTodos (ToodlesState ref _) req = do+  refVal@(TodoListResult r _) <- liftIO $ readIORef ref+  let toDelete = filter (\t -> Main.id t `elem` (ids req)) r+  liftIO $ doUntilNull removeAndAdjust toDelete+  let updeatedResults =+        refVal+        { todos =+            (filter (\t -> not $ Main.id t `elem` (map Main.id toDelete)) r)+        }+  _ <-+    liftIO $ atomicModifyIORef' ref (const (updeatedResults, updeatedResults))+  return $ T.pack "{}"++editTodos :: ToodlesState -> EditTodoRequest -> Handler T.Text+editTodos (ToodlesState ref _) req = do+  refVal@(TodoListResult r _) <- liftIO $ readIORef ref+  let editedList =+        map+          (\t ->+             if willEditTodo req t+               then (editTodo req t)+               else t)+          r+      editedFilteredList = filter (willEditTodo req) editedList+  _ <- mapM_ recordUpdates editedFilteredList+  return $ T.pack "{}"+  where+    willEditTodo :: EditTodoRequest -> TodoEntry -> Bool+    willEditTodo req entry = Main.id entry `elem` editIds req++    editTodo :: EditTodoRequest -> TodoEntry -> TodoEntry+    editTodo req entry =+      let newAssignee = if ((isJust $ setAssignee req) && (not . T.null . fromJust $ setAssignee req)) then setAssignee req else assignee entry+          newPriority = if isJust (setPriority req) then setPriority req else priority entry in++        entry {assignee = newAssignee, tags = tags entry ++ (addTags req), priority = newPriority}++    recordUpdates :: MonadIO m => TodoEntry -> m ()+    recordUpdates t = void $ updateTodoLinesInFile renderTodo t++renderTodo :: TodoEntry -> [T.Text]+renderTodo t =+  let comment =+        fromJust $ lookup ("." <> getExtension (sourceFile t)) fileTypeToComment+      detail =+        (T.pack "TODO(") <>+        (T.pack $+         Data.String.Utils.join+           "|"+           (map T.unpack $ [fromMaybe "" $ assignee t] +++            listIfNotNull (fmap (\p -> (T.pack (maybe "" ((\n -> "p=" ++ n) . show) p))) priority t) +++            (tags t) +++            (map (\a -> fst a <> "=" <> snd a)) (customAttributes t))) <>+        (T.pack ") ")+      fullNoComments = mapHead (\l -> detail <> "- " <> l) $ body t+      commented = map (\l -> comment <> " " <> l) fullNoComments in+      mapHead (\l -> (leadingText t) <> l) $+        mapInit (\l -> (foldl (<>) "" [" " | _ <- [1..(T.length $ leadingText t)]]) <> l) commented++mapHead :: (a -> a) -> [a] -> [a]+mapHead f (x:xs) = [f x] ++ xs+mapHead _ xs     = xs++mapInit :: (a -> a) -> [a] -> [a]+mapInit f (x:xs) = [x] ++ (map f xs)+mapInit _ x = x++listIfNotNull "" = []+listIfNotNull s = [s]++root :: ToodlesState -> [T.Text] -> Handler BZ.Html+root _ path =+  if null path then+    liftIO $ BZ.preEscapedToHtml <$> readFile "./web/html/index.html"+  else throwError $ err404 { errBody = "Not found" }++testroot :: ToodlesState -> [T.Text] -> Handler T.Text+testroot _ _ =+  return "Hello"++app :: ToodlesState -> Application+app s = (serve toodlesAPI) $ server s++isEntryHead :: TodoEntry -> Bool+isEntryHead (TodoEntryHead _ _ _ _ _ _ _ _ _) = True+isEntryHead _                               = False++isBodyLine :: TodoEntry -> Bool+isBodyLine (TodoBodyLine _) = True+isBodyLine _                = False++combineTodo :: TodoEntry -> TodoEntry -> TodoEntry+combineTodo (TodoEntryHead i b a p n priority attrs tags leadingText) (TodoBodyLine l) =+  TodoEntryHead i (b ++ [l]) a p n priority attrs tags leadingText+combineTodo _ _ = error "Can't combine todoEntry of these types"++data SourceFile = SourceFile+  { fullPath    :: FilePath+  , sourceLines :: [T.Text]+  } deriving (Show)++newtype AssigneeFilterRegex =+  AssigneeFilterRegex T.Text+  deriving (Show, Data, Eq)++data SearchFilter =+  AssigneeFilter AssigneeFilterRegex+  deriving (Show, Data, Eq)++data ToodlesArgs = ToodlesArgs+  { directory       :: FilePath+  , assignee_search :: Maybe SearchFilter+  , limit_results   :: Int+  , port            :: Maybe Int+  } deriving (Show, Data, Typeable, Eq)++argParser :: ToodlesArgs+argParser =+  ToodlesArgs+  { directory = def &= typFile &= help "Root directory of your project"+  , assignee_search = def &= help "Filter todo's by assignee"+  , limit_results = def &= help "Limit number of search results"+  , port = def &= help "Run server on port"+  } &=+  summary ("toodles " ++ showVersion version) &=+  program "toodles" &=+  verbosity &=+  help "Manage TODO's directly from your codebase"++fileTypeToComment :: [(T.Text, T.Text)]+fileTypeToComment =+  [ (".c", "//")+  , (".clj", ";;")+  , (".cpp", "//")+  , (".ex", "#")+  , (".erl", "%")+  , (".go", "//")+  , (".hs", "--")+  , (".java", "//")+  , (".js", "//")+  , (".m", "//")+  , (".proto", "//")+  , (".py", "#")+  , (".rb", "#")+  , (".rs", "//")+  , (".scala", "//")+  , (".sh", "#")+  , (".swift", "///")+  , (".ts", "//")+  , (".yaml", "#")+  ]++unkownMarker :: T.Text+unkownMarker = "UNKNOWN-DELIMETER-UNKNOWN-DELIMETER-UNKNOWN-DELIMETER"++getCommentForFileType :: T.Text -> T.Text+getCommentForFileType extension =+  fromMaybe unkownMarker $ lookup adjustedExtension fileTypeToComment+  where+    adjustedExtension =+      if T.isPrefixOf "." extension+        then extension+        else "." <> extension++type Parser = Parsec Void T.Text++lexeme :: Parser a -> Parser a+lexeme = L.lexeme space++symbol :: T.Text -> Parser T.Text+symbol = L.symbol space++parseComment :: T.Text -> Parser TodoEntry+parseComment extension+ = do+  _ <- manyTill anyChar (symbol $ getCommentForFileType extension)+  b <- many anyChar+  return . TodoBodyLine $ T.pack b++integer :: Parser Integer+integer = lexeme $ L.signed space L.decimal++parsePriority :: Parser Integer+parsePriority = do+  _ <- symbol "p="+  integer++parseAssignee :: Parser String+parseAssignee = many (noneOf [')', '|', '='])++-- TODO(avi|p=3|#techdebt) - fix and type this better+parseDetails ::+     T.Text -> (Maybe T.Text, Maybe T.Text, [(T.Text, T.Text)], [T.Text])+parseDetails toParse =+  let tokens = T.splitOn "|" toParse+      assigneeTo =+        find+          (\t ->+             (not (T.null t)) &&+             (not (T.isInfixOf "=" t) && (not (T.isPrefixOf "#" t))))+          tokens+      allDetails =+        map (\[a, b] -> (a, b)) $ filter (\t -> length t == 2) $+        map (T.splitOn "=") tokens+      priority = snd <$> (find (\t -> (T.strip $ fst t) == "p") allDetails)+      filteredDetails = filter (\t -> (T.strip $ fst t) /= "p") allDetails+      tags = filter (\t -> T.isPrefixOf "#" t) tokens+  in (assigneeTo, priority, filteredDetails, tags)++inParens = between (symbol "(") (symbol ")")++stringToMaybe t =+  if T.null t+    then Nothing+    else Just t++fst4 (x, _, _, _) = x++snd4 (_, x, _, _) = x++thd4 (_, _, x, _) = x++fth4 (_, _, _, x) = x++prefixParserForFileType extension =+  let comment = symbol . getCommentForFileType $ extension+      orgMode =+        (try $ symbol "****") <|> (try $ symbol "***") <|> (try $ symbol "**") <|>+        (try $ symbol "*") <|>+        (symbol "-")+  in if extension == "org"+       then orgMode+       else comment++parseTodoEntryHead :: FilePath -> LineNumber -> Parser TodoEntry+parseTodoEntryHead path lineNum = do+  leadingText <- manyTill anyChar (prefixParserForFileType $ getExtension path)+  _ <- symbol "TODO"+  details <- optional $ try (inParens $ many (noneOf [')', '(']))+  let parsedDetails = parseDetails . T.pack <$> details+      priority = (readMaybe . T.unpack) =<< (snd4 =<< parsedDetails)+      otherDetails = maybe [] thd4 parsedDetails+      tags = maybe [] fth4 parsedDetails+  _ <- optional $ symbol "-"+  _ <- optional $ symbol ":"+  b <- many anyChar+  return $+    TodoEntryHead+      0+      [T.pack b]+      (stringToMaybe . T.strip $ fromMaybe "" (fst4 =<< parsedDetails))+      path+      lineNum+      priority+      otherDetails+      tags+      (T.pack leadingText)++parseTodo :: FilePath -> LineNumber -> Parser TodoEntry+parseTodo path lineNum =+  try (parseTodoEntryHead path lineNum) <|> (parseComment $ getExtension path)++getAllFiles :: ToodlesConfig -> FilePath -> IO [SourceFile]+getAllFiles config path =+  E.catch+    (do putStrLn $ printf "Running toodles for path: %s" path+        files <- recurseDir SystemFS path+        let validFiles = filter (isValidFile config) files+        -- TODO(avi|p=3|#techdebt) - make sure it's a file first+        mapM+          (\f ->+             SourceFile f . (map T.pack . lines) <$>+             E.catch+               (SIO.readFile f)+               (\(e :: E.IOException) -> print e >> return ""))+          validFiles)+    (\(e :: E.IOException) ->+       putStrLn ("Error reading " ++ path ++ ": " ++ show e) >> return [])++fileHasValidExtension :: FilePath -> Bool+fileHasValidExtension path =+  any (\ext -> ext `T.isSuffixOf` T.pack path) (map fst fileTypeToComment)++ignoreFile :: ToodlesConfig -> FilePath -> Bool+ignoreFile (ToodlesConfig ignoredPaths) file =+  let p = T.pack file+  in T.isInfixOf "node_modules" p || T.isSuffixOf "pb.go" p ||+     T.isSuffixOf "_pb2.py" p ||+     any (\p -> file =~ p) ignoredPaths++getExtension :: FilePath -> T.Text+getExtension path = last $ T.splitOn "." (T.pack path)++isValidFile :: ToodlesConfig ->  FilePath -> Bool+isValidFile config f =+  fileHasValidExtension f && not (ignoreFile config f)++runTodoParser :: SourceFile -> [TodoEntry]+runTodoParser (SourceFile path ls) =+  let parsedTodoLines =+        map+          (\(lineNum, lineText) -> parseMaybe (parseTodo path lineNum) lineText)+          (zip [1 ..] ls)+      groupedTodos = foldl foldTodoHelper ([], False) parsedTodoLines+  in fst groupedTodos++foldTodoHelper :: ([TodoEntry], Bool) -> Maybe TodoEntry -> ([TodoEntry], Bool)+foldTodoHelper (todos :: [TodoEntry], currentlyBuildingTodoLines :: Bool) maybeTodo+  | isNothing maybeTodo = (todos, False)+  | isEntryHead $ fromJust maybeTodo = (todos ++ [fromJust maybeTodo], True)+  | isBodyLine (fromJust maybeTodo) && currentlyBuildingTodoLines =+    (init todos ++ [combineTodo (last todos) (fromJust maybeTodo)], True)+  | otherwise = (todos, False)++prettyFormat :: TodoEntry -> String+prettyFormat (TodoEntryHead _ l a p n priority _ _ _) =+  printf+    "Assignee: %s\n%s%s:%d\n%s"+    (fromMaybe "None" a)+    (maybe "" (\x -> "Priority: " ++ show x ++ "\n") priority)+    p+    n+    (unlines $ map T.unpack l)+prettyFormat (TodoBodyLine _) = error "Invalid type for prettyFormat"++filterSearch :: Maybe SearchFilter -> (TodoEntry -> Bool)+filterSearch Nothing = const True+filterSearch (Just (AssigneeFilter (AssigneeFilterRegex query))) =+  \entry -> fromMaybe "" (assignee entry) == query++limitSearch :: [TodoEntry] -> Int -> [TodoEntry]+limitSearch results limit =+  if limit == 0+    then results+    else take limit results++runFullSearch :: ToodlesArgs -> IO TodoListResult+runFullSearch userArgs =+  let projectRoot = directory userArgs+  in do+        configExists <- doesFileExist $ projectRoot ++ "/.toodles.yaml"+        config <- if configExists+          then eitherDecode' . B8S.pack <$> readFile (projectRoot ++ "/.toodles.yaml")+          else return . Right $ ToodlesConfig []+        allFiles <- getAllFiles (fromRight (ToodlesConfig []) config) projectRoot+        let parsedTodos = concatMap runTodoParser allFiles+            filteredTodos =+              filter (filterSearch (assignee_search userArgs)) parsedTodos+            results = limitSearch filteredTodos $ limit_results userArgs+            indexedResults =+              map (\(i, r) -> r {Main.id = i}) $ zip [1 ..] results+        return $ TodoListResult indexedResults ""++getFullSearchResults :: ToodlesState -> Bool -> IO TodoListResult+getFullSearchResults (ToodlesState ref _) recompute =+  if recompute+    then do+      putStrLn "refreshing todo's"+      userArgs <- cmdArgs argParser >>= setAbsolutePath+      sResults <- runFullSearch userArgs+      writtenResults <- atomicModifyIORef' ref (const (sResults, sResults))+      return writtenResults+    else putStrLn "cached read" >> readIORef ref++showRawFile :: ToodlesState -> Integer -> Handler BZ.Html+showRawFile (ToodlesState ref _) entryId = do+  (TodoListResult r _) <- liftIO $ readIORef ref+  let entry = find (\t -> Main.id t == entryId) r+  liftIO $+    maybe+      (return "Not found")+      (\e -> addAnchors <$> readFile (sourceFile e))+      entry++addAnchors :: String -> BZ.Html+addAnchors s =+  let sourceLines = zip [1 ..] $ lines s+  in BZ.preEscapedToHtml $+     (unlines $+      map+        (\(i, l) -> printf "<pre><a name=\"line-%s\">%s</a></pre>" (show i) l)+        sourceLines)++setAbsolutePath :: ToodlesArgs -> IO ToodlesArgs+setAbsolutePath args =+  let pathOrDefault =+        if T.null . T.pack $ directory args+          then "."+          else directory args+  in do absolute <- normalise_path <$> absolute_path pathOrDefault+        return $ args {directory = absolute}++main :: IO ()+main = do+  userArgs <- cmdArgs argParser >>= setAbsolutePath+  sResults <- runFullSearch userArgs+  if isJust $ port userArgs+    then do+      let webPort = fromJust $ port userArgs+      ref <- newIORef sResults+      dataDir <- (++ "/web") <$> getDataDir+      putStrLn $ "serving on " ++ show webPort+      run webPort $ app $ ToodlesState ref dataDir+    else mapM_ (putStrLn . prettyFormat) $ todos sResults
+ toodles.cabal view
@@ -0,0 +1,64 @@+-- This file has been generated from package.yaml by hpack version 0.28.2.+--+-- see: https://github.com/sol/hpack+--+-- hash: 275961bd1707bc89a364661abf60a4d52d22a05955e6b2e28195e97c46672294++name:           toodles+version:        0.1.0.0+synopsis:       Manage the TODO entries in your code+description:    See the README on GitHub at <https://github.com/aviaviavi/toodles#readme>+category:       Project Management+homepage:       https://github.com/aviaviavi/toodles#readme+bug-reports:    https://github.com/aviaviavi/toodles/issues+author:         Avi Press+maintainer:     mail@avi.press+copyright:      2018 Avi Press+license:        MIT+build-type:     Simple+cabal-version:  >= 1.10+extra-source-files:+    README.md+    web/css/bulma.min.css+    web/css/font-awesome.min.css+    web/css/toodles.css+    web/fonts/fontawesome-webfont.woff+    web/fonts/fontawesome-webfont.woff2+    web/html/index.html+    web/js/app.js+    web/js/jquery-3.3.1.min.js+    web/js/vue.js++source-repository head+  type: git+  location: https://github.com/aviaviavi/toodles++executable toodles+  main-is: Main.hs+  other-modules:+      Paths_toodles+  hs-source-dirs:+      app+  ghc-options: -threaded -rtsopts -with-rtsopts=-N+  build-depends:+      MissingH+    , aeson+    , base >=4.7 && <5+    , blaze-html+    , bytestring+    , cmdargs+    , directory+    , filepath+    , http-types+    , megaparsec+    , regex-posix+    , servant+    , servant-blaze+    , servant-server+    , strict+    , text+    , transformers+    , wai+    , warp+    , yaml+  default-language: Haskell2010
+ web/css/bulma.min.css view
@@ -0,0 +1,1 @@+/*! bulma.io v0.7.1 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.breadcrumb,.button,.delete,.file,.is-unselectable,.modal-close,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:center;transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.highlight:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 img,.image.is-1by1 img,.image.is-1by2 img,.image.is-1by3 img,.image.is-2by1 img,.image.is-2by3 img,.image.is-3by1 img,.image.is-3by2 img,.image.is-3by4 img,.image.is-3by5 img,.image.is-4by3 img,.image.is-4by5 img,.image.is-5by3 img,.image.is-5by4 img,.image.is-9by16 img,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.375em - 1px);padding-left:calc(.625em - 1px);padding-right:calc(.625em - 1px);padding-top:calc(.375em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select select[disabled],.textarea[disabled]{cursor:not-allowed}/*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}audio,img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0;text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1rem;font-weight:400;line-height:1.5}a{color:#3273dc;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#ff3860;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{text-align:left;vertical-align:top}table th{color:#363636}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-clipped{overflow:hidden!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1087px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1088px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1280px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1472px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1087px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1088px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1280px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1472px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1087px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1088px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1280px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1472px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1087px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1088px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1280px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1472px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1087px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1088px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1280px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1472px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-link{color:#3273dc!important}a.has-text-link:focus,a.has-text-link:hover{color:#205bbc!important}.has-background-link{background-color:#3273dc!important}.has-text-info{color:#209cee!important}a.has-text-info:focus,a.has-text-info:hover{color:#0f81cc!important}.has-background-info{background-color:#209cee!important}.has-text-success{color:#23d160!important}a.has-text-success:focus,a.has-text-success:hover{color:#1ca64c!important}.has-background-success{background-color:#23d160!important}.has-text-warning{color:#ffdd57!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd324!important}.has-background-warning{background-color:#ffdd57!important}.has-text-danger{color:#ff3860!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ff0537!important}.has-background-danger{background-color:#ff3860!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1087px){.is-block-touch{display:block!important}}@media screen and (min-width:1088px){.is-block-desktop{display:block!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1280px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1472px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1087px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1088px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1280px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1472px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1087px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1088px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1280px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1472px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1087px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1088px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1280px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1472px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1087px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1088px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1280px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1472px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1087px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1088px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1280px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1472px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1087px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1088px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1280px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1472px){.is-invisible-fullhd{visibility:hidden!important}}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px #3273dc}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #3273dc}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.375em - 1px);margin-right:.1875em}.button .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:calc(-.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.375em - 1px);margin-right:calc(-.375em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#3273dc;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled]{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled]{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined[disabled]{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:#363636}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:#363636}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover{background-color:#292929}.button.is-light.is-inverted[disabled]{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined[disabled]{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#f5f5f5}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled]{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined[disabled]{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled]{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined[disabled]{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#3273dc;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#276cda;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#2366d1;border-color:transparent;color:#fff}.button.is-link[disabled]{background-color:#3273dc;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#3273dc}.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#3273dc}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#3273dc;color:#3273dc}.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#3273dc;border-color:#3273dc;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #3273dc #3273dc!important}.button.is-link.is-outlined[disabled]{background-color:transparent;border-color:#3273dc;box-shadow:none;color:#3273dc}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#3273dc}.button.is-link.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#1496ed;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#118fe4;border-color:transparent;color:#fff}.button.is-info[disabled]{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee!important}.button.is-info.is-outlined[disabled]{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#23d160;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#22c65b;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#20bc56;border-color:transparent;color:#fff}.button.is-success[disabled]{background-color:#23d160;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#23d160}.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#23d160}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#23d160;color:#23d160}.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#23d160;border-color:#23d160;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #23d160 #23d160!important}.button.is-success.is-outlined[disabled]{background-color:transparent;border-color:#23d160;box-shadow:none;color:#23d160}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#23d160}.button.is-success.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled]{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled]{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.button.is-warning.is-outlined[disabled]{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-danger{background-color:#ff3860;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#ff2b56;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ff1f4b;border-color:transparent;color:#fff}.button.is-danger[disabled]{background-color:#ff3860;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#ff3860}.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#ff3860}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#ff3860;color:#ff3860}.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#ff3860;border-color:#ff3860;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #ff3860 #ff3860!important}.button.is-danger.is-outlined[disabled]{background-color:transparent;border-color:#ff3860;box-shadow:none;color:#ff3860}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#ff3860}.button.is-danger.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small{border-radius:2px;font-size:.75rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled]{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1}.buttons.is-centered{justify-content:center}.buttons.is-right{justify-content:flex-end}.container{margin:0 auto;position:relative}@media screen and (min-width:1088px){.container{max-width:960px;width:960px}.container.is-fluid{margin-left:64px;margin-right:64px;max-width:none;width:auto}}@media screen and (max-width:1279px){.container.is-widescreen{max-width:1152px;width:auto}}@media screen and (max-width:1471px){.container.is-fullhd{max-width:1344px;width:auto}}@media screen and (min-width:1280px){.container{max-width:1152px;width:1152px}}@media screen and (min-width:1472px){.container{max-width:1344px;width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style:decimal outside;margin-left:2em;margin-top:1em}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636;text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content.is-small{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.input,.textarea{background-color:#fff;border-color:#dbdbdb;color:#363636;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);max-width:100%;width:100%}.input::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input.is-hovered,.input:hover,.textarea.is-hovered,.textarea:hover{border-color:#b5b5b5}.input.is-active,.input.is-focused,.input:active,.input:focus,.textarea.is-active,.textarea.is-focused,.textarea:active,.textarea:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input[disabled],.textarea[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input[readonly],.textarea[readonly]{box-shadow:none}.input.is-white,.textarea.is-white{border-color:#fff}.input.is-white.is-active,.input.is-white.is-focused,.input.is-white:active,.input.is-white:focus,.textarea.is-white.is-active,.textarea.is-white.is-focused,.textarea.is-white:active,.textarea.is-white:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.input.is-black,.textarea.is-black{border-color:#0a0a0a}.input.is-black.is-active,.input.is-black.is-focused,.input.is-black:active,.input.is-black:focus,.textarea.is-black.is-active,.textarea.is-black.is-focused,.textarea.is-black:active,.textarea.is-black:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.input.is-light,.textarea.is-light{border-color:#f5f5f5}.input.is-light.is-active,.input.is-light.is-focused,.input.is-light:active,.input.is-light:focus,.textarea.is-light.is-active,.textarea.is-light.is-focused,.textarea.is-light:active,.textarea.is-light:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.input.is-dark,.textarea.is-dark{border-color:#363636}.input.is-dark.is-active,.input.is-dark.is-focused,.input.is-dark:active,.input.is-dark:focus,.textarea.is-dark.is-active,.textarea.is-dark.is-focused,.textarea.is-dark:active,.textarea.is-dark:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.input.is-primary,.textarea.is-primary{border-color:#00d1b2}.input.is-primary.is-active,.input.is-primary.is-focused,.input.is-primary:active,.input.is-primary:focus,.textarea.is-primary.is-active,.textarea.is-primary.is-focused,.textarea.is-primary:active,.textarea.is-primary:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.input.is-link,.textarea.is-link{border-color:#3273dc}.input.is-link.is-active,.input.is-link.is-focused,.input.is-link:active,.input.is-link:focus,.textarea.is-link.is-active,.textarea.is-link.is-focused,.textarea.is-link:active,.textarea.is-link:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input.is-info,.textarea.is-info{border-color:#209cee}.input.is-info.is-active,.input.is-info.is-focused,.input.is-info:active,.input.is-info:focus,.textarea.is-info.is-active,.textarea.is-info.is-focused,.textarea.is-info:active,.textarea.is-info:focus{box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.input.is-success,.textarea.is-success{border-color:#23d160}.input.is-success.is-active,.input.is-success.is-focused,.input.is-success:active,.input.is-success:focus,.textarea.is-success.is-active,.textarea.is-success.is-focused,.textarea.is-success:active,.textarea.is-success:focus{box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.input.is-warning,.textarea.is-warning{border-color:#ffdd57}.input.is-warning.is-active,.input.is-warning.is-focused,.input.is-warning:active,.input.is-warning:focus,.textarea.is-warning.is-active,.textarea.is-warning.is-focused,.textarea.is-warning:active,.textarea.is-warning:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.input.is-danger,.textarea.is-danger{border-color:#ff3860}.input.is-danger.is-active,.input.is-danger.is-focused,.input.is-danger:active,.input.is-danger:focus,.textarea.is-danger.is-active,.textarea.is-danger.is-focused,.textarea.is-danger:active,.textarea.is-danger:focus{box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.input.is-small,.textarea.is-small{border-radius:2px;font-size:.75rem}.input.is-medium,.textarea.is-medium{font-size:1.25rem}.input.is-large,.textarea.is-large{font-size:1.5rem}.input.is-fullwidth,.textarea.is-fullwidth{display:block;width:100%}.input.is-inline,.textarea.is-inline{display:inline;width:auto}.input.is-rounded{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox[disabled],.radio[disabled]{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#3273dc;right:1.125em;z-index:4}.select.is-rounded select{border-radius:290486px;padding-left:1em}.select select{background-color:#fff;border-color:#dbdbdb;color:#363636;cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-moz-placeholder{color:rgba(54,54,54,.3)}.select select::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.select select:-moz-placeholder{color:rgba(54,54,54,.3)}.select select:-ms-input-placeholder{color:rgba(54,54,54,.3)}.select select.is-hovered,.select select:hover{border-color:#b5b5b5}.select select.is-active,.select select.is-focused,.select select:active,.select select:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select select[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.select select[disabled]::-moz-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]:-moz-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]:-ms-input-placeholder{color:rgba(122,122,122,.3)}.select select::-ms-expand{display:none}.select select[disabled]:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:initial;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#3273dc}.select.is-link select{border-color:#3273dc}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#2366d1}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#118fe4}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.select.is-success:not(:hover)::after{border-color:#23d160}.select.is-success select{border-color:#23d160}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#20bc56}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd83d}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.select.is-danger:not(:hover)::after{border-color:#ff3860}.select.is-danger select{border-color:#ff3860}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ff1f4b}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;-webkit-transform:none;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:#363636}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#f5f5f5}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#3273dc;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#276cda;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,115,220,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#2366d1;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#1496ed;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(32,156,238,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#118fe4;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#23d160;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#22c65b;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(35,209,96,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#20bc56;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,221,87,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#ff3860;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#ff2b56;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,56,96,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ff1f4b;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:.01em;left:0;outline:0;position:absolute;top:0;width:.01em}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#3273dc}.help.is-info{color:#209cee}.help.is-success{color:#23d160}.help.is-warning{color:#ffdd57}.help.is-danger{color:#ff3860}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child .button,.field.has-addons .control:first-child .input,.field.has-addons .control:first-child .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child .button,.field.has-addons .control:last-child .input,.field.has-addons .control:last-child .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button.is-hovered,.field.has-addons .control .button:hover,.field.has-addons .control .input.is-hovered,.field.has-addons .control .input:hover,.field.has-addons .control .select select.is-hovered,.field.has-addons .control .select select:hover{z-index:2}.field.has-addons .control .button.is-active,.field.has-addons .control .button.is-focused,.field.has-addons .control .button:active,.field.has-addons .control .button:focus,.field.has-addons .control .input.is-active,.field.has-addons .control .input.is-focused,.field.has-addons .control .input:active,.field.has-addons .control .input:focus,.field.has-addons .control .select select.is-active,.field.has-addons .control .select select.is-focused,.field.has-addons .control .select select:active,.field.has-addons .control .select select:focus{z-index:3}.field.has-addons .control .button.is-active:hover,.field.has-addons .control .button.is-focused:hover,.field.has-addons .control .button:active:hover,.field.has-addons .control .button:focus:hover,.field.has-addons .control .input.is-active:hover,.field.has-addons .control .input.is-focused:hover,.field.has-addons .control .input:active:hover,.field.has-addons .control .input:focus:hover,.field.has-addons .control .select select.is-active:hover,.field.has-addons .control .select select.is-focused:hover,.field.has-addons .control .select select:active:hover,.field.has-addons .control .select select:focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{font-size:1rem;position:relative;text-align:left}.control.has-icon .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icon .input:focus+.icon{color:#7a7a7a}.control.has-icon .input.is-small+.icon{font-size:.75rem}.control.has-icon .input.is-medium+.icon{font-size:1.25rem}.control.has-icon .input.is-large+.icon{font-size:1.5rem}.control.has-icon:not(.has-icon-right) .icon{left:0}.control.has-icon:not(.has-icon-right) .input{padding-left:2.25em}.control.has-icon.has-icon-right .icon{right:0}.control.has-icon.has-icon-right .input{padding-right:2.25em}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#7a7a7a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:290486px}.image.is-16by9 img,.image.is-1by1 img,.image.is-1by2 img,.image.is-1by3 img,.image.is-2by1 img,.image.is-2by3 img,.image.is-3by1 img,.image.is-3by2 img,.image.is-3by4 img,.image.is-3by5 img,.image.is-4by3 img,.image.is-4by5 img,.image.is-5by3 img,.image.is-5by4 img,.image.is-9by16 img,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{position:absolute;right:.5rem;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark{background-color:#363636;color:#f5f5f5}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-link{background-color:#3273dc;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#23d160;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.notification.is-danger{background-color:#ff3860;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-link::-webkit-progress-value{background-color:#3273dc}.progress.is-link::-moz-progress-bar{background-color:#3273dc}.progress.is-link::-ms-fill{background-color:#3273dc}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-success::-webkit-progress-value{background-color:#23d160}.progress.is-success::-moz-progress-bar{background-color:#23d160}.progress.is-success::-ms-fill{background-color:#23d160}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-danger::-webkit-progress-value{background-color:#ff3860}.progress.is-danger::-moz-progress-bar{background-color:#ff3860}.progress.is-danger::-ms-fill{background-color:#ff3860}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#3273dc;border-color:#3273dc;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#23d160;border-color:#23d160;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#ff3860;border-color:#ff3860;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#363636;text-align:left}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:#363636}.tag:not(body).is-dark{background-color:#363636;color:#f5f5f5}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-link{background-color:#3273dc;color:#fff}.tag:not(body).is-info{background-color:#209cee;color:#fff}.tag:not(body).is-success{background-color:#23d160;color:#fff}.tag:not(body).is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.tag:not(body).is-danger{background-color:#ff3860;color:#fff}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:290486px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#3273dc;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);color:#4a4a4a;max-width:100%;position:relative}.card-header{background-color:none;align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:none;padding:1.5rem}.card-footer{background-color:none;border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:.75rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item{padding-right:3rem;white-space:nowrap}a.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active{background-color:#3273dc;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item{margin-right:.75rem}.level.is-mobile .level-item:not(:last-child){margin-bottom:0}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#3273dc;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary{background-color:#f5fffd}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#021310}.message.is-link{background-color:#f6f9fe}.message.is-link .message-header{background-color:#3273dc;color:#fff}.message.is-link .message-body{border-color:#3273dc;color:#22509a}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537e}.message.is-success{background-color:#f6fef9}.message.is-success .message-header{background-color:#23d160;color:#fff}.message.is-success .message-body{border-color:#23d160;color:#0e301a}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3b3108}.message.is-danger{background-color:#fff5f7}.message.is-danger .message-header{background-color:#ff3860;color:#fff}.message.is-danger .message-body{border-color:#ff3860;color:#cd0930}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px),print{.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:10px}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}@media screen and (min-width:1088px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:#363636}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}@media screen and (min-width:1088px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:#363636}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#f5f5f5}@media screen and (min-width:1088px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#f5f5f5}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#3273dc;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#3273dc;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#23d160;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#23d160;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}@media screen and (min-width:1088px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#ff3860;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#ff3860;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;-webkit-transform-origin:center;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,-webkit-transform;transition-property:background-color,opacity,transform;transition-property:background-color,opacity,transform,-webkit-transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){-webkit-transform:translateY(5px) rotate(45deg);transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){-webkit-transform:translateY(-5px) rotate(-45deg);transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:hover{background-color:#fafafa;color:#3273dc}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#3273dc}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#3273dc;border-bottom-style:solid;border-bottom-width:3px;color:#3273dc;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link{padding-right:2.5em}.navbar-link::after{border-color:#3273dc;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1087px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1088px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{-webkit-transform:rotate(135deg) translate(.25em,-.25em);transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));-webkit-transform:translateY(-5px);transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-1rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-1rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:hover),a.navbar-item.is-active:not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;padding-left:.5em;padding-right:.5em;justify-content:center;margin:.25rem;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#3273dc}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#3273dc;border-color:#3273dc;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-block,.panel-heading,.panel-tabs{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-block:first-child,.panel-heading:first-child,.panel-tabs:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#363636;font-size:1.25em;font-weight:300;line-height:1.25;padding:.5em .75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#3273dc}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#3273dc;color:#363636}.panel-block.is-active .panel-icon{color:#3273dc}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#3273dc;color:#3273dc}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#3273dc;border-color:#3273dc;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1087px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1088px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1280px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1472px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1088px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}.columns.is-variable.is-1{--columnGap:0.25rem}.columns.is-variable.is-2{--columnGap:0.5rem}.columns.is-variable.is-3{--columnGap:0.75rem}.columns.is-variable.is-4{--columnGap:1rem}.columns.is-variable.is-5{--columnGap:1.25rem}.columns.is-variable.is-6{--columnGap:1.5rem}.columns.is-variable.is-7{--columnGap:1.75rem}.columns.is-variable.is-8{--columnGap:2rem}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1087px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width:1087px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#f5f5f5}.hero.is-dark .subtitle{color:rgba(245,245,245,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#f5f5f5}@media screen and (max-width:1087px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(245,245,245,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a{color:#f5f5f5;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#3273dc;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-link .navbar-menu{background-color:#3273dc}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#2366d1;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3273dc}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#118fe4;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#04a6d7 0,#209cee 71%,#3287f5 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#04a6d7 0,#209cee 71%,#3287f5 100%)}}.hero.is-success{background-color:#23d160;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-success .navbar-menu{background-color:#23d160}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#20bc56;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#23d160}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#12af2f 0,#23d160 71%,#2ce28a 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#12af2f 0,#23d160 71%,#2ce28a 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1087px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}}.hero.is-danger{background-color:#ff3860;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-danger .navbar-menu{background-color:#ff3860}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ff3860}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#ff0561 0,#ff3860 71%,#ff5257 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ff0561 0,#ff3860 71%,#ff5257 100%)}}.hero.is-small .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-fullheight .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width:1088px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}
+ web/css/font-awesome.min.css view
@@ -0,0 +1,4 @@+/*!+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
+ web/css/toodles.css view
@@ -0,0 +1,130 @@+.navbar {+    background-color: #346df0;+    width: 100%;+}++.navbar-item {+    margin-left: 1em;+    color: white;+}++.side-bar {+    padding-left: 2em;+}++.content-container {+    margin-top: 1em;+}++.main-container {+    padding-right: 2%;+}++.todo-item-location {+    font-size: .7em;+    color: grey;+}++.filter-todos {+    width: 95%;+}++.loading-spinner {+    line-height: 2em;+}++.loading-spinner a {+    border: none;+}++.navbar-item {+    cursor: pointer;+}++.navbar-item:active {+    color: grey;+}++.priority-number {+    width: 5em;+}++.todo-source-link {+    font-size: .75em;+}++.todo-source-link a:link, .todo-source-link a:visited {+    color: grey !important;+}++.sortable {+    cursor: pointer;+}++.tag-block{+    margin-top: .3em;+    max-width: 200px;+}++.tag-item {+    /* background-color: #E9F1F7; */+    background-color: #4F6D7A;+    line-height: 2;+    color: white;+    font-size: .75em;+    margin-right: .2em;+    padding: .3em;+    text-align: center;+}++.todo-item-body {+    word-wrap: break-word;+}++td, th {+    word-wrap: break-word;+}++.attribute-block{+}++.attribute-item {+    background-color: #D6F6DD;+    margin-right: .2em;+    padding: .3em;+    line-height: 2;+    font-size: .75em;+}++.priority-column {+    min-width: 105px;+}++.modal-content {+    background-color: white;+    min-width: 50%;+    min-height: 20%;+}++.edit-todo-field-input {+    width: 50%;+}+.edit-todo-form{+    padding: 2em;+}++.navbar-burger {+    color: #363636;+}++.is-active .navbar-item {+    color: black;+}++.is-active .navbar-item:hover {+    background-color: #dbdbdb;+}++.top-div {+    overflow-x: scroll;+}
+ web/fonts/fontawesome-webfont.woff view

binary file changed (absent → 98024 bytes)

+ web/fonts/fontawesome-webfont.woff2 view

binary file changed (absent → 98024 bytes)

+ web/html/index.html view
@@ -0,0 +1,147 @@+<head>+    <script src="/static/js/vue.js"></script>+    <script src="/static/js/jquery-3.3.1.min.js"></script>+    <script src="/static/js/app.js"></script>+    <link rel="stylesheet" href="/static/css/bulma.min.css">+    <link rel="stylesheet" href="/static/css/toodles.css">+    <link rel="stylesheet" href="/static/css/font-awesome.min.css">+</head>++<body>+    <div id="top-div">+        <nav class="navbar" role="navigation" aria-label="main navigation">+            <div class="navbar-brand">+                <a class="navbar-item" href="#">+                    Toodles+                </a>+                <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" v-on:click="toggleMenuBurger">+                    <span aria-hidden="true"></span>+                    <span aria-hidden="true"></span>+                    <span aria-hidden="true"></span>+                </a>+            </div>+            <div class="navbar-menu">+                <div class="navbar-end">+                    <div class="navbar-item edit-todos" v-on:click="editSeletedTodos" v-show="todos.filter(t => t.selected).some(t => !!t)">+                        <span class="icon">+                            <i class="fa fa-edit"></i>+                        </span>+                        <span>Edit</span>+                    </div>+                    <div class="navbar-item delete-todo" v-on:click="deleteSeletedTodos" v-show="todos.filter(t => t.selected).some(t => !!t)">+                        <span class="icon">+                            <i class="fa fa-trash"></i>+                        </span>+                        <span>Delete</span>+                    </div>+                    <div class="select-all navbar-item" v-on:click="selectAll">+                        <span class="icon">+                            <i class="fa fa-check-square"></i>+                        </span>+                        <span>Select All</span>+                    </div>+                    <div class="refresh navbar-item" v-on:click="refresh(true)()">+                        <span class="icon">+                            <i class="fa fa-refresh"></i>+                        </span>+                        <span>Refresh</span>+                    </div>+                </div>+            </div>+        </nav>+        <div class="modal">+            <div class="modal-background" @click="closeModal"></div>+            <div class="modal-content">+                <div class="edit-todo-form container">+                    <div class="field edit-todo-field-input">+                        <label class="label">Set Assignee</label>+                        <div class="control">+                            <input class="input" type="text" placeholder="Assignee" v-model="setAssignee">+                        </div>+                    </div>++                    <div class="field edit-todo-field-input">+                        <label class="label">Add Tag (comma separated)</label>+                        <div class="control">+                            <input class="input" type="text" placeholder="#bug,#techdebt,..." v-model="addTags">+                        </div>+                    </div>++                    <div class="field edit-todo-field-input">+                        <label class="label">Set Priority</label>+                        <div class="control">+                            <input class="input" type="number" placeholder="Number" v-model="setPriority">+                        </div>+                    </div>++                    <button class="button is-primary submit-todo-edits" v-on:click="submitTodoEdits">Submit</button>+                </div>+            </div>+            <button class="modal-close is-large" aria-label="close" @click="closeModal"></button>+        </div>+        <div class="columns content-container">+            <div class="side-bar column is-one-quarter">+                <label for="todo-search">Filter</label>+                <input placeholder="Search text, assignee, tags" class="input filter-todos" name="todo-search" type="text" v-model="todoSearch">++                <br><br>++                <span>+                    <div class="select">+                        <select v-model="customSortSelected" @change="sortTodos">+                            <option value="">Custom Attribute Sort</option>+                            <option v-for="attrKey in customAttributeKeys">{{ attrKey }}</option>+                        </select>+                    </div>+                    <button class="button" v-show="customSortSelected" v-on:click="sortTodos">+                        <span class="icon">+                            <i class="fa fa-sort"></i>+                        </span>+                    </button>+                </span>+            </div>+            <div class="main-container container content column is-three-quarters">+                <div class="loading-spinner" v-show="loading"><a class="button is-loading">Loading</a> Loading TODO's. If your project is large, this can take a few moments...</div>+                <table class="table todo-list is-striped is-hoverable">+                    <thead>+                        <tr>+                            <td></td>+                            <th v-on:click="sortTodos('priority')" class="sortable priority-column">+                                Priority+                                <span class="icon">+                                    <i class="fa fa-sort"></i>+                                </span>+                            </th>+                            <th class="todo-item-body">Body</th>+                            <th>Assignee</th>+                            <th>Tags</th>+                        </tr>+                    </thead>+                    <tr class="todo-item" v-for="todo in todos" v-if="todo.body.indexOf(todoSearch) !== -1 || (todo.assignee || '').indexOf(todoSearch) !== -1 || (todo.tags || []).toString().indexOf(todoSearch) !== -1" @change="updateTodo('top level')">+                        <td><input type="checkbox" v-model="todo.selected"></td>+                        <td class="todo-item-priority" >+                            <div v-show="todo.priority !== undefined">{{ todo.priority }}</div>+                        </td>+                        <td class='todo-item-body'>+                            <div class="todo-source-link"><a :href="'/source_file/' + todo.id + '#line-' + todo.lineNumber" target="_blank">{{ todo.sourceFile }}:{{ todo.lineNumber}}</a></div>+                            <div>{{ todo.body }}</div>+                        </td>+                        <td class="todo-item-assignee" >{{ todo.assignee }}</td>+                        <td class="todo-item-customAttributes">+                            <div v-show="Object.keys(todo.customAttributes).length" class="attribute-block">+                                <span v-for="entry in Object.entries(todo.customAttributes)" class="attribute-item" @change="updateTodo('here')">+                                    <span >{{entry[0]}}</span>: <span >{{entry[1]}}</span>+                                </span>+                            </div>+                            <div class="tag-block" v-show="Object.keys(todo.tags).length">+                                <span v-for="tag in todo.tags" class="tag-item">+                                    <span >{{tag}}</span>+                                </span>+                            </div>+                        </td>+                    </tr>+                </table>+            </div>+        </div>+    </div>+</body>
+ web/js/app.js view
@@ -0,0 +1,198 @@+$(document).ready(function() {+  new Vue({+    el: '#top-div',+    data: () => {+      return {+        todos: [],+        todoSearch: "",+        loading: true,+        priorityFilter: "any",+        sortMultiplier: {'priority': 1},+        customSortSelected: '',+        customAttributeKeys: [],+        setAssignee: "",+        addTags: "",+        setPriority: null+      }+    },+    created: function() {+      this.refresh()()+    },+    methods: {+      refresh: function(recompute) {+        return function() {+          this.loading = true+          $.ajax("/todos?recompute=" + !!recompute, {+            type: "GET",+            dataType: "json",+            success: function(data) {+              console.log("here", data)+              this.todos = data.todos.map(t => {+                return {+                  id: t.id,+                  assignee: t.assignee,+                  body: t.body.join("\n"),+                  lineNumber: t.lineNumber,+                  sourceFile: t.sourceFile,+                  priority: t.priority,+                  tags: t.tags,+                  customAttributes: t.customAttributes.reduce((acc, curr) => {+                    console.log(acc, curr)+                    acc[curr[0]] = curr[1]+                    console.log(acc, curr)+                    return acc+                  }, {}),+                  selected: false+                }+              })+              console.log("todos", this.todos)+              this.loading = false+              if (!recompute) {+                this.sortTodos('priority')+              }++              this.customAttributeKeys = Array.from(new Set([].concat.apply([], this.todos.map(t => {+                return Object.keys(t.customAttributes)+              }))))++              this.customAttributeKeys.sort()+            }.bind(this),+            error: function() {+              this.loading = false+              alert("Error! D: Check your connection to the server")+            }.bind(this)+          })+        }.bind(this)+      },+// TODO(avi|p=2|key=a val) - make sorts persist refreshes+// TODO(avi|p=2|key=a val) - make sorts persist refreshes+      sortTodos: function(sortField) {+        if (!sortField || typeof sortField !== 'string') {+          sortField = this.customSortSelected+        }+        // multiplier for custom sort val that does asc / desc sort+        const multiplier = this.sortMultiplier[sortField] || 1+        if (sortField === 'priority') {+          // so we keep nulls at the end always when sorting+          const valDefault = multiplier > 0 ? Number.MAX_SAFE_INTEGER : Number.MIN_SAFE_INTEGER+          this.todos.sort(function(a, b) {+            const _a = (a.priority !== null ? a.priority : valDefault)+            const _b = (b.priority !== null ? b.priority : valDefault)+            if (_a < _b) {+              return multiplier * -1+            } else if (_a > _b) {+              return multiplier * 1+            }+            return 0+          })+        } else { // custom+          // so we keep nulls at the end always when sorting+          const valDefault = multiplier > 0 ? "zzzzzzzzzz" : ""+          this.todos.sort(function(a, b) {+            const _a = (a.customAttributes[sortField] || valDefault)+            const _b = (b.customAttributes[sortField] || valDefault)+            if (_a < _b) {+              return multiplier * -1+            } else if (_a > _b) {+              return multiplier * 1+            }+            return 0+          })+        }++        this.sortMultiplier[sortField] = multiplier * -1++        return null+      },++      updateTodo: function(name) {+        return function() {+          console.log(name)+        }+      },++      editSeletedTodos: function() {+        $(".modal").addClass("is-active")+      },++      closeModal: function() {+        $(".modal").removeClass("is-active")+      },++      deleteSeletedTodos: function() {+        if (confirm("Are you sure you want to delete these todo's?")) {+          $.ajax({+            url: "/todos/delete",+            type: "POST",+            dataType: "json",+            contentType: 'application/json',+            data: JSON.stringify({+              ids: this.todos.filter(t => t.selected).map(t => t.id)+            }),+            success: function(data){+              this.todos = this.todos.filter(function(t) {+                return !t.selected+              }.bind(this))+            }.bind(this)+          })+        } else {+          console.log("no")+        }+      },++      selectAll: function() {+        this.todos.map(function(t) {+          t.selected = true+        })+      },++      toggleMenuBurger: function(ev) {+        $(".navbar-burger").toggleClass("is-active")+        $(".navbar-menu").toggleClass("is-active")+      },++      submitTodoEdits: function(){+        $.ajax({+          url: "/todos/edit",+          type: "POST",+          dataType: "json",+          contentType: 'application/json',+          data: JSON.stringify({+            editIds: this.todos.filter(t => t.selected).map(t => t.id),+            setAssignee: this.setAssignee,+            addTags: this.addTags.split(",").map(s => s.trim()).filter(s => !!s)+              .map(tag => {+                return tag[0] === "#" ?+                  tag :+                  "#" + tag++              }),+            setPriority: parseInt(this.setPriority)+          }),+          success: function(data){+            this.todos.filter(function(t) {+              return t.selected+            }.bind(this))+              .map(function(t) {+                if (this.setAssignee) {+                  t.assignee = this.setAssignee+                }+                if (this.addTags) {+                  t.tags = t.tags.concat(this.addTags)+                }+                if (this.setPriority) {+                  t.priority = parseInt(this.setPriority)+                }+             }.bind(this))+            this.closeModal()+            this.todos.map(t => {+              t.selected = false+            })+          }.bind(this),+          error: console.log+        })+      }+    }+  })+})+
+ web/js/jquery-3.3.1.min.js view
@@ -0,0 +1,2 @@+/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
+ web/js/vue.js view
@@ -0,0 +1,10947 @@+/*!+ * Vue.js v2.5.17+ * (c) 2014-2018 Evan You+ * Released under the MIT License.+ */+(function (global, factory) {+	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :+	typeof define === 'function' && define.amd ? define(factory) :+	(global.Vue = factory());+}(this, (function () { 'use strict';++/*  */++var emptyObject = Object.freeze({});++// these helpers produces better vm code in JS engines due to their+// explicitness and function inlining+function isUndef (v) {+  return v === undefined || v === null+}++function isDef (v) {+  return v !== undefined && v !== null+}++function isTrue (v) {+  return v === true+}++function isFalse (v) {+  return v === false+}++/**+ * Check if value is primitive+ */+function isPrimitive (value) {+  return (+    typeof value === 'string' ||+    typeof value === 'number' ||+    // $flow-disable-line+    typeof value === 'symbol' ||+    typeof value === 'boolean'+  )+}++/**+ * Quick object check - this is primarily used to tell+ * Objects from primitive values when we know the value+ * is a JSON-compliant type.+ */+function isObject (obj) {+  return obj !== null && typeof obj === 'object'+}++/**+ * Get the raw type string of a value e.g. [object Object]+ */+var _toString = Object.prototype.toString;++function toRawType (value) {+  return _toString.call(value).slice(8, -1)+}++/**+ * Strict object type check. Only returns true+ * for plain JavaScript objects.+ */+function isPlainObject (obj) {+  return _toString.call(obj) === '[object Object]'+}++function isRegExp (v) {+  return _toString.call(v) === '[object RegExp]'+}++/**+ * Check if val is a valid array index.+ */+function isValidArrayIndex (val) {+  var n = parseFloat(String(val));+  return n >= 0 && Math.floor(n) === n && isFinite(val)+}++/**+ * Convert a value to a string that is actually rendered.+ */+function toString (val) {+  return val == null+    ? ''+    : typeof val === 'object'+      ? JSON.stringify(val, null, 2)+      : String(val)+}++/**+ * Convert a input value to a number for persistence.+ * If the conversion fails, return original string.+ */+function toNumber (val) {+  var n = parseFloat(val);+  return isNaN(n) ? val : n+}++/**+ * Make a map and return a function for checking if a key+ * is in that map.+ */+function makeMap (+  str,+  expectsLowerCase+) {+  var map = Object.create(null);+  var list = str.split(',');+  for (var i = 0; i < list.length; i++) {+    map[list[i]] = true;+  }+  return expectsLowerCase+    ? function (val) { return map[val.toLowerCase()]; }+    : function (val) { return map[val]; }+}++/**+ * Check if a tag is a built-in tag.+ */+var isBuiltInTag = makeMap('slot,component', true);++/**+ * Check if a attribute is a reserved attribute.+ */+var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');++/**+ * Remove an item from an array+ */+function remove (arr, item) {+  if (arr.length) {+    var index = arr.indexOf(item);+    if (index > -1) {+      return arr.splice(index, 1)+    }+  }+}++/**+ * Check whether the object has the property.+ */+var hasOwnProperty = Object.prototype.hasOwnProperty;+function hasOwn (obj, key) {+  return hasOwnProperty.call(obj, key)+}++/**+ * Create a cached version of a pure function.+ */+function cached (fn) {+  var cache = Object.create(null);+  return (function cachedFn (str) {+    var hit = cache[str];+    return hit || (cache[str] = fn(str))+  })+}++/**+ * Camelize a hyphen-delimited string.+ */+var camelizeRE = /-(\w)/g;+var camelize = cached(function (str) {+  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })+});++/**+ * Capitalize a string.+ */+var capitalize = cached(function (str) {+  return str.charAt(0).toUpperCase() + str.slice(1)+});++/**+ * Hyphenate a camelCase string.+ */+var hyphenateRE = /\B([A-Z])/g;+var hyphenate = cached(function (str) {+  return str.replace(hyphenateRE, '-$1').toLowerCase()+});++/**+ * Simple bind polyfill for environments that do not support it... e.g.+ * PhantomJS 1.x. Technically we don't need this anymore since native bind is+ * now more performant in most browsers, but removing it would be breaking for+ * code that was able to run in PhantomJS 1.x, so this must be kept for+ * backwards compatibility.+ */++/* istanbul ignore next */+function polyfillBind (fn, ctx) {+  function boundFn (a) {+    var l = arguments.length;+    return l+      ? l > 1+        ? fn.apply(ctx, arguments)+        : fn.call(ctx, a)+      : fn.call(ctx)+  }++  boundFn._length = fn.length;+  return boundFn+}++function nativeBind (fn, ctx) {+  return fn.bind(ctx)+}++var bind = Function.prototype.bind+  ? nativeBind+  : polyfillBind;++/**+ * Convert an Array-like object to a real Array.+ */+function toArray (list, start) {+  start = start || 0;+  var i = list.length - start;+  var ret = new Array(i);+  while (i--) {+    ret[i] = list[i + start];+  }+  return ret+}++/**+ * Mix properties into target object.+ */+function extend (to, _from) {+  for (var key in _from) {+    to[key] = _from[key];+  }+  return to+}++/**+ * Merge an Array of Objects into a single Object.+ */+function toObject (arr) {+  var res = {};+  for (var i = 0; i < arr.length; i++) {+    if (arr[i]) {+      extend(res, arr[i]);+    }+  }+  return res+}++/**+ * Perform no operation.+ * Stubbing args to make Flow happy without leaving useless transpiled code+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)+ */+function noop (a, b, c) {}++/**+ * Always return false.+ */+var no = function (a, b, c) { return false; };++/**+ * Return same value+ */+var identity = function (_) { return _; };++/**+ * Generate a static keys string from compiler modules.+ */+function genStaticKeys (modules) {+  return modules.reduce(function (keys, m) {+    return keys.concat(m.staticKeys || [])+  }, []).join(',')+}++/**+ * Check if two values are loosely equal - that is,+ * if they are plain objects, do they have the same shape?+ */+function looseEqual (a, b) {+  if (a === b) { return true }+  var isObjectA = isObject(a);+  var isObjectB = isObject(b);+  if (isObjectA && isObjectB) {+    try {+      var isArrayA = Array.isArray(a);+      var isArrayB = Array.isArray(b);+      if (isArrayA && isArrayB) {+        return a.length === b.length && a.every(function (e, i) {+          return looseEqual(e, b[i])+        })+      } else if (!isArrayA && !isArrayB) {+        var keysA = Object.keys(a);+        var keysB = Object.keys(b);+        return keysA.length === keysB.length && keysA.every(function (key) {+          return looseEqual(a[key], b[key])+        })+      } else {+        /* istanbul ignore next */+        return false+      }+    } catch (e) {+      /* istanbul ignore next */+      return false+    }+  } else if (!isObjectA && !isObjectB) {+    return String(a) === String(b)+  } else {+    return false+  }+}++function looseIndexOf (arr, val) {+  for (var i = 0; i < arr.length; i++) {+    if (looseEqual(arr[i], val)) { return i }+  }+  return -1+}++/**+ * Ensure a function is called only once.+ */+function once (fn) {+  var called = false;+  return function () {+    if (!called) {+      called = true;+      fn.apply(this, arguments);+    }+  }+}++var SSR_ATTR = 'data-server-rendered';++var ASSET_TYPES = [+  'component',+  'directive',+  'filter'+];++var LIFECYCLE_HOOKS = [+  'beforeCreate',+  'created',+  'beforeMount',+  'mounted',+  'beforeUpdate',+  'updated',+  'beforeDestroy',+  'destroyed',+  'activated',+  'deactivated',+  'errorCaptured'+];++/*  */++var config = ({+  /**+   * Option merge strategies (used in core/util/options)+   */+  // $flow-disable-line+  optionMergeStrategies: Object.create(null),++  /**+   * Whether to suppress warnings.+   */+  silent: false,++  /**+   * Show production mode tip message on boot?+   */+  productionTip: "development" !== 'production',++  /**+   * Whether to enable devtools+   */+  devtools: "development" !== 'production',++  /**+   * Whether to record perf+   */+  performance: false,++  /**+   * Error handler for watcher errors+   */+  errorHandler: null,++  /**+   * Warn handler for watcher warns+   */+  warnHandler: null,++  /**+   * Ignore certain custom elements+   */+  ignoredElements: [],++  /**+   * Custom user key aliases for v-on+   */+  // $flow-disable-line+  keyCodes: Object.create(null),++  /**+   * Check if a tag is reserved so that it cannot be registered as a+   * component. This is platform-dependent and may be overwritten.+   */+  isReservedTag: no,++  /**+   * Check if an attribute is reserved so that it cannot be used as a component+   * prop. This is platform-dependent and may be overwritten.+   */+  isReservedAttr: no,++  /**+   * Check if a tag is an unknown element.+   * Platform-dependent.+   */+  isUnknownElement: no,++  /**+   * Get the namespace of an element+   */+  getTagNamespace: noop,++  /**+   * Parse the real tag name for the specific platform.+   */+  parsePlatformTagName: identity,++  /**+   * Check if an attribute must be bound using property, e.g. value+   * Platform-dependent.+   */+  mustUseProp: no,++  /**+   * Exposed for legacy reasons+   */+  _lifecycleHooks: LIFECYCLE_HOOKS+})++/*  */++/**+ * Check if a string starts with $ or _+ */+function isReserved (str) {+  var c = (str + '').charCodeAt(0);+  return c === 0x24 || c === 0x5F+}++/**+ * Define a property.+ */+function def (obj, key, val, enumerable) {+  Object.defineProperty(obj, key, {+    value: val,+    enumerable: !!enumerable,+    writable: true,+    configurable: true+  });+}++/**+ * Parse simple path.+ */+var bailRE = /[^\w.$]/;+function parsePath (path) {+  if (bailRE.test(path)) {+    return+  }+  var segments = path.split('.');+  return function (obj) {+    for (var i = 0; i < segments.length; i++) {+      if (!obj) { return }+      obj = obj[segments[i]];+    }+    return obj+  }+}++/*  */++// can we use __proto__?+var hasProto = '__proto__' in {};++// Browser environment sniffing+var inBrowser = typeof window !== 'undefined';+var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;+var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();+var UA = inBrowser && window.navigator.userAgent.toLowerCase();+var isIE = UA && /msie|trident/.test(UA);+var isIE9 = UA && UA.indexOf('msie 9.0') > 0;+var isEdge = UA && UA.indexOf('edge/') > 0;+var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');+var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');+var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;++// Firefox has a "watch" function on Object.prototype...+var nativeWatch = ({}).watch;++var supportsPassive = false;+if (inBrowser) {+  try {+    var opts = {};+    Object.defineProperty(opts, 'passive', ({+      get: function get () {+        /* istanbul ignore next */+        supportsPassive = true;+      }+    })); // https://github.com/facebook/flow/issues/285+    window.addEventListener('test-passive', null, opts);+  } catch (e) {}+}++// this needs to be lazy-evaled because vue may be required before+// vue-server-renderer can set VUE_ENV+var _isServer;+var isServerRendering = function () {+  if (_isServer === undefined) {+    /* istanbul ignore if */+    if (!inBrowser && !inWeex && typeof global !== 'undefined') {+      // detect presence of vue-server-renderer and avoid+      // Webpack shimming the process+      _isServer = global['process'].env.VUE_ENV === 'server';+    } else {+      _isServer = false;+    }+  }+  return _isServer+};++// detect devtools+var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;++/* istanbul ignore next */+function isNative (Ctor) {+  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())+}++var hasSymbol =+  typeof Symbol !== 'undefined' && isNative(Symbol) &&+  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);++var _Set;+/* istanbul ignore if */ // $flow-disable-line+if (typeof Set !== 'undefined' && isNative(Set)) {+  // use native Set when available.+  _Set = Set;+} else {+  // a non-standard Set polyfill that only works with primitive keys.+  _Set = (function () {+    function Set () {+      this.set = Object.create(null);+    }+    Set.prototype.has = function has (key) {+      return this.set[key] === true+    };+    Set.prototype.add = function add (key) {+      this.set[key] = true;+    };+    Set.prototype.clear = function clear () {+      this.set = Object.create(null);+    };++    return Set;+  }());+}++/*  */++var warn = noop;+var tip = noop;+var generateComponentTrace = (noop); // work around flow check+var formatComponentName = (noop);++{+  var hasConsole = typeof console !== 'undefined';+  var classifyRE = /(?:^|[-_])(\w)/g;+  var classify = function (str) { return str+    .replace(classifyRE, function (c) { return c.toUpperCase(); })+    .replace(/[-_]/g, ''); };++  warn = function (msg, vm) {+    var trace = vm ? generateComponentTrace(vm) : '';++    if (config.warnHandler) {+      config.warnHandler.call(null, msg, vm, trace);+    } else if (hasConsole && (!config.silent)) {+      console.error(("[Vue warn]: " + msg + trace));+    }+  };++  tip = function (msg, vm) {+    if (hasConsole && (!config.silent)) {+      console.warn("[Vue tip]: " + msg + (+        vm ? generateComponentTrace(vm) : ''+      ));+    }+  };++  formatComponentName = function (vm, includeFile) {+    if (vm.$root === vm) {+      return '<Root>'+    }+    var options = typeof vm === 'function' && vm.cid != null+      ? vm.options+      : vm._isVue+        ? vm.$options || vm.constructor.options+        : vm || {};+    var name = options.name || options._componentTag;+    var file = options.__file;+    if (!name && file) {+      var match = file.match(/([^/\\]+)\.vue$/);+      name = match && match[1];+    }++    return (+      (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") ++      (file && includeFile !== false ? (" at " + file) : '')+    )+  };++  var repeat = function (str, n) {+    var res = '';+    while (n) {+      if (n % 2 === 1) { res += str; }+      if (n > 1) { str += str; }+      n >>= 1;+    }+    return res+  };++  generateComponentTrace = function (vm) {+    if (vm._isVue && vm.$parent) {+      var tree = [];+      var currentRecursiveSequence = 0;+      while (vm) {+        if (tree.length > 0) {+          var last = tree[tree.length - 1];+          if (last.constructor === vm.constructor) {+            currentRecursiveSequence++;+            vm = vm.$parent;+            continue+          } else if (currentRecursiveSequence > 0) {+            tree[tree.length - 1] = [last, currentRecursiveSequence];+            currentRecursiveSequence = 0;+          }+        }+        tree.push(vm);+        vm = vm.$parent;+      }+      return '\n\nfound in\n\n' + tree+        .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)+            ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")+            : formatComponentName(vm))); })+        .join('\n')+    } else {+      return ("\n\n(found in " + (formatComponentName(vm)) + ")")+    }+  };+}++/*  */+++var uid = 0;++/**+ * A dep is an observable that can have multiple+ * directives subscribing to it.+ */+var Dep = function Dep () {+  this.id = uid++;+  this.subs = [];+};++Dep.prototype.addSub = function addSub (sub) {+  this.subs.push(sub);+};++Dep.prototype.removeSub = function removeSub (sub) {+  remove(this.subs, sub);+};++Dep.prototype.depend = function depend () {+  if (Dep.target) {+    Dep.target.addDep(this);+  }+};++Dep.prototype.notify = function notify () {+  // stabilize the subscriber list first+  var subs = this.subs.slice();+  for (var i = 0, l = subs.length; i < l; i++) {+    subs[i].update();+  }+};++// the current target watcher being evaluated.+// this is globally unique because there could be only one+// watcher being evaluated at any time.+Dep.target = null;+var targetStack = [];++function pushTarget (_target) {+  if (Dep.target) { targetStack.push(Dep.target); }+  Dep.target = _target;+}++function popTarget () {+  Dep.target = targetStack.pop();+}++/*  */++var VNode = function VNode (+  tag,+  data,+  children,+  text,+  elm,+  context,+  componentOptions,+  asyncFactory+) {+  this.tag = tag;+  this.data = data;+  this.children = children;+  this.text = text;+  this.elm = elm;+  this.ns = undefined;+  this.context = context;+  this.fnContext = undefined;+  this.fnOptions = undefined;+  this.fnScopeId = undefined;+  this.key = data && data.key;+  this.componentOptions = componentOptions;+  this.componentInstance = undefined;+  this.parent = undefined;+  this.raw = false;+  this.isStatic = false;+  this.isRootInsert = true;+  this.isComment = false;+  this.isCloned = false;+  this.isOnce = false;+  this.asyncFactory = asyncFactory;+  this.asyncMeta = undefined;+  this.isAsyncPlaceholder = false;+};++var prototypeAccessors = { child: { configurable: true } };++// DEPRECATED: alias for componentInstance for backwards compat.+/* istanbul ignore next */+prototypeAccessors.child.get = function () {+  return this.componentInstance+};++Object.defineProperties( VNode.prototype, prototypeAccessors );++var createEmptyVNode = function (text) {+  if ( text === void 0 ) text = '';++  var node = new VNode();+  node.text = text;+  node.isComment = true;+  return node+};++function createTextVNode (val) {+  return new VNode(undefined, undefined, undefined, String(val))+}++// optimized shallow clone+// used for static nodes and slot nodes because they may be reused across+// multiple renders, cloning them avoids errors when DOM manipulations rely+// on their elm reference.+function cloneVNode (vnode) {+  var cloned = new VNode(+    vnode.tag,+    vnode.data,+    vnode.children,+    vnode.text,+    vnode.elm,+    vnode.context,+    vnode.componentOptions,+    vnode.asyncFactory+  );+  cloned.ns = vnode.ns;+  cloned.isStatic = vnode.isStatic;+  cloned.key = vnode.key;+  cloned.isComment = vnode.isComment;+  cloned.fnContext = vnode.fnContext;+  cloned.fnOptions = vnode.fnOptions;+  cloned.fnScopeId = vnode.fnScopeId;+  cloned.isCloned = true;+  return cloned+}++/*+ * not type checking this file because flow doesn't play well with+ * dynamically accessing methods on Array prototype+ */++var arrayProto = Array.prototype;+var arrayMethods = Object.create(arrayProto);++var methodsToPatch = [+  'push',+  'pop',+  'shift',+  'unshift',+  'splice',+  'sort',+  'reverse'+];++/**+ * Intercept mutating methods and emit events+ */+methodsToPatch.forEach(function (method) {+  // cache original method+  var original = arrayProto[method];+  def(arrayMethods, method, function mutator () {+    var args = [], len = arguments.length;+    while ( len-- ) args[ len ] = arguments[ len ];++    var result = original.apply(this, args);+    var ob = this.__ob__;+    var inserted;+    switch (method) {+      case 'push':+      case 'unshift':+        inserted = args;+        break+      case 'splice':+        inserted = args.slice(2);+        break+    }+    if (inserted) { ob.observeArray(inserted); }+    // notify change+    ob.dep.notify();+    return result+  });+});++/*  */++var arrayKeys = Object.getOwnPropertyNames(arrayMethods);++/**+ * In some cases we may want to disable observation inside a component's+ * update computation.+ */+var shouldObserve = true;++function toggleObserving (value) {+  shouldObserve = value;+}++/**+ * Observer class that is attached to each observed+ * object. Once attached, the observer converts the target+ * object's property keys into getter/setters that+ * collect dependencies and dispatch updates.+ */+var Observer = function Observer (value) {+  this.value = value;+  this.dep = new Dep();+  this.vmCount = 0;+  def(value, '__ob__', this);+  if (Array.isArray(value)) {+    var augment = hasProto+      ? protoAugment+      : copyAugment;+    augment(value, arrayMethods, arrayKeys);+    this.observeArray(value);+  } else {+    this.walk(value);+  }+};++/**+ * Walk through each property and convert them into+ * getter/setters. This method should only be called when+ * value type is Object.+ */+Observer.prototype.walk = function walk (obj) {+  var keys = Object.keys(obj);+  for (var i = 0; i < keys.length; i++) {+    defineReactive(obj, keys[i]);+  }+};++/**+ * Observe a list of Array items.+ */+Observer.prototype.observeArray = function observeArray (items) {+  for (var i = 0, l = items.length; i < l; i++) {+    observe(items[i]);+  }+};++// helpers++/**+ * Augment an target Object or Array by intercepting+ * the prototype chain using __proto__+ */+function protoAugment (target, src, keys) {+  /* eslint-disable no-proto */+  target.__proto__ = src;+  /* eslint-enable no-proto */+}++/**+ * Augment an target Object or Array by defining+ * hidden properties.+ */+/* istanbul ignore next */+function copyAugment (target, src, keys) {+  for (var i = 0, l = keys.length; i < l; i++) {+    var key = keys[i];+    def(target, key, src[key]);+  }+}++/**+ * Attempt to create an observer instance for a value,+ * returns the new observer if successfully observed,+ * or the existing observer if the value already has one.+ */+function observe (value, asRootData) {+  if (!isObject(value) || value instanceof VNode) {+    return+  }+  var ob;+  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {+    ob = value.__ob__;+  } else if (+    shouldObserve &&+    !isServerRendering() &&+    (Array.isArray(value) || isPlainObject(value)) &&+    Object.isExtensible(value) &&+    !value._isVue+  ) {+    ob = new Observer(value);+  }+  if (asRootData && ob) {+    ob.vmCount++;+  }+  return ob+}++/**+ * Define a reactive property on an Object.+ */+function defineReactive (+  obj,+  key,+  val,+  customSetter,+  shallow+) {+  var dep = new Dep();++  var property = Object.getOwnPropertyDescriptor(obj, key);+  if (property && property.configurable === false) {+    return+  }++  // cater for pre-defined getter/setters+  var getter = property && property.get;+  if (!getter && arguments.length === 2) {+    val = obj[key];+  }+  var setter = property && property.set;++  var childOb = !shallow && observe(val);+  Object.defineProperty(obj, key, {+    enumerable: true,+    configurable: true,+    get: function reactiveGetter () {+      var value = getter ? getter.call(obj) : val;+      if (Dep.target) {+        dep.depend();+        if (childOb) {+          childOb.dep.depend();+          if (Array.isArray(value)) {+            dependArray(value);+          }+        }+      }+      return value+    },+    set: function reactiveSetter (newVal) {+      var value = getter ? getter.call(obj) : val;+      /* eslint-disable no-self-compare */+      if (newVal === value || (newVal !== newVal && value !== value)) {+        return+      }+      /* eslint-enable no-self-compare */+      if ("development" !== 'production' && customSetter) {+        customSetter();+      }+      if (setter) {+        setter.call(obj, newVal);+      } else {+        val = newVal;+      }+      childOb = !shallow && observe(newVal);+      dep.notify();+    }+  });+}++/**+ * Set a property on an object. Adds the new property and+ * triggers change notification if the property doesn't+ * already exist.+ */+function set (target, key, val) {+  if ("development" !== 'production' &&+    (isUndef(target) || isPrimitive(target))+  ) {+    warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));+  }+  if (Array.isArray(target) && isValidArrayIndex(key)) {+    target.length = Math.max(target.length, key);+    target.splice(key, 1, val);+    return val+  }+  if (key in target && !(key in Object.prototype)) {+    target[key] = val;+    return val+  }+  var ob = (target).__ob__;+  if (target._isVue || (ob && ob.vmCount)) {+    "development" !== 'production' && warn(+      'Avoid adding reactive properties to a Vue instance or its root $data ' ++      'at runtime - declare it upfront in the data option.'+    );+    return val+  }+  if (!ob) {+    target[key] = val;+    return val+  }+  defineReactive(ob.value, key, val);+  ob.dep.notify();+  return val+}++/**+ * Delete a property and trigger change if necessary.+ */+function del (target, key) {+  if ("development" !== 'production' &&+    (isUndef(target) || isPrimitive(target))+  ) {+    warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));+  }+  if (Array.isArray(target) && isValidArrayIndex(key)) {+    target.splice(key, 1);+    return+  }+  var ob = (target).__ob__;+  if (target._isVue || (ob && ob.vmCount)) {+    "development" !== 'production' && warn(+      'Avoid deleting properties on a Vue instance or its root $data ' ++      '- just set it to null.'+    );+    return+  }+  if (!hasOwn(target, key)) {+    return+  }+  delete target[key];+  if (!ob) {+    return+  }+  ob.dep.notify();+}++/**+ * Collect dependencies on array elements when the array is touched, since+ * we cannot intercept array element access like property getters.+ */+function dependArray (value) {+  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {+    e = value[i];+    e && e.__ob__ && e.__ob__.dep.depend();+    if (Array.isArray(e)) {+      dependArray(e);+    }+  }+}++/*  */++/**+ * Option overwriting strategies are functions that handle+ * how to merge a parent option value and a child option+ * value into the final value.+ */+var strats = config.optionMergeStrategies;++/**+ * Options with restrictions+ */+{+  strats.el = strats.propsData = function (parent, child, vm, key) {+    if (!vm) {+      warn(+        "option \"" + key + "\" can only be used during instance " ++        'creation with the `new` keyword.'+      );+    }+    return defaultStrat(parent, child)+  };+}++/**+ * Helper that recursively merges two data objects together.+ */+function mergeData (to, from) {+  if (!from) { return to }+  var key, toVal, fromVal;+  var keys = Object.keys(from);+  for (var i = 0; i < keys.length; i++) {+    key = keys[i];+    toVal = to[key];+    fromVal = from[key];+    if (!hasOwn(to, key)) {+      set(to, key, fromVal);+    } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {+      mergeData(toVal, fromVal);+    }+  }+  return to+}++/**+ * Data+ */+function mergeDataOrFn (+  parentVal,+  childVal,+  vm+) {+  if (!vm) {+    // in a Vue.extend merge, both should be functions+    if (!childVal) {+      return parentVal+    }+    if (!parentVal) {+      return childVal+    }+    // when parentVal & childVal are both present,+    // we need to return a function that returns the+    // merged result of both functions... no need to+    // check if parentVal is a function here because+    // it has to be a function to pass previous merges.+    return function mergedDataFn () {+      return mergeData(+        typeof childVal === 'function' ? childVal.call(this, this) : childVal,+        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal+      )+    }+  } else {+    return function mergedInstanceDataFn () {+      // instance merge+      var instanceData = typeof childVal === 'function'+        ? childVal.call(vm, vm)+        : childVal;+      var defaultData = typeof parentVal === 'function'+        ? parentVal.call(vm, vm)+        : parentVal;+      if (instanceData) {+        return mergeData(instanceData, defaultData)+      } else {+        return defaultData+      }+    }+  }+}++strats.data = function (+  parentVal,+  childVal,+  vm+) {+  if (!vm) {+    if (childVal && typeof childVal !== 'function') {+      "development" !== 'production' && warn(+        'The "data" option should be a function ' ++        'that returns a per-instance value in component ' ++        'definitions.',+        vm+      );++      return parentVal+    }+    return mergeDataOrFn(parentVal, childVal)+  }++  return mergeDataOrFn(parentVal, childVal, vm)+};++/**+ * Hooks and props are merged as arrays.+ */+function mergeHook (+  parentVal,+  childVal+) {+  return childVal+    ? parentVal+      ? parentVal.concat(childVal)+      : Array.isArray(childVal)+        ? childVal+        : [childVal]+    : parentVal+}++LIFECYCLE_HOOKS.forEach(function (hook) {+  strats[hook] = mergeHook;+});++/**+ * Assets+ *+ * When a vm is present (instance creation), we need to do+ * a three-way merge between constructor options, instance+ * options and parent options.+ */+function mergeAssets (+  parentVal,+  childVal,+  vm,+  key+) {+  var res = Object.create(parentVal || null);+  if (childVal) {+    "development" !== 'production' && assertObjectType(key, childVal, vm);+    return extend(res, childVal)+  } else {+    return res+  }+}++ASSET_TYPES.forEach(function (type) {+  strats[type + 's'] = mergeAssets;+});++/**+ * Watchers.+ *+ * Watchers hashes should not overwrite one+ * another, so we merge them as arrays.+ */+strats.watch = function (+  parentVal,+  childVal,+  vm,+  key+) {+  // work around Firefox's Object.prototype.watch...+  if (parentVal === nativeWatch) { parentVal = undefined; }+  if (childVal === nativeWatch) { childVal = undefined; }+  /* istanbul ignore if */+  if (!childVal) { return Object.create(parentVal || null) }+  {+    assertObjectType(key, childVal, vm);+  }+  if (!parentVal) { return childVal }+  var ret = {};+  extend(ret, parentVal);+  for (var key$1 in childVal) {+    var parent = ret[key$1];+    var child = childVal[key$1];+    if (parent && !Array.isArray(parent)) {+      parent = [parent];+    }+    ret[key$1] = parent+      ? parent.concat(child)+      : Array.isArray(child) ? child : [child];+  }+  return ret+};++/**+ * Other object hashes.+ */+strats.props =+strats.methods =+strats.inject =+strats.computed = function (+  parentVal,+  childVal,+  vm,+  key+) {+  if (childVal && "development" !== 'production') {+    assertObjectType(key, childVal, vm);+  }+  if (!parentVal) { return childVal }+  var ret = Object.create(null);+  extend(ret, parentVal);+  if (childVal) { extend(ret, childVal); }+  return ret+};+strats.provide = mergeDataOrFn;++/**+ * Default strategy.+ */+var defaultStrat = function (parentVal, childVal) {+  return childVal === undefined+    ? parentVal+    : childVal+};++/**+ * Validate component names+ */+function checkComponents (options) {+  for (var key in options.components) {+    validateComponentName(key);+  }+}++function validateComponentName (name) {+  if (!/^[a-zA-Z][\w-]*$/.test(name)) {+    warn(+      'Invalid component name: "' + name + '". Component names ' ++      'can only contain alphanumeric characters and the hyphen, ' ++      'and must start with a letter.'+    );+  }+  if (isBuiltInTag(name) || config.isReservedTag(name)) {+    warn(+      'Do not use built-in or reserved HTML elements as component ' ++      'id: ' + name+    );+  }+}++/**+ * Ensure all props option syntax are normalized into the+ * Object-based format.+ */+function normalizeProps (options, vm) {+  var props = options.props;+  if (!props) { return }+  var res = {};+  var i, val, name;+  if (Array.isArray(props)) {+    i = props.length;+    while (i--) {+      val = props[i];+      if (typeof val === 'string') {+        name = camelize(val);+        res[name] = { type: null };+      } else {+        warn('props must be strings when using array syntax.');+      }+    }+  } else if (isPlainObject(props)) {+    for (var key in props) {+      val = props[key];+      name = camelize(key);+      res[name] = isPlainObject(val)+        ? val+        : { type: val };+    }+  } else {+    warn(+      "Invalid value for option \"props\": expected an Array or an Object, " ++      "but got " + (toRawType(props)) + ".",+      vm+    );+  }+  options.props = res;+}++/**+ * Normalize all injections into Object-based format+ */+function normalizeInject (options, vm) {+  var inject = options.inject;+  if (!inject) { return }+  var normalized = options.inject = {};+  if (Array.isArray(inject)) {+    for (var i = 0; i < inject.length; i++) {+      normalized[inject[i]] = { from: inject[i] };+    }+  } else if (isPlainObject(inject)) {+    for (var key in inject) {+      var val = inject[key];+      normalized[key] = isPlainObject(val)+        ? extend({ from: key }, val)+        : { from: val };+    }+  } else {+    warn(+      "Invalid value for option \"inject\": expected an Array or an Object, " ++      "but got " + (toRawType(inject)) + ".",+      vm+    );+  }+}++/**+ * Normalize raw function directives into object format.+ */+function normalizeDirectives (options) {+  var dirs = options.directives;+  if (dirs) {+    for (var key in dirs) {+      var def = dirs[key];+      if (typeof def === 'function') {+        dirs[key] = { bind: def, update: def };+      }+    }+  }+}++function assertObjectType (name, value, vm) {+  if (!isPlainObject(value)) {+    warn(+      "Invalid value for option \"" + name + "\": expected an Object, " ++      "but got " + (toRawType(value)) + ".",+      vm+    );+  }+}++/**+ * Merge two option objects into a new one.+ * Core utility used in both instantiation and inheritance.+ */+function mergeOptions (+  parent,+  child,+  vm+) {+  {+    checkComponents(child);+  }++  if (typeof child === 'function') {+    child = child.options;+  }++  normalizeProps(child, vm);+  normalizeInject(child, vm);+  normalizeDirectives(child);+  var extendsFrom = child.extends;+  if (extendsFrom) {+    parent = mergeOptions(parent, extendsFrom, vm);+  }+  if (child.mixins) {+    for (var i = 0, l = child.mixins.length; i < l; i++) {+      parent = mergeOptions(parent, child.mixins[i], vm);+    }+  }+  var options = {};+  var key;+  for (key in parent) {+    mergeField(key);+  }+  for (key in child) {+    if (!hasOwn(parent, key)) {+      mergeField(key);+    }+  }+  function mergeField (key) {+    var strat = strats[key] || defaultStrat;+    options[key] = strat(parent[key], child[key], vm, key);+  }+  return options+}++/**+ * Resolve an asset.+ * This function is used because child instances need access+ * to assets defined in its ancestor chain.+ */+function resolveAsset (+  options,+  type,+  id,+  warnMissing+) {+  /* istanbul ignore if */+  if (typeof id !== 'string') {+    return+  }+  var assets = options[type];+  // check local registration variations first+  if (hasOwn(assets, id)) { return assets[id] }+  var camelizedId = camelize(id);+  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }+  var PascalCaseId = capitalize(camelizedId);+  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }+  // fallback to prototype chain+  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];+  if ("development" !== 'production' && warnMissing && !res) {+    warn(+      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,+      options+    );+  }+  return res+}++/*  */++function validateProp (+  key,+  propOptions,+  propsData,+  vm+) {+  var prop = propOptions[key];+  var absent = !hasOwn(propsData, key);+  var value = propsData[key];+  // boolean casting+  var booleanIndex = getTypeIndex(Boolean, prop.type);+  if (booleanIndex > -1) {+    if (absent && !hasOwn(prop, 'default')) {+      value = false;+    } else if (value === '' || value === hyphenate(key)) {+      // only cast empty string / same name to boolean if+      // boolean has higher priority+      var stringIndex = getTypeIndex(String, prop.type);+      if (stringIndex < 0 || booleanIndex < stringIndex) {+        value = true;+      }+    }+  }+  // check default value+  if (value === undefined) {+    value = getPropDefaultValue(vm, prop, key);+    // since the default value is a fresh copy,+    // make sure to observe it.+    var prevShouldObserve = shouldObserve;+    toggleObserving(true);+    observe(value);+    toggleObserving(prevShouldObserve);+  }+  {+    assertProp(prop, key, value, vm, absent);+  }+  return value+}++/**+ * Get the default value of a prop.+ */+function getPropDefaultValue (vm, prop, key) {+  // no default, return undefined+  if (!hasOwn(prop, 'default')) {+    return undefined+  }+  var def = prop.default;+  // warn against non-factory defaults for Object & Array+  if ("development" !== 'production' && isObject(def)) {+    warn(+      'Invalid default value for prop "' + key + '": ' ++      'Props with type Object/Array must use a factory function ' ++      'to return the default value.',+      vm+    );+  }+  // the raw prop value was also undefined from previous render,+  // return previous default value to avoid unnecessary watcher trigger+  if (vm && vm.$options.propsData &&+    vm.$options.propsData[key] === undefined &&+    vm._props[key] !== undefined+  ) {+    return vm._props[key]+  }+  // call factory function for non-Function types+  // a value is Function if its prototype is function even across different execution context+  return typeof def === 'function' && getType(prop.type) !== 'Function'+    ? def.call(vm)+    : def+}++/**+ * Assert whether a prop is valid.+ */+function assertProp (+  prop,+  name,+  value,+  vm,+  absent+) {+  if (prop.required && absent) {+    warn(+      'Missing required prop: "' + name + '"',+      vm+    );+    return+  }+  if (value == null && !prop.required) {+    return+  }+  var type = prop.type;+  var valid = !type || type === true;+  var expectedTypes = [];+  if (type) {+    if (!Array.isArray(type)) {+      type = [type];+    }+    for (var i = 0; i < type.length && !valid; i++) {+      var assertedType = assertType(value, type[i]);+      expectedTypes.push(assertedType.expectedType || '');+      valid = assertedType.valid;+    }+  }+  if (!valid) {+    warn(+      "Invalid prop: type check failed for prop \"" + name + "\"." ++      " Expected " + (expectedTypes.map(capitalize).join(', ')) ++      ", got " + (toRawType(value)) + ".",+      vm+    );+    return+  }+  var validator = prop.validator;+  if (validator) {+    if (!validator(value)) {+      warn(+        'Invalid prop: custom validator check failed for prop "' + name + '".',+        vm+      );+    }+  }+}++var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;++function assertType (value, type) {+  var valid;+  var expectedType = getType(type);+  if (simpleCheckRE.test(expectedType)) {+    var t = typeof value;+    valid = t === expectedType.toLowerCase();+    // for primitive wrapper objects+    if (!valid && t === 'object') {+      valid = value instanceof type;+    }+  } else if (expectedType === 'Object') {+    valid = isPlainObject(value);+  } else if (expectedType === 'Array') {+    valid = Array.isArray(value);+  } else {+    valid = value instanceof type;+  }+  return {+    valid: valid,+    expectedType: expectedType+  }+}++/**+ * Use function string name to check built-in types,+ * because a simple equality check will fail when running+ * across different vms / iframes.+ */+function getType (fn) {+  var match = fn && fn.toString().match(/^\s*function (\w+)/);+  return match ? match[1] : ''+}++function isSameType (a, b) {+  return getType(a) === getType(b)+}++function getTypeIndex (type, expectedTypes) {+  if (!Array.isArray(expectedTypes)) {+    return isSameType(expectedTypes, type) ? 0 : -1+  }+  for (var i = 0, len = expectedTypes.length; i < len; i++) {+    if (isSameType(expectedTypes[i], type)) {+      return i+    }+  }+  return -1+}++/*  */++function handleError (err, vm, info) {+  if (vm) {+    var cur = vm;+    while ((cur = cur.$parent)) {+      var hooks = cur.$options.errorCaptured;+      if (hooks) {+        for (var i = 0; i < hooks.length; i++) {+          try {+            var capture = hooks[i].call(cur, err, vm, info) === false;+            if (capture) { return }+          } catch (e) {+            globalHandleError(e, cur, 'errorCaptured hook');+          }+        }+      }+    }+  }+  globalHandleError(err, vm, info);+}++function globalHandleError (err, vm, info) {+  if (config.errorHandler) {+    try {+      return config.errorHandler.call(null, err, vm, info)+    } catch (e) {+      logError(e, null, 'config.errorHandler');+    }+  }+  logError(err, vm, info);+}++function logError (err, vm, info) {+  {+    warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);+  }+  /* istanbul ignore else */+  if ((inBrowser || inWeex) && typeof console !== 'undefined') {+    console.error(err);+  } else {+    throw err+  }+}++/*  */+/* globals MessageChannel */++var callbacks = [];+var pending = false;++function flushCallbacks () {+  pending = false;+  var copies = callbacks.slice(0);+  callbacks.length = 0;+  for (var i = 0; i < copies.length; i++) {+    copies[i]();+  }+}++// Here we have async deferring wrappers using both microtasks and (macro) tasks.+// In < 2.4 we used microtasks everywhere, but there are some scenarios where+// microtasks have too high a priority and fire in between supposedly+// sequential events (e.g. #4521, #6690) or even between bubbling of the same+// event (#6566). However, using (macro) tasks everywhere also has subtle problems+// when state is changed right before repaint (e.g. #6813, out-in transitions).+// Here we use microtask by default, but expose a way to force (macro) task when+// needed (e.g. in event handlers attached by v-on).+var microTimerFunc;+var macroTimerFunc;+var useMacroTask = false;++// Determine (macro) task defer implementation.+// Technically setImmediate should be the ideal choice, but it's only available+// in IE. The only polyfill that consistently queues the callback after all DOM+// events triggered in the same loop is by using MessageChannel.+/* istanbul ignore if */+if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {+  macroTimerFunc = function () {+    setImmediate(flushCallbacks);+  };+} else if (typeof MessageChannel !== 'undefined' && (+  isNative(MessageChannel) ||+  // PhantomJS+  MessageChannel.toString() === '[object MessageChannelConstructor]'+)) {+  var channel = new MessageChannel();+  var port = channel.port2;+  channel.port1.onmessage = flushCallbacks;+  macroTimerFunc = function () {+    port.postMessage(1);+  };+} else {+  /* istanbul ignore next */+  macroTimerFunc = function () {+    setTimeout(flushCallbacks, 0);+  };+}++// Determine microtask defer implementation.+/* istanbul ignore next, $flow-disable-line */+if (typeof Promise !== 'undefined' && isNative(Promise)) {+  var p = Promise.resolve();+  microTimerFunc = function () {+    p.then(flushCallbacks);+    // in problematic UIWebViews, Promise.then doesn't completely break, but+    // it can get stuck in a weird state where callbacks are pushed into the+    // microtask queue but the queue isn't being flushed, until the browser+    // needs to do some other work, e.g. handle a timer. Therefore we can+    // "force" the microtask queue to be flushed by adding an empty timer.+    if (isIOS) { setTimeout(noop); }+  };+} else {+  // fallback to macro+  microTimerFunc = macroTimerFunc;+}++/**+ * Wrap a function so that if any code inside triggers state change,+ * the changes are queued using a (macro) task instead of a microtask.+ */+function withMacroTask (fn) {+  return fn._withTask || (fn._withTask = function () {+    useMacroTask = true;+    var res = fn.apply(null, arguments);+    useMacroTask = false;+    return res+  })+}++function nextTick (cb, ctx) {+  var _resolve;+  callbacks.push(function () {+    if (cb) {+      try {+        cb.call(ctx);+      } catch (e) {+        handleError(e, ctx, 'nextTick');+      }+    } else if (_resolve) {+      _resolve(ctx);+    }+  });+  if (!pending) {+    pending = true;+    if (useMacroTask) {+      macroTimerFunc();+    } else {+      microTimerFunc();+    }+  }+  // $flow-disable-line+  if (!cb && typeof Promise !== 'undefined') {+    return new Promise(function (resolve) {+      _resolve = resolve;+    })+  }+}++/*  */++var mark;+var measure;++{+  var perf = inBrowser && window.performance;+  /* istanbul ignore if */+  if (+    perf &&+    perf.mark &&+    perf.measure &&+    perf.clearMarks &&+    perf.clearMeasures+  ) {+    mark = function (tag) { return perf.mark(tag); };+    measure = function (name, startTag, endTag) {+      perf.measure(name, startTag, endTag);+      perf.clearMarks(startTag);+      perf.clearMarks(endTag);+      perf.clearMeasures(name);+    };+  }+}++/* not type checking this file because flow doesn't play well with Proxy */++var initProxy;++{+  var allowedGlobals = makeMap(+    'Infinity,undefined,NaN,isFinite,isNaN,' ++    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' ++    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' ++    'require' // for Webpack/Browserify+  );++  var warnNonPresent = function (target, key) {+    warn(+      "Property or method \"" + key + "\" is not defined on the instance but " ++      'referenced during render. Make sure that this property is reactive, ' ++      'either in the data option, or for class-based components, by ' ++      'initializing the property. ' ++      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',+      target+    );+  };++  var hasProxy =+    typeof Proxy !== 'undefined' && isNative(Proxy);++  if (hasProxy) {+    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');+    config.keyCodes = new Proxy(config.keyCodes, {+      set: function set (target, key, value) {+        if (isBuiltInModifier(key)) {+          warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));+          return false+        } else {+          target[key] = value;+          return true+        }+      }+    });+  }++  var hasHandler = {+    has: function has (target, key) {+      var has = key in target;+      var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';+      if (!has && !isAllowed) {+        warnNonPresent(target, key);+      }+      return has || !isAllowed+    }+  };++  var getHandler = {+    get: function get (target, key) {+      if (typeof key === 'string' && !(key in target)) {+        warnNonPresent(target, key);+      }+      return target[key]+    }+  };++  initProxy = function initProxy (vm) {+    if (hasProxy) {+      // determine which proxy handler to use+      var options = vm.$options;+      var handlers = options.render && options.render._withStripped+        ? getHandler+        : hasHandler;+      vm._renderProxy = new Proxy(vm, handlers);+    } else {+      vm._renderProxy = vm;+    }+  };+}++/*  */++var seenObjects = new _Set();++/**+ * Recursively traverse an object to evoke all converted+ * getters, so that every nested property inside the object+ * is collected as a "deep" dependency.+ */+function traverse (val) {+  _traverse(val, seenObjects);+  seenObjects.clear();+}++function _traverse (val, seen) {+  var i, keys;+  var isA = Array.isArray(val);+  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {+    return+  }+  if (val.__ob__) {+    var depId = val.__ob__.dep.id;+    if (seen.has(depId)) {+      return+    }+    seen.add(depId);+  }+  if (isA) {+    i = val.length;+    while (i--) { _traverse(val[i], seen); }+  } else {+    keys = Object.keys(val);+    i = keys.length;+    while (i--) { _traverse(val[keys[i]], seen); }+  }+}++/*  */++var normalizeEvent = cached(function (name) {+  var passive = name.charAt(0) === '&';+  name = passive ? name.slice(1) : name;+  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first+  name = once$$1 ? name.slice(1) : name;+  var capture = name.charAt(0) === '!';+  name = capture ? name.slice(1) : name;+  return {+    name: name,+    once: once$$1,+    capture: capture,+    passive: passive+  }+});++function createFnInvoker (fns) {+  function invoker () {+    var arguments$1 = arguments;++    var fns = invoker.fns;+    if (Array.isArray(fns)) {+      var cloned = fns.slice();+      for (var i = 0; i < cloned.length; i++) {+        cloned[i].apply(null, arguments$1);+      }+    } else {+      // return handler return value for single handlers+      return fns.apply(null, arguments)+    }+  }+  invoker.fns = fns;+  return invoker+}++function updateListeners (+  on,+  oldOn,+  add,+  remove$$1,+  vm+) {+  var name, def, cur, old, event;+  for (name in on) {+    def = cur = on[name];+    old = oldOn[name];+    event = normalizeEvent(name);+    /* istanbul ignore if */+    if (isUndef(cur)) {+      "development" !== 'production' && warn(+        "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),+        vm+      );+    } else if (isUndef(old)) {+      if (isUndef(cur.fns)) {+        cur = on[name] = createFnInvoker(cur);+      }+      add(event.name, cur, event.once, event.capture, event.passive, event.params);+    } else if (cur !== old) {+      old.fns = cur;+      on[name] = old;+    }+  }+  for (name in oldOn) {+    if (isUndef(on[name])) {+      event = normalizeEvent(name);+      remove$$1(event.name, oldOn[name], event.capture);+    }+  }+}++/*  */++function mergeVNodeHook (def, hookKey, hook) {+  if (def instanceof VNode) {+    def = def.data.hook || (def.data.hook = {});+  }+  var invoker;+  var oldHook = def[hookKey];++  function wrappedHook () {+    hook.apply(this, arguments);+    // important: remove merged hook to ensure it's called only once+    // and prevent memory leak+    remove(invoker.fns, wrappedHook);+  }++  if (isUndef(oldHook)) {+    // no existing hook+    invoker = createFnInvoker([wrappedHook]);+  } else {+    /* istanbul ignore if */+    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {+      // already a merged invoker+      invoker = oldHook;+      invoker.fns.push(wrappedHook);+    } else {+      // existing plain hook+      invoker = createFnInvoker([oldHook, wrappedHook]);+    }+  }++  invoker.merged = true;+  def[hookKey] = invoker;+}++/*  */++function extractPropsFromVNodeData (+  data,+  Ctor,+  tag+) {+  // we are only extracting raw values here.+  // validation and default values are handled in the child+  // component itself.+  var propOptions = Ctor.options.props;+  if (isUndef(propOptions)) {+    return+  }+  var res = {};+  var attrs = data.attrs;+  var props = data.props;+  if (isDef(attrs) || isDef(props)) {+    for (var key in propOptions) {+      var altKey = hyphenate(key);+      {+        var keyInLowerCase = key.toLowerCase();+        if (+          key !== keyInLowerCase &&+          attrs && hasOwn(attrs, keyInLowerCase)+        ) {+          tip(+            "Prop \"" + keyInLowerCase + "\" is passed to component " ++            (formatComponentName(tag || Ctor)) + ", but the declared prop name is" ++            " \"" + key + "\". " ++            "Note that HTML attributes are case-insensitive and camelCased " ++            "props need to use their kebab-case equivalents when using in-DOM " ++            "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."+          );+        }+      }+      checkProp(res, props, key, altKey, true) ||+      checkProp(res, attrs, key, altKey, false);+    }+  }+  return res+}++function checkProp (+  res,+  hash,+  key,+  altKey,+  preserve+) {+  if (isDef(hash)) {+    if (hasOwn(hash, key)) {+      res[key] = hash[key];+      if (!preserve) {+        delete hash[key];+      }+      return true+    } else if (hasOwn(hash, altKey)) {+      res[key] = hash[altKey];+      if (!preserve) {+        delete hash[altKey];+      }+      return true+    }+  }+  return false+}++/*  */++// The template compiler attempts to minimize the need for normalization by+// statically analyzing the template at compile time.+//+// For plain HTML markup, normalization can be completely skipped because the+// generated render function is guaranteed to return Array<VNode>. There are+// two cases where extra normalization is needed:++// 1. When the children contains components - because a functional component+// may return an Array instead of a single root. In this case, just a simple+// normalization is needed - if any child is an Array, we flatten the whole+// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep+// because functional components already normalize their own children.+function simpleNormalizeChildren (children) {+  for (var i = 0; i < children.length; i++) {+    if (Array.isArray(children[i])) {+      return Array.prototype.concat.apply([], children)+    }+  }+  return children+}++// 2. When the children contains constructs that always generated nested Arrays,+// e.g. <template>, <slot>, v-for, or when the children is provided by user+// with hand-written render functions / JSX. In such cases a full normalization+// is needed to cater to all possible types of children values.+function normalizeChildren (children) {+  return isPrimitive(children)+    ? [createTextVNode(children)]+    : Array.isArray(children)+      ? normalizeArrayChildren(children)+      : undefined+}++function isTextNode (node) {+  return isDef(node) && isDef(node.text) && isFalse(node.isComment)+}++function normalizeArrayChildren (children, nestedIndex) {+  var res = [];+  var i, c, lastIndex, last;+  for (i = 0; i < children.length; i++) {+    c = children[i];+    if (isUndef(c) || typeof c === 'boolean') { continue }+    lastIndex = res.length - 1;+    last = res[lastIndex];+    //  nested+    if (Array.isArray(c)) {+      if (c.length > 0) {+        c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));+        // merge adjacent text nodes+        if (isTextNode(c[0]) && isTextNode(last)) {+          res[lastIndex] = createTextVNode(last.text + (c[0]).text);+          c.shift();+        }+        res.push.apply(res, c);+      }+    } else if (isPrimitive(c)) {+      if (isTextNode(last)) {+        // merge adjacent text nodes+        // this is necessary for SSR hydration because text nodes are+        // essentially merged when rendered to HTML strings+        res[lastIndex] = createTextVNode(last.text + c);+      } else if (c !== '') {+        // convert primitive to vnode+        res.push(createTextVNode(c));+      }+    } else {+      if (isTextNode(c) && isTextNode(last)) {+        // merge adjacent text nodes+        res[lastIndex] = createTextVNode(last.text + c.text);+      } else {+        // default key for nested array children (likely generated by v-for)+        if (isTrue(children._isVList) &&+          isDef(c.tag) &&+          isUndef(c.key) &&+          isDef(nestedIndex)) {+          c.key = "__vlist" + nestedIndex + "_" + i + "__";+        }+        res.push(c);+      }+    }+  }+  return res+}++/*  */++function ensureCtor (comp, base) {+  if (+    comp.__esModule ||+    (hasSymbol && comp[Symbol.toStringTag] === 'Module')+  ) {+    comp = comp.default;+  }+  return isObject(comp)+    ? base.extend(comp)+    : comp+}++function createAsyncPlaceholder (+  factory,+  data,+  context,+  children,+  tag+) {+  var node = createEmptyVNode();+  node.asyncFactory = factory;+  node.asyncMeta = { data: data, context: context, children: children, tag: tag };+  return node+}++function resolveAsyncComponent (+  factory,+  baseCtor,+  context+) {+  if (isTrue(factory.error) && isDef(factory.errorComp)) {+    return factory.errorComp+  }++  if (isDef(factory.resolved)) {+    return factory.resolved+  }++  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {+    return factory.loadingComp+  }++  if (isDef(factory.contexts)) {+    // already pending+    factory.contexts.push(context);+  } else {+    var contexts = factory.contexts = [context];+    var sync = true;++    var forceRender = function () {+      for (var i = 0, l = contexts.length; i < l; i++) {+        contexts[i].$forceUpdate();+      }+    };++    var resolve = once(function (res) {+      // cache resolved+      factory.resolved = ensureCtor(res, baseCtor);+      // invoke callbacks only if this is not a synchronous resolve+      // (async resolves are shimmed as synchronous during SSR)+      if (!sync) {+        forceRender();+      }+    });++    var reject = once(function (reason) {+      "development" !== 'production' && warn(+        "Failed to resolve async component: " + (String(factory)) ++        (reason ? ("\nReason: " + reason) : '')+      );+      if (isDef(factory.errorComp)) {+        factory.error = true;+        forceRender();+      }+    });++    var res = factory(resolve, reject);++    if (isObject(res)) {+      if (typeof res.then === 'function') {+        // () => Promise+        if (isUndef(factory.resolved)) {+          res.then(resolve, reject);+        }+      } else if (isDef(res.component) && typeof res.component.then === 'function') {+        res.component.then(resolve, reject);++        if (isDef(res.error)) {+          factory.errorComp = ensureCtor(res.error, baseCtor);+        }++        if (isDef(res.loading)) {+          factory.loadingComp = ensureCtor(res.loading, baseCtor);+          if (res.delay === 0) {+            factory.loading = true;+          } else {+            setTimeout(function () {+              if (isUndef(factory.resolved) && isUndef(factory.error)) {+                factory.loading = true;+                forceRender();+              }+            }, res.delay || 200);+          }+        }++        if (isDef(res.timeout)) {+          setTimeout(function () {+            if (isUndef(factory.resolved)) {+              reject(+                "timeout (" + (res.timeout) + "ms)"+              );+            }+          }, res.timeout);+        }+      }+    }++    sync = false;+    // return in case resolved synchronously+    return factory.loading+      ? factory.loadingComp+      : factory.resolved+  }+}++/*  */++function isAsyncPlaceholder (node) {+  return node.isComment && node.asyncFactory+}++/*  */++function getFirstComponentChild (children) {+  if (Array.isArray(children)) {+    for (var i = 0; i < children.length; i++) {+      var c = children[i];+      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {+        return c+      }+    }+  }+}++/*  */++/*  */++function initEvents (vm) {+  vm._events = Object.create(null);+  vm._hasHookEvent = false;+  // init parent attached events+  var listeners = vm.$options._parentListeners;+  if (listeners) {+    updateComponentListeners(vm, listeners);+  }+}++var target;++function add (event, fn, once) {+  if (once) {+    target.$once(event, fn);+  } else {+    target.$on(event, fn);+  }+}++function remove$1 (event, fn) {+  target.$off(event, fn);+}++function updateComponentListeners (+  vm,+  listeners,+  oldListeners+) {+  target = vm;+  updateListeners(listeners, oldListeners || {}, add, remove$1, vm);+  target = undefined;+}++function eventsMixin (Vue) {+  var hookRE = /^hook:/;+  Vue.prototype.$on = function (event, fn) {+    var this$1 = this;++    var vm = this;+    if (Array.isArray(event)) {+      for (var i = 0, l = event.length; i < l; i++) {+        this$1.$on(event[i], fn);+      }+    } else {+      (vm._events[event] || (vm._events[event] = [])).push(fn);+      // optimize hook:event cost by using a boolean flag marked at registration+      // instead of a hash lookup+      if (hookRE.test(event)) {+        vm._hasHookEvent = true;+      }+    }+    return vm+  };++  Vue.prototype.$once = function (event, fn) {+    var vm = this;+    function on () {+      vm.$off(event, on);+      fn.apply(vm, arguments);+    }+    on.fn = fn;+    vm.$on(event, on);+    return vm+  };++  Vue.prototype.$off = function (event, fn) {+    var this$1 = this;++    var vm = this;+    // all+    if (!arguments.length) {+      vm._events = Object.create(null);+      return vm+    }+    // array of events+    if (Array.isArray(event)) {+      for (var i = 0, l = event.length; i < l; i++) {+        this$1.$off(event[i], fn);+      }+      return vm+    }+    // specific event+    var cbs = vm._events[event];+    if (!cbs) {+      return vm+    }+    if (!fn) {+      vm._events[event] = null;+      return vm+    }+    if (fn) {+      // specific handler+      var cb;+      var i$1 = cbs.length;+      while (i$1--) {+        cb = cbs[i$1];+        if (cb === fn || cb.fn === fn) {+          cbs.splice(i$1, 1);+          break+        }+      }+    }+    return vm+  };++  Vue.prototype.$emit = function (event) {+    var vm = this;+    {+      var lowerCaseEvent = event.toLowerCase();+      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {+        tip(+          "Event \"" + lowerCaseEvent + "\" is emitted in component " ++          (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " ++          "Note that HTML attributes are case-insensitive and you cannot use " ++          "v-on to listen to camelCase events when using in-DOM templates. " ++          "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."+        );+      }+    }+    var cbs = vm._events[event];+    if (cbs) {+      cbs = cbs.length > 1 ? toArray(cbs) : cbs;+      var args = toArray(arguments, 1);+      for (var i = 0, l = cbs.length; i < l; i++) {+        try {+          cbs[i].apply(vm, args);+        } catch (e) {+          handleError(e, vm, ("event handler for \"" + event + "\""));+        }+      }+    }+    return vm+  };+}++/*  */++++/**+ * Runtime helper for resolving raw children VNodes into a slot object.+ */+function resolveSlots (+  children,+  context+) {+  var slots = {};+  if (!children) {+    return slots+  }+  for (var i = 0, l = children.length; i < l; i++) {+    var child = children[i];+    var data = child.data;+    // remove slot attribute if the node is resolved as a Vue slot node+    if (data && data.attrs && data.attrs.slot) {+      delete data.attrs.slot;+    }+    // named slots should only be respected if the vnode was rendered in the+    // same context.+    if ((child.context === context || child.fnContext === context) &&+      data && data.slot != null+    ) {+      var name = data.slot;+      var slot = (slots[name] || (slots[name] = []));+      if (child.tag === 'template') {+        slot.push.apply(slot, child.children || []);+      } else {+        slot.push(child);+      }+    } else {+      (slots.default || (slots.default = [])).push(child);+    }+  }+  // ignore slots that contains only whitespace+  for (var name$1 in slots) {+    if (slots[name$1].every(isWhitespace)) {+      delete slots[name$1];+    }+  }+  return slots+}++function isWhitespace (node) {+  return (node.isComment && !node.asyncFactory) || node.text === ' '+}++function resolveScopedSlots (+  fns, // see flow/vnode+  res+) {+  res = res || {};+  for (var i = 0; i < fns.length; i++) {+    if (Array.isArray(fns[i])) {+      resolveScopedSlots(fns[i], res);+    } else {+      res[fns[i].key] = fns[i].fn;+    }+  }+  return res+}++/*  */++var activeInstance = null;+var isUpdatingChildComponent = false;++function initLifecycle (vm) {+  var options = vm.$options;++  // locate first non-abstract parent+  var parent = options.parent;+  if (parent && !options.abstract) {+    while (parent.$options.abstract && parent.$parent) {+      parent = parent.$parent;+    }+    parent.$children.push(vm);+  }++  vm.$parent = parent;+  vm.$root = parent ? parent.$root : vm;++  vm.$children = [];+  vm.$refs = {};++  vm._watcher = null;+  vm._inactive = null;+  vm._directInactive = false;+  vm._isMounted = false;+  vm._isDestroyed = false;+  vm._isBeingDestroyed = false;+}++function lifecycleMixin (Vue) {+  Vue.prototype._update = function (vnode, hydrating) {+    var vm = this;+    if (vm._isMounted) {+      callHook(vm, 'beforeUpdate');+    }+    var prevEl = vm.$el;+    var prevVnode = vm._vnode;+    var prevActiveInstance = activeInstance;+    activeInstance = vm;+    vm._vnode = vnode;+    // Vue.prototype.__patch__ is injected in entry points+    // based on the rendering backend used.+    if (!prevVnode) {+      // initial render+      vm.$el = vm.__patch__(+        vm.$el, vnode, hydrating, false /* removeOnly */,+        vm.$options._parentElm,+        vm.$options._refElm+      );+      // no need for the ref nodes after initial patch+      // this prevents keeping a detached DOM tree in memory (#5851)+      vm.$options._parentElm = vm.$options._refElm = null;+    } else {+      // updates+      vm.$el = vm.__patch__(prevVnode, vnode);+    }+    activeInstance = prevActiveInstance;+    // update __vue__ reference+    if (prevEl) {+      prevEl.__vue__ = null;+    }+    if (vm.$el) {+      vm.$el.__vue__ = vm;+    }+    // if parent is an HOC, update its $el as well+    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {+      vm.$parent.$el = vm.$el;+    }+    // updated hook is called by the scheduler to ensure that children are+    // updated in a parent's updated hook.+  };++  Vue.prototype.$forceUpdate = function () {+    var vm = this;+    if (vm._watcher) {+      vm._watcher.update();+    }+  };++  Vue.prototype.$destroy = function () {+    var vm = this;+    if (vm._isBeingDestroyed) {+      return+    }+    callHook(vm, 'beforeDestroy');+    vm._isBeingDestroyed = true;+    // remove self from parent+    var parent = vm.$parent;+    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {+      remove(parent.$children, vm);+    }+    // teardown watchers+    if (vm._watcher) {+      vm._watcher.teardown();+    }+    var i = vm._watchers.length;+    while (i--) {+      vm._watchers[i].teardown();+    }+    // remove reference from data ob+    // frozen object may not have observer.+    if (vm._data.__ob__) {+      vm._data.__ob__.vmCount--;+    }+    // call the last hook...+    vm._isDestroyed = true;+    // invoke destroy hooks on current rendered tree+    vm.__patch__(vm._vnode, null);+    // fire destroyed hook+    callHook(vm, 'destroyed');+    // turn off all instance listeners.+    vm.$off();+    // remove __vue__ reference+    if (vm.$el) {+      vm.$el.__vue__ = null;+    }+    // release circular reference (#6759)+    if (vm.$vnode) {+      vm.$vnode.parent = null;+    }+  };+}++function mountComponent (+  vm,+  el,+  hydrating+) {+  vm.$el = el;+  if (!vm.$options.render) {+    vm.$options.render = createEmptyVNode;+    {+      /* istanbul ignore if */+      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||+        vm.$options.el || el) {+        warn(+          'You are using the runtime-only build of Vue where the template ' ++          'compiler is not available. Either pre-compile the templates into ' ++          'render functions, or use the compiler-included build.',+          vm+        );+      } else {+        warn(+          'Failed to mount component: template or render function not defined.',+          vm+        );+      }+    }+  }+  callHook(vm, 'beforeMount');++  var updateComponent;+  /* istanbul ignore if */+  if ("development" !== 'production' && config.performance && mark) {+    updateComponent = function () {+      var name = vm._name;+      var id = vm._uid;+      var startTag = "vue-perf-start:" + id;+      var endTag = "vue-perf-end:" + id;++      mark(startTag);+      var vnode = vm._render();+      mark(endTag);+      measure(("vue " + name + " render"), startTag, endTag);++      mark(startTag);+      vm._update(vnode, hydrating);+      mark(endTag);+      measure(("vue " + name + " patch"), startTag, endTag);+    };+  } else {+    updateComponent = function () {+      vm._update(vm._render(), hydrating);+    };+  }++  // we set this to vm._watcher inside the watcher's constructor+  // since the watcher's initial patch may call $forceUpdate (e.g. inside child+  // component's mounted hook), which relies on vm._watcher being already defined+  new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);+  hydrating = false;++  // manually mounted instance, call mounted on self+  // mounted is called for render-created child components in its inserted hook+  if (vm.$vnode == null) {+    vm._isMounted = true;+    callHook(vm, 'mounted');+  }+  return vm+}++function updateChildComponent (+  vm,+  propsData,+  listeners,+  parentVnode,+  renderChildren+) {+  {+    isUpdatingChildComponent = true;+  }++  // determine whether component has slot children+  // we need to do this before overwriting $options._renderChildren+  var hasChildren = !!(+    renderChildren ||               // has new static slots+    vm.$options._renderChildren ||  // has old static slots+    parentVnode.data.scopedSlots || // has new scoped slots+    vm.$scopedSlots !== emptyObject // has old scoped slots+  );++  vm.$options._parentVnode = parentVnode;+  vm.$vnode = parentVnode; // update vm's placeholder node without re-render++  if (vm._vnode) { // update child tree's parent+    vm._vnode.parent = parentVnode;+  }+  vm.$options._renderChildren = renderChildren;++  // update $attrs and $listeners hash+  // these are also reactive so they may trigger child update if the child+  // used them during render+  vm.$attrs = parentVnode.data.attrs || emptyObject;+  vm.$listeners = listeners || emptyObject;++  // update props+  if (propsData && vm.$options.props) {+    toggleObserving(false);+    var props = vm._props;+    var propKeys = vm.$options._propKeys || [];+    for (var i = 0; i < propKeys.length; i++) {+      var key = propKeys[i];+      var propOptions = vm.$options.props; // wtf flow?+      props[key] = validateProp(key, propOptions, propsData, vm);+    }+    toggleObserving(true);+    // keep a copy of raw propsData+    vm.$options.propsData = propsData;+  }++  // update listeners+  listeners = listeners || emptyObject;+  var oldListeners = vm.$options._parentListeners;+  vm.$options._parentListeners = listeners;+  updateComponentListeners(vm, listeners, oldListeners);++  // resolve slots + force update if has children+  if (hasChildren) {+    vm.$slots = resolveSlots(renderChildren, parentVnode.context);+    vm.$forceUpdate();+  }++  {+    isUpdatingChildComponent = false;+  }+}++function isInInactiveTree (vm) {+  while (vm && (vm = vm.$parent)) {+    if (vm._inactive) { return true }+  }+  return false+}++function activateChildComponent (vm, direct) {+  if (direct) {+    vm._directInactive = false;+    if (isInInactiveTree(vm)) {+      return+    }+  } else if (vm._directInactive) {+    return+  }+  if (vm._inactive || vm._inactive === null) {+    vm._inactive = false;+    for (var i = 0; i < vm.$children.length; i++) {+      activateChildComponent(vm.$children[i]);+    }+    callHook(vm, 'activated');+  }+}++function deactivateChildComponent (vm, direct) {+  if (direct) {+    vm._directInactive = true;+    if (isInInactiveTree(vm)) {+      return+    }+  }+  if (!vm._inactive) {+    vm._inactive = true;+    for (var i = 0; i < vm.$children.length; i++) {+      deactivateChildComponent(vm.$children[i]);+    }+    callHook(vm, 'deactivated');+  }+}++function callHook (vm, hook) {+  // #7573 disable dep collection when invoking lifecycle hooks+  pushTarget();+  var handlers = vm.$options[hook];+  if (handlers) {+    for (var i = 0, j = handlers.length; i < j; i++) {+      try {+        handlers[i].call(vm);+      } catch (e) {+        handleError(e, vm, (hook + " hook"));+      }+    }+  }+  if (vm._hasHookEvent) {+    vm.$emit('hook:' + hook);+  }+  popTarget();+}++/*  */+++var MAX_UPDATE_COUNT = 100;++var queue = [];+var activatedChildren = [];+var has = {};+var circular = {};+var waiting = false;+var flushing = false;+var index = 0;++/**+ * Reset the scheduler's state.+ */+function resetSchedulerState () {+  index = queue.length = activatedChildren.length = 0;+  has = {};+  {+    circular = {};+  }+  waiting = flushing = false;+}++/**+ * Flush both queues and run the watchers.+ */+function flushSchedulerQueue () {+  flushing = true;+  var watcher, id;++  // Sort queue before flush.+  // This ensures that:+  // 1. Components are updated from parent to child. (because parent is always+  //    created before the child)+  // 2. A component's user watchers are run before its render watcher (because+  //    user watchers are created before the render watcher)+  // 3. If a component is destroyed during a parent component's watcher run,+  //    its watchers can be skipped.+  queue.sort(function (a, b) { return a.id - b.id; });++  // do not cache length because more watchers might be pushed+  // as we run existing watchers+  for (index = 0; index < queue.length; index++) {+    watcher = queue[index];+    id = watcher.id;+    has[id] = null;+    watcher.run();+    // in dev build, check and stop circular updates.+    if ("development" !== 'production' && has[id] != null) {+      circular[id] = (circular[id] || 0) + 1;+      if (circular[id] > MAX_UPDATE_COUNT) {+        warn(+          'You may have an infinite update loop ' + (+            watcher.user+              ? ("in watcher with expression \"" + (watcher.expression) + "\"")+              : "in a component render function."+          ),+          watcher.vm+        );+        break+      }+    }+  }++  // keep copies of post queues before resetting state+  var activatedQueue = activatedChildren.slice();+  var updatedQueue = queue.slice();++  resetSchedulerState();++  // call component updated and activated hooks+  callActivatedHooks(activatedQueue);+  callUpdatedHooks(updatedQueue);++  // devtool hook+  /* istanbul ignore if */+  if (devtools && config.devtools) {+    devtools.emit('flush');+  }+}++function callUpdatedHooks (queue) {+  var i = queue.length;+  while (i--) {+    var watcher = queue[i];+    var vm = watcher.vm;+    if (vm._watcher === watcher && vm._isMounted) {+      callHook(vm, 'updated');+    }+  }+}++/**+ * Queue a kept-alive component that was activated during patch.+ * The queue will be processed after the entire tree has been patched.+ */+function queueActivatedComponent (vm) {+  // setting _inactive to false here so that a render function can+  // rely on checking whether it's in an inactive tree (e.g. router-view)+  vm._inactive = false;+  activatedChildren.push(vm);+}++function callActivatedHooks (queue) {+  for (var i = 0; i < queue.length; i++) {+    queue[i]._inactive = true;+    activateChildComponent(queue[i], true /* true */);+  }+}++/**+ * Push a watcher into the watcher queue.+ * Jobs with duplicate IDs will be skipped unless it's+ * pushed when the queue is being flushed.+ */+function queueWatcher (watcher) {+  var id = watcher.id;+  if (has[id] == null) {+    has[id] = true;+    if (!flushing) {+      queue.push(watcher);+    } else {+      // if already flushing, splice the watcher based on its id+      // if already past its id, it will be run next immediately.+      var i = queue.length - 1;+      while (i > index && queue[i].id > watcher.id) {+        i--;+      }+      queue.splice(i + 1, 0, watcher);+    }+    // queue the flush+    if (!waiting) {+      waiting = true;+      nextTick(flushSchedulerQueue);+    }+  }+}++/*  */++var uid$1 = 0;++/**+ * A watcher parses an expression, collects dependencies,+ * and fires callback when the expression value changes.+ * This is used for both the $watch() api and directives.+ */+var Watcher = function Watcher (+  vm,+  expOrFn,+  cb,+  options,+  isRenderWatcher+) {+  this.vm = vm;+  if (isRenderWatcher) {+    vm._watcher = this;+  }+  vm._watchers.push(this);+  // options+  if (options) {+    this.deep = !!options.deep;+    this.user = !!options.user;+    this.lazy = !!options.lazy;+    this.sync = !!options.sync;+  } else {+    this.deep = this.user = this.lazy = this.sync = false;+  }+  this.cb = cb;+  this.id = ++uid$1; // uid for batching+  this.active = true;+  this.dirty = this.lazy; // for lazy watchers+  this.deps = [];+  this.newDeps = [];+  this.depIds = new _Set();+  this.newDepIds = new _Set();+  this.expression = expOrFn.toString();+  // parse expression for getter+  if (typeof expOrFn === 'function') {+    this.getter = expOrFn;+  } else {+    this.getter = parsePath(expOrFn);+    if (!this.getter) {+      this.getter = function () {};+      "development" !== 'production' && warn(+        "Failed watching path: \"" + expOrFn + "\" " ++        'Watcher only accepts simple dot-delimited paths. ' ++        'For full control, use a function instead.',+        vm+      );+    }+  }+  this.value = this.lazy+    ? undefined+    : this.get();+};++/**+ * Evaluate the getter, and re-collect dependencies.+ */+Watcher.prototype.get = function get () {+  pushTarget(this);+  var value;+  var vm = this.vm;+  try {+    value = this.getter.call(vm, vm);+  } catch (e) {+    if (this.user) {+      handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));+    } else {+      throw e+    }+  } finally {+    // "touch" every property so they are all tracked as+    // dependencies for deep watching+    if (this.deep) {+      traverse(value);+    }+    popTarget();+    this.cleanupDeps();+  }+  return value+};++/**+ * Add a dependency to this directive.+ */+Watcher.prototype.addDep = function addDep (dep) {+  var id = dep.id;+  if (!this.newDepIds.has(id)) {+    this.newDepIds.add(id);+    this.newDeps.push(dep);+    if (!this.depIds.has(id)) {+      dep.addSub(this);+    }+  }+};++/**+ * Clean up for dependency collection.+ */+Watcher.prototype.cleanupDeps = function cleanupDeps () {+    var this$1 = this;++  var i = this.deps.length;+  while (i--) {+    var dep = this$1.deps[i];+    if (!this$1.newDepIds.has(dep.id)) {+      dep.removeSub(this$1);+    }+  }+  var tmp = this.depIds;+  this.depIds = this.newDepIds;+  this.newDepIds = tmp;+  this.newDepIds.clear();+  tmp = this.deps;+  this.deps = this.newDeps;+  this.newDeps = tmp;+  this.newDeps.length = 0;+};++/**+ * Subscriber interface.+ * Will be called when a dependency changes.+ */+Watcher.prototype.update = function update () {+  /* istanbul ignore else */+  if (this.lazy) {+    this.dirty = true;+  } else if (this.sync) {+    this.run();+  } else {+    queueWatcher(this);+  }+};++/**+ * Scheduler job interface.+ * Will be called by the scheduler.+ */+Watcher.prototype.run = function run () {+  if (this.active) {+    var value = this.get();+    if (+      value !== this.value ||+      // Deep watchers and watchers on Object/Arrays should fire even+      // when the value is the same, because the value may+      // have mutated.+      isObject(value) ||+      this.deep+    ) {+      // set new value+      var oldValue = this.value;+      this.value = value;+      if (this.user) {+        try {+          this.cb.call(this.vm, value, oldValue);+        } catch (e) {+          handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));+        }+      } else {+        this.cb.call(this.vm, value, oldValue);+      }+    }+  }+};++/**+ * Evaluate the value of the watcher.+ * This only gets called for lazy watchers.+ */+Watcher.prototype.evaluate = function evaluate () {+  this.value = this.get();+  this.dirty = false;+};++/**+ * Depend on all deps collected by this watcher.+ */+Watcher.prototype.depend = function depend () {+    var this$1 = this;++  var i = this.deps.length;+  while (i--) {+    this$1.deps[i].depend();+  }+};++/**+ * Remove self from all dependencies' subscriber list.+ */+Watcher.prototype.teardown = function teardown () {+    var this$1 = this;++  if (this.active) {+    // remove self from vm's watcher list+    // this is a somewhat expensive operation so we skip it+    // if the vm is being destroyed.+    if (!this.vm._isBeingDestroyed) {+      remove(this.vm._watchers, this);+    }+    var i = this.deps.length;+    while (i--) {+      this$1.deps[i].removeSub(this$1);+    }+    this.active = false;+  }+};++/*  */++var sharedPropertyDefinition = {+  enumerable: true,+  configurable: true,+  get: noop,+  set: noop+};++function proxy (target, sourceKey, key) {+  sharedPropertyDefinition.get = function proxyGetter () {+    return this[sourceKey][key]+  };+  sharedPropertyDefinition.set = function proxySetter (val) {+    this[sourceKey][key] = val;+  };+  Object.defineProperty(target, key, sharedPropertyDefinition);+}++function initState (vm) {+  vm._watchers = [];+  var opts = vm.$options;+  if (opts.props) { initProps(vm, opts.props); }+  if (opts.methods) { initMethods(vm, opts.methods); }+  if (opts.data) {+    initData(vm);+  } else {+    observe(vm._data = {}, true /* asRootData */);+  }+  if (opts.computed) { initComputed(vm, opts.computed); }+  if (opts.watch && opts.watch !== nativeWatch) {+    initWatch(vm, opts.watch);+  }+}++function initProps (vm, propsOptions) {+  var propsData = vm.$options.propsData || {};+  var props = vm._props = {};+  // cache prop keys so that future props updates can iterate using Array+  // instead of dynamic object key enumeration.+  var keys = vm.$options._propKeys = [];+  var isRoot = !vm.$parent;+  // root instance props should be converted+  if (!isRoot) {+    toggleObserving(false);+  }+  var loop = function ( key ) {+    keys.push(key);+    var value = validateProp(key, propsOptions, propsData, vm);+    /* istanbul ignore else */+    {+      var hyphenatedKey = hyphenate(key);+      if (isReservedAttribute(hyphenatedKey) ||+          config.isReservedAttr(hyphenatedKey)) {+        warn(+          ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),+          vm+        );+      }+      defineReactive(props, key, value, function () {+        if (vm.$parent && !isUpdatingChildComponent) {+          warn(+            "Avoid mutating a prop directly since the value will be " ++            "overwritten whenever the parent component re-renders. " ++            "Instead, use a data or computed property based on the prop's " ++            "value. Prop being mutated: \"" + key + "\"",+            vm+          );+        }+      });+    }+    // static props are already proxied on the component's prototype+    // during Vue.extend(). We only need to proxy props defined at+    // instantiation here.+    if (!(key in vm)) {+      proxy(vm, "_props", key);+    }+  };++  for (var key in propsOptions) loop( key );+  toggleObserving(true);+}++function initData (vm) {+  var data = vm.$options.data;+  data = vm._data = typeof data === 'function'+    ? getData(data, vm)+    : data || {};+  if (!isPlainObject(data)) {+    data = {};+    "development" !== 'production' && warn(+      'data functions should return an object:\n' ++      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',+      vm+    );+  }+  // proxy data on instance+  var keys = Object.keys(data);+  var props = vm.$options.props;+  var methods = vm.$options.methods;+  var i = keys.length;+  while (i--) {+    var key = keys[i];+    {+      if (methods && hasOwn(methods, key)) {+        warn(+          ("Method \"" + key + "\" has already been defined as a data property."),+          vm+        );+      }+    }+    if (props && hasOwn(props, key)) {+      "development" !== 'production' && warn(+        "The data property \"" + key + "\" is already declared as a prop. " ++        "Use prop default value instead.",+        vm+      );+    } else if (!isReserved(key)) {+      proxy(vm, "_data", key);+    }+  }+  // observe data+  observe(data, true /* asRootData */);+}++function getData (data, vm) {+  // #7573 disable dep collection when invoking data getters+  pushTarget();+  try {+    return data.call(vm, vm)+  } catch (e) {+    handleError(e, vm, "data()");+    return {}+  } finally {+    popTarget();+  }+}++var computedWatcherOptions = { lazy: true };++function initComputed (vm, computed) {+  // $flow-disable-line+  var watchers = vm._computedWatchers = Object.create(null);+  // computed properties are just getters during SSR+  var isSSR = isServerRendering();++  for (var key in computed) {+    var userDef = computed[key];+    var getter = typeof userDef === 'function' ? userDef : userDef.get;+    if ("development" !== 'production' && getter == null) {+      warn(+        ("Getter is missing for computed property \"" + key + "\"."),+        vm+      );+    }++    if (!isSSR) {+      // create internal watcher for the computed property.+      watchers[key] = new Watcher(+        vm,+        getter || noop,+        noop,+        computedWatcherOptions+      );+    }++    // component-defined computed properties are already defined on the+    // component prototype. We only need to define computed properties defined+    // at instantiation here.+    if (!(key in vm)) {+      defineComputed(vm, key, userDef);+    } else {+      if (key in vm.$data) {+        warn(("The computed property \"" + key + "\" is already defined in data."), vm);+      } else if (vm.$options.props && key in vm.$options.props) {+        warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);+      }+    }+  }+}++function defineComputed (+  target,+  key,+  userDef+) {+  var shouldCache = !isServerRendering();+  if (typeof userDef === 'function') {+    sharedPropertyDefinition.get = shouldCache+      ? createComputedGetter(key)+      : userDef;+    sharedPropertyDefinition.set = noop;+  } else {+    sharedPropertyDefinition.get = userDef.get+      ? shouldCache && userDef.cache !== false+        ? createComputedGetter(key)+        : userDef.get+      : noop;+    sharedPropertyDefinition.set = userDef.set+      ? userDef.set+      : noop;+  }+  if ("development" !== 'production' &&+      sharedPropertyDefinition.set === noop) {+    sharedPropertyDefinition.set = function () {+      warn(+        ("Computed property \"" + key + "\" was assigned to but it has no setter."),+        this+      );+    };+  }+  Object.defineProperty(target, key, sharedPropertyDefinition);+}++function createComputedGetter (key) {+  return function computedGetter () {+    var watcher = this._computedWatchers && this._computedWatchers[key];+    if (watcher) {+      if (watcher.dirty) {+        watcher.evaluate();+      }+      if (Dep.target) {+        watcher.depend();+      }+      return watcher.value+    }+  }+}++function initMethods (vm, methods) {+  var props = vm.$options.props;+  for (var key in methods) {+    {+      if (methods[key] == null) {+        warn(+          "Method \"" + key + "\" has an undefined value in the component definition. " ++          "Did you reference the function correctly?",+          vm+        );+      }+      if (props && hasOwn(props, key)) {+        warn(+          ("Method \"" + key + "\" has already been defined as a prop."),+          vm+        );+      }+      if ((key in vm) && isReserved(key)) {+        warn(+          "Method \"" + key + "\" conflicts with an existing Vue instance method. " ++          "Avoid defining component methods that start with _ or $."+        );+      }+    }+    vm[key] = methods[key] == null ? noop : bind(methods[key], vm);+  }+}++function initWatch (vm, watch) {+  for (var key in watch) {+    var handler = watch[key];+    if (Array.isArray(handler)) {+      for (var i = 0; i < handler.length; i++) {+        createWatcher(vm, key, handler[i]);+      }+    } else {+      createWatcher(vm, key, handler);+    }+  }+}++function createWatcher (+  vm,+  expOrFn,+  handler,+  options+) {+  if (isPlainObject(handler)) {+    options = handler;+    handler = handler.handler;+  }+  if (typeof handler === 'string') {+    handler = vm[handler];+  }+  return vm.$watch(expOrFn, handler, options)+}++function stateMixin (Vue) {+  // flow somehow has problems with directly declared definition object+  // when using Object.defineProperty, so we have to procedurally build up+  // the object here.+  var dataDef = {};+  dataDef.get = function () { return this._data };+  var propsDef = {};+  propsDef.get = function () { return this._props };+  {+    dataDef.set = function (newData) {+      warn(+        'Avoid replacing instance root $data. ' ++        'Use nested data properties instead.',+        this+      );+    };+    propsDef.set = function () {+      warn("$props is readonly.", this);+    };+  }+  Object.defineProperty(Vue.prototype, '$data', dataDef);+  Object.defineProperty(Vue.prototype, '$props', propsDef);++  Vue.prototype.$set = set;+  Vue.prototype.$delete = del;++  Vue.prototype.$watch = function (+    expOrFn,+    cb,+    options+  ) {+    var vm = this;+    if (isPlainObject(cb)) {+      return createWatcher(vm, expOrFn, cb, options)+    }+    options = options || {};+    options.user = true;+    var watcher = new Watcher(vm, expOrFn, cb, options);+    if (options.immediate) {+      cb.call(vm, watcher.value);+    }+    return function unwatchFn () {+      watcher.teardown();+    }+  };+}++/*  */++function initProvide (vm) {+  var provide = vm.$options.provide;+  if (provide) {+    vm._provided = typeof provide === 'function'+      ? provide.call(vm)+      : provide;+  }+}++function initInjections (vm) {+  var result = resolveInject(vm.$options.inject, vm);+  if (result) {+    toggleObserving(false);+    Object.keys(result).forEach(function (key) {+      /* istanbul ignore else */+      {+        defineReactive(vm, key, result[key], function () {+          warn(+            "Avoid mutating an injected value directly since the changes will be " ++            "overwritten whenever the provided component re-renders. " ++            "injection being mutated: \"" + key + "\"",+            vm+          );+        });+      }+    });+    toggleObserving(true);+  }+}++function resolveInject (inject, vm) {+  if (inject) {+    // inject is :any because flow is not smart enough to figure out cached+    var result = Object.create(null);+    var keys = hasSymbol+      ? Reflect.ownKeys(inject).filter(function (key) {+        /* istanbul ignore next */+        return Object.getOwnPropertyDescriptor(inject, key).enumerable+      })+      : Object.keys(inject);++    for (var i = 0; i < keys.length; i++) {+      var key = keys[i];+      var provideKey = inject[key].from;+      var source = vm;+      while (source) {+        if (source._provided && hasOwn(source._provided, provideKey)) {+          result[key] = source._provided[provideKey];+          break+        }+        source = source.$parent;+      }+      if (!source) {+        if ('default' in inject[key]) {+          var provideDefault = inject[key].default;+          result[key] = typeof provideDefault === 'function'+            ? provideDefault.call(vm)+            : provideDefault;+        } else {+          warn(("Injection \"" + key + "\" not found"), vm);+        }+      }+    }+    return result+  }+}++/*  */++/**+ * Runtime helper for rendering v-for lists.+ */+function renderList (+  val,+  render+) {+  var ret, i, l, keys, key;+  if (Array.isArray(val) || typeof val === 'string') {+    ret = new Array(val.length);+    for (i = 0, l = val.length; i < l; i++) {+      ret[i] = render(val[i], i);+    }+  } else if (typeof val === 'number') {+    ret = new Array(val);+    for (i = 0; i < val; i++) {+      ret[i] = render(i + 1, i);+    }+  } else if (isObject(val)) {+    keys = Object.keys(val);+    ret = new Array(keys.length);+    for (i = 0, l = keys.length; i < l; i++) {+      key = keys[i];+      ret[i] = render(val[key], key, i);+    }+  }+  if (isDef(ret)) {+    (ret)._isVList = true;+  }+  return ret+}++/*  */++/**+ * Runtime helper for rendering <slot>+ */+function renderSlot (+  name,+  fallback,+  props,+  bindObject+) {+  var scopedSlotFn = this.$scopedSlots[name];+  var nodes;+  if (scopedSlotFn) { // scoped slot+    props = props || {};+    if (bindObject) {+      if ("development" !== 'production' && !isObject(bindObject)) {+        warn(+          'slot v-bind without argument expects an Object',+          this+        );+      }+      props = extend(extend({}, bindObject), props);+    }+    nodes = scopedSlotFn(props) || fallback;+  } else {+    var slotNodes = this.$slots[name];+    // warn duplicate slot usage+    if (slotNodes) {+      if ("development" !== 'production' && slotNodes._rendered) {+        warn(+          "Duplicate presence of slot \"" + name + "\" found in the same render tree " ++          "- this will likely cause render errors.",+          this+        );+      }+      slotNodes._rendered = true;+    }+    nodes = slotNodes || fallback;+  }++  var target = props && props.slot;+  if (target) {+    return this.$createElement('template', { slot: target }, nodes)+  } else {+    return nodes+  }+}++/*  */++/**+ * Runtime helper for resolving filters+ */+function resolveFilter (id) {+  return resolveAsset(this.$options, 'filters', id, true) || identity+}++/*  */++function isKeyNotMatch (expect, actual) {+  if (Array.isArray(expect)) {+    return expect.indexOf(actual) === -1+  } else {+    return expect !== actual+  }+}++/**+ * Runtime helper for checking keyCodes from config.+ * exposed as Vue.prototype._k+ * passing in eventKeyName as last argument separately for backwards compat+ */+function checkKeyCodes (+  eventKeyCode,+  key,+  builtInKeyCode,+  eventKeyName,+  builtInKeyName+) {+  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;+  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {+    return isKeyNotMatch(builtInKeyName, eventKeyName)+  } else if (mappedKeyCode) {+    return isKeyNotMatch(mappedKeyCode, eventKeyCode)+  } else if (eventKeyName) {+    return hyphenate(eventKeyName) !== key+  }+}++/*  */++/**+ * Runtime helper for merging v-bind="object" into a VNode's data.+ */+function bindObjectProps (+  data,+  tag,+  value,+  asProp,+  isSync+) {+  if (value) {+    if (!isObject(value)) {+      "development" !== 'production' && warn(+        'v-bind without argument expects an Object or Array value',+        this+      );+    } else {+      if (Array.isArray(value)) {+        value = toObject(value);+      }+      var hash;+      var loop = function ( key ) {+        if (+          key === 'class' ||+          key === 'style' ||+          isReservedAttribute(key)+        ) {+          hash = data;+        } else {+          var type = data.attrs && data.attrs.type;+          hash = asProp || config.mustUseProp(tag, type, key)+            ? data.domProps || (data.domProps = {})+            : data.attrs || (data.attrs = {});+        }+        if (!(key in hash)) {+          hash[key] = value[key];++          if (isSync) {+            var on = data.on || (data.on = {});+            on[("update:" + key)] = function ($event) {+              value[key] = $event;+            };+          }+        }+      };++      for (var key in value) loop( key );+    }+  }+  return data+}++/*  */++/**+ * Runtime helper for rendering static trees.+ */+function renderStatic (+  index,+  isInFor+) {+  var cached = this._staticTrees || (this._staticTrees = []);+  var tree = cached[index];+  // if has already-rendered static tree and not inside v-for,+  // we can reuse the same tree.+  if (tree && !isInFor) {+    return tree+  }+  // otherwise, render a fresh tree.+  tree = cached[index] = this.$options.staticRenderFns[index].call(+    this._renderProxy,+    null,+    this // for render fns generated for functional component templates+  );+  markStatic(tree, ("__static__" + index), false);+  return tree+}++/**+ * Runtime helper for v-once.+ * Effectively it means marking the node as static with a unique key.+ */+function markOnce (+  tree,+  index,+  key+) {+  markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);+  return tree+}++function markStatic (+  tree,+  key,+  isOnce+) {+  if (Array.isArray(tree)) {+    for (var i = 0; i < tree.length; i++) {+      if (tree[i] && typeof tree[i] !== 'string') {+        markStaticNode(tree[i], (key + "_" + i), isOnce);+      }+    }+  } else {+    markStaticNode(tree, key, isOnce);+  }+}++function markStaticNode (node, key, isOnce) {+  node.isStatic = true;+  node.key = key;+  node.isOnce = isOnce;+}++/*  */++function bindObjectListeners (data, value) {+  if (value) {+    if (!isPlainObject(value)) {+      "development" !== 'production' && warn(+        'v-on without argument expects an Object value',+        this+      );+    } else {+      var on = data.on = data.on ? extend({}, data.on) : {};+      for (var key in value) {+        var existing = on[key];+        var ours = value[key];+        on[key] = existing ? [].concat(existing, ours) : ours;+      }+    }+  }+  return data+}++/*  */++function installRenderHelpers (target) {+  target._o = markOnce;+  target._n = toNumber;+  target._s = toString;+  target._l = renderList;+  target._t = renderSlot;+  target._q = looseEqual;+  target._i = looseIndexOf;+  target._m = renderStatic;+  target._f = resolveFilter;+  target._k = checkKeyCodes;+  target._b = bindObjectProps;+  target._v = createTextVNode;+  target._e = createEmptyVNode;+  target._u = resolveScopedSlots;+  target._g = bindObjectListeners;+}++/*  */++function FunctionalRenderContext (+  data,+  props,+  children,+  parent,+  Ctor+) {+  var options = Ctor.options;+  // ensure the createElement function in functional components+  // gets a unique context - this is necessary for correct named slot check+  var contextVm;+  if (hasOwn(parent, '_uid')) {+    contextVm = Object.create(parent);+    // $flow-disable-line+    contextVm._original = parent;+  } else {+    // the context vm passed in is a functional context as well.+    // in this case we want to make sure we are able to get a hold to the+    // real context instance.+    contextVm = parent;+    // $flow-disable-line+    parent = parent._original;+  }+  var isCompiled = isTrue(options._compiled);+  var needNormalization = !isCompiled;++  this.data = data;+  this.props = props;+  this.children = children;+  this.parent = parent;+  this.listeners = data.on || emptyObject;+  this.injections = resolveInject(options.inject, parent);+  this.slots = function () { return resolveSlots(children, parent); };++  // support for compiled functional template+  if (isCompiled) {+    // exposing $options for renderStatic()+    this.$options = options;+    // pre-resolve slots for renderSlot()+    this.$slots = this.slots();+    this.$scopedSlots = data.scopedSlots || emptyObject;+  }++  if (options._scopeId) {+    this._c = function (a, b, c, d) {+      var vnode = createElement(contextVm, a, b, c, d, needNormalization);+      if (vnode && !Array.isArray(vnode)) {+        vnode.fnScopeId = options._scopeId;+        vnode.fnContext = parent;+      }+      return vnode+    };+  } else {+    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };+  }+}++installRenderHelpers(FunctionalRenderContext.prototype);++function createFunctionalComponent (+  Ctor,+  propsData,+  data,+  contextVm,+  children+) {+  var options = Ctor.options;+  var props = {};+  var propOptions = options.props;+  if (isDef(propOptions)) {+    for (var key in propOptions) {+      props[key] = validateProp(key, propOptions, propsData || emptyObject);+    }+  } else {+    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }+    if (isDef(data.props)) { mergeProps(props, data.props); }+  }++  var renderContext = new FunctionalRenderContext(+    data,+    props,+    children,+    contextVm,+    Ctor+  );++  var vnode = options.render.call(null, renderContext._c, renderContext);++  if (vnode instanceof VNode) {+    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)+  } else if (Array.isArray(vnode)) {+    var vnodes = normalizeChildren(vnode) || [];+    var res = new Array(vnodes.length);+    for (var i = 0; i < vnodes.length; i++) {+      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);+    }+    return res+  }+}++function cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {+  // #7817 clone node before setting fnContext, otherwise if the node is reused+  // (e.g. it was from a cached normal slot) the fnContext causes named slots+  // that should not be matched to match.+  var clone = cloneVNode(vnode);+  clone.fnContext = contextVm;+  clone.fnOptions = options;+  if (data.slot) {+    (clone.data || (clone.data = {})).slot = data.slot;+  }+  return clone+}++function mergeProps (to, from) {+  for (var key in from) {+    to[camelize(key)] = from[key];+  }+}++/*  */+++++// Register the component hook to weex native render engine.+// The hook will be triggered by native, not javascript.+++// Updates the state of the component to weex native render engine.++/*  */++// https://github.com/Hanks10100/weex-native-directive/tree/master/component++// listening on native callback++/*  */++/*  */++// inline hooks to be invoked on component VNodes during patch+var componentVNodeHooks = {+  init: function init (+    vnode,+    hydrating,+    parentElm,+    refElm+  ) {+    if (+      vnode.componentInstance &&+      !vnode.componentInstance._isDestroyed &&+      vnode.data.keepAlive+    ) {+      // kept-alive components, treat as a patch+      var mountedNode = vnode; // work around flow+      componentVNodeHooks.prepatch(mountedNode, mountedNode);+    } else {+      var child = vnode.componentInstance = createComponentInstanceForVnode(+        vnode,+        activeInstance,+        parentElm,+        refElm+      );+      child.$mount(hydrating ? vnode.elm : undefined, hydrating);+    }+  },++  prepatch: function prepatch (oldVnode, vnode) {+    var options = vnode.componentOptions;+    var child = vnode.componentInstance = oldVnode.componentInstance;+    updateChildComponent(+      child,+      options.propsData, // updated props+      options.listeners, // updated listeners+      vnode, // new parent vnode+      options.children // new children+    );+  },++  insert: function insert (vnode) {+    var context = vnode.context;+    var componentInstance = vnode.componentInstance;+    if (!componentInstance._isMounted) {+      componentInstance._isMounted = true;+      callHook(componentInstance, 'mounted');+    }+    if (vnode.data.keepAlive) {+      if (context._isMounted) {+        // vue-router#1212+        // During updates, a kept-alive component's child components may+        // change, so directly walking the tree here may call activated hooks+        // on incorrect children. Instead we push them into a queue which will+        // be processed after the whole patch process ended.+        queueActivatedComponent(componentInstance);+      } else {+        activateChildComponent(componentInstance, true /* direct */);+      }+    }+  },++  destroy: function destroy (vnode) {+    var componentInstance = vnode.componentInstance;+    if (!componentInstance._isDestroyed) {+      if (!vnode.data.keepAlive) {+        componentInstance.$destroy();+      } else {+        deactivateChildComponent(componentInstance, true /* direct */);+      }+    }+  }+};++var hooksToMerge = Object.keys(componentVNodeHooks);++function createComponent (+  Ctor,+  data,+  context,+  children,+  tag+) {+  if (isUndef(Ctor)) {+    return+  }++  var baseCtor = context.$options._base;++  // plain options object: turn it into a constructor+  if (isObject(Ctor)) {+    Ctor = baseCtor.extend(Ctor);+  }++  // if at this stage it's not a constructor or an async component factory,+  // reject.+  if (typeof Ctor !== 'function') {+    {+      warn(("Invalid Component definition: " + (String(Ctor))), context);+    }+    return+  }++  // async component+  var asyncFactory;+  if (isUndef(Ctor.cid)) {+    asyncFactory = Ctor;+    Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);+    if (Ctor === undefined) {+      // return a placeholder node for async component, which is rendered+      // as a comment node but preserves all the raw information for the node.+      // the information will be used for async server-rendering and hydration.+      return createAsyncPlaceholder(+        asyncFactory,+        data,+        context,+        children,+        tag+      )+    }+  }++  data = data || {};++  // resolve constructor options in case global mixins are applied after+  // component constructor creation+  resolveConstructorOptions(Ctor);++  // transform component v-model data into props & events+  if (isDef(data.model)) {+    transformModel(Ctor.options, data);+  }++  // extract props+  var propsData = extractPropsFromVNodeData(data, Ctor, tag);++  // functional component+  if (isTrue(Ctor.options.functional)) {+    return createFunctionalComponent(Ctor, propsData, data, context, children)+  }++  // extract listeners, since these needs to be treated as+  // child component listeners instead of DOM listeners+  var listeners = data.on;+  // replace with listeners with .native modifier+  // so it gets processed during parent component patch.+  data.on = data.nativeOn;++  if (isTrue(Ctor.options.abstract)) {+    // abstract components do not keep anything+    // other than props & listeners & slot++    // work around flow+    var slot = data.slot;+    data = {};+    if (slot) {+      data.slot = slot;+    }+  }++  // install component management hooks onto the placeholder node+  installComponentHooks(data);++  // return a placeholder vnode+  var name = Ctor.options.name || tag;+  var vnode = new VNode(+    ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),+    data, undefined, undefined, undefined, context,+    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },+    asyncFactory+  );++  // Weex specific: invoke recycle-list optimized @render function for+  // extracting cell-slot template.+  // https://github.com/Hanks10100/weex-native-directive/tree/master/component+  /* istanbul ignore if */+  return vnode+}++function createComponentInstanceForVnode (+  vnode, // we know it's MountedComponentVNode but flow doesn't+  parent, // activeInstance in lifecycle state+  parentElm,+  refElm+) {+  var options = {+    _isComponent: true,+    parent: parent,+    _parentVnode: vnode,+    _parentElm: parentElm || null,+    _refElm: refElm || null+  };+  // check inline-template render functions+  var inlineTemplate = vnode.data.inlineTemplate;+  if (isDef(inlineTemplate)) {+    options.render = inlineTemplate.render;+    options.staticRenderFns = inlineTemplate.staticRenderFns;+  }+  return new vnode.componentOptions.Ctor(options)+}++function installComponentHooks (data) {+  var hooks = data.hook || (data.hook = {});+  for (var i = 0; i < hooksToMerge.length; i++) {+    var key = hooksToMerge[i];+    hooks[key] = componentVNodeHooks[key];+  }+}++// transform component v-model info (value and callback) into+// prop and event handler respectively.+function transformModel (options, data) {+  var prop = (options.model && options.model.prop) || 'value';+  var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;+  var on = data.on || (data.on = {});+  if (isDef(on[event])) {+    on[event] = [data.model.callback].concat(on[event]);+  } else {+    on[event] = data.model.callback;+  }+}++/*  */++var SIMPLE_NORMALIZE = 1;+var ALWAYS_NORMALIZE = 2;++// wrapper function for providing a more flexible interface+// without getting yelled at by flow+function createElement (+  context,+  tag,+  data,+  children,+  normalizationType,+  alwaysNormalize+) {+  if (Array.isArray(data) || isPrimitive(data)) {+    normalizationType = children;+    children = data;+    data = undefined;+  }+  if (isTrue(alwaysNormalize)) {+    normalizationType = ALWAYS_NORMALIZE;+  }+  return _createElement(context, tag, data, children, normalizationType)+}++function _createElement (+  context,+  tag,+  data,+  children,+  normalizationType+) {+  if (isDef(data) && isDef((data).__ob__)) {+    "development" !== 'production' && warn(+      "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" ++      'Always create fresh vnode data objects in each render!',+      context+    );+    return createEmptyVNode()+  }+  // object syntax in v-bind+  if (isDef(data) && isDef(data.is)) {+    tag = data.is;+  }+  if (!tag) {+    // in case of component :is set to falsy value+    return createEmptyVNode()+  }+  // warn against non-primitive key+  if ("development" !== 'production' &&+    isDef(data) && isDef(data.key) && !isPrimitive(data.key)+  ) {+    {+      warn(+        'Avoid using non-primitive value as key, ' ++        'use string/number value instead.',+        context+      );+    }+  }+  // support single function children as default scoped slot+  if (Array.isArray(children) &&+    typeof children[0] === 'function'+  ) {+    data = data || {};+    data.scopedSlots = { default: children[0] };+    children.length = 0;+  }+  if (normalizationType === ALWAYS_NORMALIZE) {+    children = normalizeChildren(children);+  } else if (normalizationType === SIMPLE_NORMALIZE) {+    children = simpleNormalizeChildren(children);+  }+  var vnode, ns;+  if (typeof tag === 'string') {+    var Ctor;+    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);+    if (config.isReservedTag(tag)) {+      // platform built-in elements+      vnode = new VNode(+        config.parsePlatformTagName(tag), data, children,+        undefined, undefined, context+      );+    } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {+      // component+      vnode = createComponent(Ctor, data, context, children, tag);+    } else {+      // unknown or unlisted namespaced elements+      // check at runtime because it may get assigned a namespace when its+      // parent normalizes children+      vnode = new VNode(+        tag, data, children,+        undefined, undefined, context+      );+    }+  } else {+    // direct component options / constructor+    vnode = createComponent(tag, data, context, children);+  }+  if (Array.isArray(vnode)) {+    return vnode+  } else if (isDef(vnode)) {+    if (isDef(ns)) { applyNS(vnode, ns); }+    if (isDef(data)) { registerDeepBindings(data); }+    return vnode+  } else {+    return createEmptyVNode()+  }+}++function applyNS (vnode, ns, force) {+  vnode.ns = ns;+  if (vnode.tag === 'foreignObject') {+    // use default namespace inside foreignObject+    ns = undefined;+    force = true;+  }+  if (isDef(vnode.children)) {+    for (var i = 0, l = vnode.children.length; i < l; i++) {+      var child = vnode.children[i];+      if (isDef(child.tag) && (+        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {+        applyNS(child, ns, force);+      }+    }+  }+}++// ref #5318+// necessary to ensure parent re-render when deep bindings like :style and+// :class are used on slot nodes+function registerDeepBindings (data) {+  if (isObject(data.style)) {+    traverse(data.style);+  }+  if (isObject(data.class)) {+    traverse(data.class);+  }+}++/*  */++function initRender (vm) {+  vm._vnode = null; // the root of the child tree+  vm._staticTrees = null; // v-once cached trees+  var options = vm.$options;+  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree+  var renderContext = parentVnode && parentVnode.context;+  vm.$slots = resolveSlots(options._renderChildren, renderContext);+  vm.$scopedSlots = emptyObject;+  // bind the createElement fn to this instance+  // so that we get proper render context inside it.+  // args order: tag, data, children, normalizationType, alwaysNormalize+  // internal version is used by render functions compiled from templates+  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };+  // normalization is always applied for the public version, used in+  // user-written render functions.+  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };++  // $attrs & $listeners are exposed for easier HOC creation.+  // they need to be reactive so that HOCs using them are always updated+  var parentData = parentVnode && parentVnode.data;++  /* istanbul ignore else */+  {+    defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {+      !isUpdatingChildComponent && warn("$attrs is readonly.", vm);+    }, true);+    defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {+      !isUpdatingChildComponent && warn("$listeners is readonly.", vm);+    }, true);+  }+}++function renderMixin (Vue) {+  // install runtime convenience helpers+  installRenderHelpers(Vue.prototype);++  Vue.prototype.$nextTick = function (fn) {+    return nextTick(fn, this)+  };++  Vue.prototype._render = function () {+    var vm = this;+    var ref = vm.$options;+    var render = ref.render;+    var _parentVnode = ref._parentVnode;++    // reset _rendered flag on slots for duplicate slot check+    {+      for (var key in vm.$slots) {+        // $flow-disable-line+        vm.$slots[key]._rendered = false;+      }+    }++    if (_parentVnode) {+      vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;+    }++    // set parent vnode. this allows render functions to have access+    // to the data on the placeholder node.+    vm.$vnode = _parentVnode;+    // render self+    var vnode;+    try {+      vnode = render.call(vm._renderProxy, vm.$createElement);+    } catch (e) {+      handleError(e, vm, "render");+      // return error render result,+      // or previous vnode to prevent render error causing blank component+      /* istanbul ignore else */+      {+        if (vm.$options.renderError) {+          try {+            vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);+          } catch (e) {+            handleError(e, vm, "renderError");+            vnode = vm._vnode;+          }+        } else {+          vnode = vm._vnode;+        }+      }+    }+    // return empty vnode in case the render function errored out+    if (!(vnode instanceof VNode)) {+      if ("development" !== 'production' && Array.isArray(vnode)) {+        warn(+          'Multiple root nodes returned from render function. Render function ' ++          'should return a single root node.',+          vm+        );+      }+      vnode = createEmptyVNode();+    }+    // set parent+    vnode.parent = _parentVnode;+    return vnode+  };+}++/*  */++var uid$3 = 0;++function initMixin (Vue) {+  Vue.prototype._init = function (options) {+    var vm = this;+    // a uid+    vm._uid = uid$3++;++    var startTag, endTag;+    /* istanbul ignore if */+    if ("development" !== 'production' && config.performance && mark) {+      startTag = "vue-perf-start:" + (vm._uid);+      endTag = "vue-perf-end:" + (vm._uid);+      mark(startTag);+    }++    // a flag to avoid this being observed+    vm._isVue = true;+    // merge options+    if (options && options._isComponent) {+      // optimize internal component instantiation+      // since dynamic options merging is pretty slow, and none of the+      // internal component options needs special treatment.+      initInternalComponent(vm, options);+    } else {+      vm.$options = mergeOptions(+        resolveConstructorOptions(vm.constructor),+        options || {},+        vm+      );+    }+    /* istanbul ignore else */+    {+      initProxy(vm);+    }+    // expose real self+    vm._self = vm;+    initLifecycle(vm);+    initEvents(vm);+    initRender(vm);+    callHook(vm, 'beforeCreate');+    initInjections(vm); // resolve injections before data/props+    initState(vm);+    initProvide(vm); // resolve provide after data/props+    callHook(vm, 'created');++    /* istanbul ignore if */+    if ("development" !== 'production' && config.performance && mark) {+      vm._name = formatComponentName(vm, false);+      mark(endTag);+      measure(("vue " + (vm._name) + " init"), startTag, endTag);+    }++    if (vm.$options.el) {+      vm.$mount(vm.$options.el);+    }+  };+}++function initInternalComponent (vm, options) {+  var opts = vm.$options = Object.create(vm.constructor.options);+  // doing this because it's faster than dynamic enumeration.+  var parentVnode = options._parentVnode;+  opts.parent = options.parent;+  opts._parentVnode = parentVnode;+  opts._parentElm = options._parentElm;+  opts._refElm = options._refElm;++  var vnodeComponentOptions = parentVnode.componentOptions;+  opts.propsData = vnodeComponentOptions.propsData;+  opts._parentListeners = vnodeComponentOptions.listeners;+  opts._renderChildren = vnodeComponentOptions.children;+  opts._componentTag = vnodeComponentOptions.tag;++  if (options.render) {+    opts.render = options.render;+    opts.staticRenderFns = options.staticRenderFns;+  }+}++function resolveConstructorOptions (Ctor) {+  var options = Ctor.options;+  if (Ctor.super) {+    var superOptions = resolveConstructorOptions(Ctor.super);+    var cachedSuperOptions = Ctor.superOptions;+    if (superOptions !== cachedSuperOptions) {+      // super option changed,+      // need to resolve new options.+      Ctor.superOptions = superOptions;+      // check if there are any late-modified/attached options (#4976)+      var modifiedOptions = resolveModifiedOptions(Ctor);+      // update base extend options+      if (modifiedOptions) {+        extend(Ctor.extendOptions, modifiedOptions);+      }+      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);+      if (options.name) {+        options.components[options.name] = Ctor;+      }+    }+  }+  return options+}++function resolveModifiedOptions (Ctor) {+  var modified;+  var latest = Ctor.options;+  var extended = Ctor.extendOptions;+  var sealed = Ctor.sealedOptions;+  for (var key in latest) {+    if (latest[key] !== sealed[key]) {+      if (!modified) { modified = {}; }+      modified[key] = dedupe(latest[key], extended[key], sealed[key]);+    }+  }+  return modified+}++function dedupe (latest, extended, sealed) {+  // compare latest and sealed to ensure lifecycle hooks won't be duplicated+  // between merges+  if (Array.isArray(latest)) {+    var res = [];+    sealed = Array.isArray(sealed) ? sealed : [sealed];+    extended = Array.isArray(extended) ? extended : [extended];+    for (var i = 0; i < latest.length; i++) {+      // push original options and not sealed options to exclude duplicated options+      if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {+        res.push(latest[i]);+      }+    }+    return res+  } else {+    return latest+  }+}++function Vue (options) {+  if ("development" !== 'production' &&+    !(this instanceof Vue)+  ) {+    warn('Vue is a constructor and should be called with the `new` keyword');+  }+  this._init(options);+}++initMixin(Vue);+stateMixin(Vue);+eventsMixin(Vue);+lifecycleMixin(Vue);+renderMixin(Vue);++/*  */++function initUse (Vue) {+  Vue.use = function (plugin) {+    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));+    if (installedPlugins.indexOf(plugin) > -1) {+      return this+    }++    // additional parameters+    var args = toArray(arguments, 1);+    args.unshift(this);+    if (typeof plugin.install === 'function') {+      plugin.install.apply(plugin, args);+    } else if (typeof plugin === 'function') {+      plugin.apply(null, args);+    }+    installedPlugins.push(plugin);+    return this+  };+}++/*  */++function initMixin$1 (Vue) {+  Vue.mixin = function (mixin) {+    this.options = mergeOptions(this.options, mixin);+    return this+  };+}++/*  */++function initExtend (Vue) {+  /**+   * Each instance constructor, including Vue, has a unique+   * cid. This enables us to create wrapped "child+   * constructors" for prototypal inheritance and cache them.+   */+  Vue.cid = 0;+  var cid = 1;++  /**+   * Class inheritance+   */+  Vue.extend = function (extendOptions) {+    extendOptions = extendOptions || {};+    var Super = this;+    var SuperId = Super.cid;+    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});+    if (cachedCtors[SuperId]) {+      return cachedCtors[SuperId]+    }++    var name = extendOptions.name || Super.options.name;+    if ("development" !== 'production' && name) {+      validateComponentName(name);+    }++    var Sub = function VueComponent (options) {+      this._init(options);+    };+    Sub.prototype = Object.create(Super.prototype);+    Sub.prototype.constructor = Sub;+    Sub.cid = cid++;+    Sub.options = mergeOptions(+      Super.options,+      extendOptions+    );+    Sub['super'] = Super;++    // For props and computed properties, we define the proxy getters on+    // the Vue instances at extension time, on the extended prototype. This+    // avoids Object.defineProperty calls for each instance created.+    if (Sub.options.props) {+      initProps$1(Sub);+    }+    if (Sub.options.computed) {+      initComputed$1(Sub);+    }++    // allow further extension/mixin/plugin usage+    Sub.extend = Super.extend;+    Sub.mixin = Super.mixin;+    Sub.use = Super.use;++    // create asset registers, so extended classes+    // can have their private assets too.+    ASSET_TYPES.forEach(function (type) {+      Sub[type] = Super[type];+    });+    // enable recursive self-lookup+    if (name) {+      Sub.options.components[name] = Sub;+    }++    // keep a reference to the super options at extension time.+    // later at instantiation we can check if Super's options have+    // been updated.+    Sub.superOptions = Super.options;+    Sub.extendOptions = extendOptions;+    Sub.sealedOptions = extend({}, Sub.options);++    // cache constructor+    cachedCtors[SuperId] = Sub;+    return Sub+  };+}++function initProps$1 (Comp) {+  var props = Comp.options.props;+  for (var key in props) {+    proxy(Comp.prototype, "_props", key);+  }+}++function initComputed$1 (Comp) {+  var computed = Comp.options.computed;+  for (var key in computed) {+    defineComputed(Comp.prototype, key, computed[key]);+  }+}++/*  */++function initAssetRegisters (Vue) {+  /**+   * Create asset registration methods.+   */+  ASSET_TYPES.forEach(function (type) {+    Vue[type] = function (+      id,+      definition+    ) {+      if (!definition) {+        return this.options[type + 's'][id]+      } else {+        /* istanbul ignore if */+        if ("development" !== 'production' && type === 'component') {+          validateComponentName(id);+        }+        if (type === 'component' && isPlainObject(definition)) {+          definition.name = definition.name || id;+          definition = this.options._base.extend(definition);+        }+        if (type === 'directive' && typeof definition === 'function') {+          definition = { bind: definition, update: definition };+        }+        this.options[type + 's'][id] = definition;+        return definition+      }+    };+  });+}++/*  */++function getComponentName (opts) {+  return opts && (opts.Ctor.options.name || opts.tag)+}++function matches (pattern, name) {+  if (Array.isArray(pattern)) {+    return pattern.indexOf(name) > -1+  } else if (typeof pattern === 'string') {+    return pattern.split(',').indexOf(name) > -1+  } else if (isRegExp(pattern)) {+    return pattern.test(name)+  }+  /* istanbul ignore next */+  return false+}++function pruneCache (keepAliveInstance, filter) {+  var cache = keepAliveInstance.cache;+  var keys = keepAliveInstance.keys;+  var _vnode = keepAliveInstance._vnode;+  for (var key in cache) {+    var cachedNode = cache[key];+    if (cachedNode) {+      var name = getComponentName(cachedNode.componentOptions);+      if (name && !filter(name)) {+        pruneCacheEntry(cache, key, keys, _vnode);+      }+    }+  }+}++function pruneCacheEntry (+  cache,+  key,+  keys,+  current+) {+  var cached$$1 = cache[key];+  if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {+    cached$$1.componentInstance.$destroy();+  }+  cache[key] = null;+  remove(keys, key);+}++var patternTypes = [String, RegExp, Array];++var KeepAlive = {+  name: 'keep-alive',+  abstract: true,++  props: {+    include: patternTypes,+    exclude: patternTypes,+    max: [String, Number]+  },++  created: function created () {+    this.cache = Object.create(null);+    this.keys = [];+  },++  destroyed: function destroyed () {+    var this$1 = this;++    for (var key in this$1.cache) {+      pruneCacheEntry(this$1.cache, key, this$1.keys);+    }+  },++  mounted: function mounted () {+    var this$1 = this;++    this.$watch('include', function (val) {+      pruneCache(this$1, function (name) { return matches(val, name); });+    });+    this.$watch('exclude', function (val) {+      pruneCache(this$1, function (name) { return !matches(val, name); });+    });+  },++  render: function render () {+    var slot = this.$slots.default;+    var vnode = getFirstComponentChild(slot);+    var componentOptions = vnode && vnode.componentOptions;+    if (componentOptions) {+      // check pattern+      var name = getComponentName(componentOptions);+      var ref = this;+      var include = ref.include;+      var exclude = ref.exclude;+      if (+        // not included+        (include && (!name || !matches(include, name))) ||+        // excluded+        (exclude && name && matches(exclude, name))+      ) {+        return vnode+      }++      var ref$1 = this;+      var cache = ref$1.cache;+      var keys = ref$1.keys;+      var key = vnode.key == null+        // same constructor may get registered as different local components+        // so cid alone is not enough (#3269)+        ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')+        : vnode.key;+      if (cache[key]) {+        vnode.componentInstance = cache[key].componentInstance;+        // make current key freshest+        remove(keys, key);+        keys.push(key);+      } else {+        cache[key] = vnode;+        keys.push(key);+        // prune oldest entry+        if (this.max && keys.length > parseInt(this.max)) {+          pruneCacheEntry(cache, keys[0], keys, this._vnode);+        }+      }++      vnode.data.keepAlive = true;+    }+    return vnode || (slot && slot[0])+  }+}++var builtInComponents = {+  KeepAlive: KeepAlive+}++/*  */++function initGlobalAPI (Vue) {+  // config+  var configDef = {};+  configDef.get = function () { return config; };+  {+    configDef.set = function () {+      warn(+        'Do not replace the Vue.config object, set individual fields instead.'+      );+    };+  }+  Object.defineProperty(Vue, 'config', configDef);++  // exposed util methods.+  // NOTE: these are not considered part of the public API - avoid relying on+  // them unless you are aware of the risk.+  Vue.util = {+    warn: warn,+    extend: extend,+    mergeOptions: mergeOptions,+    defineReactive: defineReactive+  };++  Vue.set = set;+  Vue.delete = del;+  Vue.nextTick = nextTick;++  Vue.options = Object.create(null);+  ASSET_TYPES.forEach(function (type) {+    Vue.options[type + 's'] = Object.create(null);+  });++  // this is used to identify the "base" constructor to extend all plain-object+  // components with in Weex's multi-instance scenarios.+  Vue.options._base = Vue;++  extend(Vue.options.components, builtInComponents);++  initUse(Vue);+  initMixin$1(Vue);+  initExtend(Vue);+  initAssetRegisters(Vue);+}++initGlobalAPI(Vue);++Object.defineProperty(Vue.prototype, '$isServer', {+  get: isServerRendering+});++Object.defineProperty(Vue.prototype, '$ssrContext', {+  get: function get () {+    /* istanbul ignore next */+    return this.$vnode && this.$vnode.ssrContext+  }+});++// expose FunctionalRenderContext for ssr runtime helper installation+Object.defineProperty(Vue, 'FunctionalRenderContext', {+  value: FunctionalRenderContext+});++Vue.version = '2.5.17';++/*  */++// these are reserved for web because they are directly compiled away+// during template compilation+var isReservedAttr = makeMap('style,class');++// attributes that should be using props for binding+var acceptValue = makeMap('input,textarea,option,select,progress');+var mustUseProp = function (tag, type, attr) {+  return (+    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||+    (attr === 'selected' && tag === 'option') ||+    (attr === 'checked' && tag === 'input') ||+    (attr === 'muted' && tag === 'video')+  )+};++var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');++var isBooleanAttr = makeMap(+  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' ++  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' ++  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' ++  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' ++  'required,reversed,scoped,seamless,selected,sortable,translate,' ++  'truespeed,typemustmatch,visible'+);++var xlinkNS = 'http://www.w3.org/1999/xlink';++var isXlink = function (name) {+  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'+};++var getXlinkProp = function (name) {+  return isXlink(name) ? name.slice(6, name.length) : ''+};++var isFalsyAttrValue = function (val) {+  return val == null || val === false+};++/*  */++function genClassForVnode (vnode) {+  var data = vnode.data;+  var parentNode = vnode;+  var childNode = vnode;+  while (isDef(childNode.componentInstance)) {+    childNode = childNode.componentInstance._vnode;+    if (childNode && childNode.data) {+      data = mergeClassData(childNode.data, data);+    }+  }+  while (isDef(parentNode = parentNode.parent)) {+    if (parentNode && parentNode.data) {+      data = mergeClassData(data, parentNode.data);+    }+  }+  return renderClass(data.staticClass, data.class)+}++function mergeClassData (child, parent) {+  return {+    staticClass: concat(child.staticClass, parent.staticClass),+    class: isDef(child.class)+      ? [child.class, parent.class]+      : parent.class+  }+}++function renderClass (+  staticClass,+  dynamicClass+) {+  if (isDef(staticClass) || isDef(dynamicClass)) {+    return concat(staticClass, stringifyClass(dynamicClass))+  }+  /* istanbul ignore next */+  return ''+}++function concat (a, b) {+  return a ? b ? (a + ' ' + b) : a : (b || '')+}++function stringifyClass (value) {+  if (Array.isArray(value)) {+    return stringifyArray(value)+  }+  if (isObject(value)) {+    return stringifyObject(value)+  }+  if (typeof value === 'string') {+    return value+  }+  /* istanbul ignore next */+  return ''+}++function stringifyArray (value) {+  var res = '';+  var stringified;+  for (var i = 0, l = value.length; i < l; i++) {+    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {+      if (res) { res += ' '; }+      res += stringified;+    }+  }+  return res+}++function stringifyObject (value) {+  var res = '';+  for (var key in value) {+    if (value[key]) {+      if (res) { res += ' '; }+      res += key;+    }+  }+  return res+}++/*  */++var namespaceMap = {+  svg: 'http://www.w3.org/2000/svg',+  math: 'http://www.w3.org/1998/Math/MathML'+};++var isHTMLTag = makeMap(+  'html,body,base,head,link,meta,style,title,' ++  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' ++  'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' ++  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' ++  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' ++  'embed,object,param,source,canvas,script,noscript,del,ins,' ++  'caption,col,colgroup,table,thead,tbody,td,th,tr,' ++  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' ++  'output,progress,select,textarea,' ++  'details,dialog,menu,menuitem,summary,' ++  'content,element,shadow,template,blockquote,iframe,tfoot'+);++// this map is intentionally selective, only covering SVG elements that may+// contain child elements.+var isSVG = makeMap(+  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' ++  'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' ++  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',+  true+);++var isPreTag = function (tag) { return tag === 'pre'; };++var isReservedTag = function (tag) {+  return isHTMLTag(tag) || isSVG(tag)+};++function getTagNamespace (tag) {+  if (isSVG(tag)) {+    return 'svg'+  }+  // basic support for MathML+  // note it doesn't support other MathML elements being component roots+  if (tag === 'math') {+    return 'math'+  }+}++var unknownElementCache = Object.create(null);+function isUnknownElement (tag) {+  /* istanbul ignore if */+  if (!inBrowser) {+    return true+  }+  if (isReservedTag(tag)) {+    return false+  }+  tag = tag.toLowerCase();+  /* istanbul ignore if */+  if (unknownElementCache[tag] != null) {+    return unknownElementCache[tag]+  }+  var el = document.createElement(tag);+  if (tag.indexOf('-') > -1) {+    // http://stackoverflow.com/a/28210364/1070244+    return (unknownElementCache[tag] = (+      el.constructor === window.HTMLUnknownElement ||+      el.constructor === window.HTMLElement+    ))+  } else {+    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))+  }+}++var isTextInputType = makeMap('text,number,password,search,email,tel,url');++/*  */++/**+ * Query an element selector if it's not an element already.+ */+function query (el) {+  if (typeof el === 'string') {+    var selected = document.querySelector(el);+    if (!selected) {+      "development" !== 'production' && warn(+        'Cannot find element: ' + el+      );+      return document.createElement('div')+    }+    return selected+  } else {+    return el+  }+}++/*  */++function createElement$1 (tagName, vnode) {+  var elm = document.createElement(tagName);+  if (tagName !== 'select') {+    return elm+  }+  // false or null will remove the attribute but undefined will not+  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {+    elm.setAttribute('multiple', 'multiple');+  }+  return elm+}++function createElementNS (namespace, tagName) {+  return document.createElementNS(namespaceMap[namespace], tagName)+}++function createTextNode (text) {+  return document.createTextNode(text)+}++function createComment (text) {+  return document.createComment(text)+}++function insertBefore (parentNode, newNode, referenceNode) {+  parentNode.insertBefore(newNode, referenceNode);+}++function removeChild (node, child) {+  node.removeChild(child);+}++function appendChild (node, child) {+  node.appendChild(child);+}++function parentNode (node) {+  return node.parentNode+}++function nextSibling (node) {+  return node.nextSibling+}++function tagName (node) {+  return node.tagName+}++function setTextContent (node, text) {+  node.textContent = text;+}++function setStyleScope (node, scopeId) {+  node.setAttribute(scopeId, '');+}+++var nodeOps = Object.freeze({+	createElement: createElement$1,+	createElementNS: createElementNS,+	createTextNode: createTextNode,+	createComment: createComment,+	insertBefore: insertBefore,+	removeChild: removeChild,+	appendChild: appendChild,+	parentNode: parentNode,+	nextSibling: nextSibling,+	tagName: tagName,+	setTextContent: setTextContent,+	setStyleScope: setStyleScope+});++/*  */++var ref = {+  create: function create (_, vnode) {+    registerRef(vnode);+  },+  update: function update (oldVnode, vnode) {+    if (oldVnode.data.ref !== vnode.data.ref) {+      registerRef(oldVnode, true);+      registerRef(vnode);+    }+  },+  destroy: function destroy (vnode) {+    registerRef(vnode, true);+  }+}++function registerRef (vnode, isRemoval) {+  var key = vnode.data.ref;+  if (!isDef(key)) { return }++  var vm = vnode.context;+  var ref = vnode.componentInstance || vnode.elm;+  var refs = vm.$refs;+  if (isRemoval) {+    if (Array.isArray(refs[key])) {+      remove(refs[key], ref);+    } else if (refs[key] === ref) {+      refs[key] = undefined;+    }+  } else {+    if (vnode.data.refInFor) {+      if (!Array.isArray(refs[key])) {+        refs[key] = [ref];+      } else if (refs[key].indexOf(ref) < 0) {+        // $flow-disable-line+        refs[key].push(ref);+      }+    } else {+      refs[key] = ref;+    }+  }+}++/**+ * Virtual DOM patching algorithm based on Snabbdom by+ * Simon Friis Vindum (@paldepind)+ * Licensed under the MIT License+ * https://github.com/paldepind/snabbdom/blob/master/LICENSE+ *+ * modified by Evan You (@yyx990803)+ *+ * Not type-checking this because this file is perf-critical and the cost+ * of making flow understand it is not worth it.+ */++var emptyNode = new VNode('', {}, []);++var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];++function sameVnode (a, b) {+  return (+    a.key === b.key && (+      (+        a.tag === b.tag &&+        a.isComment === b.isComment &&+        isDef(a.data) === isDef(b.data) &&+        sameInputType(a, b)+      ) || (+        isTrue(a.isAsyncPlaceholder) &&+        a.asyncFactory === b.asyncFactory &&+        isUndef(b.asyncFactory.error)+      )+    )+  )+}++function sameInputType (a, b) {+  if (a.tag !== 'input') { return true }+  var i;+  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;+  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;+  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)+}++function createKeyToOldIdx (children, beginIdx, endIdx) {+  var i, key;+  var map = {};+  for (i = beginIdx; i <= endIdx; ++i) {+    key = children[i].key;+    if (isDef(key)) { map[key] = i; }+  }+  return map+}++function createPatchFunction (backend) {+  var i, j;+  var cbs = {};++  var modules = backend.modules;+  var nodeOps = backend.nodeOps;++  for (i = 0; i < hooks.length; ++i) {+    cbs[hooks[i]] = [];+    for (j = 0; j < modules.length; ++j) {+      if (isDef(modules[j][hooks[i]])) {+        cbs[hooks[i]].push(modules[j][hooks[i]]);+      }+    }+  }++  function emptyNodeAt (elm) {+    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)+  }++  function createRmCb (childElm, listeners) {+    function remove () {+      if (--remove.listeners === 0) {+        removeNode(childElm);+      }+    }+    remove.listeners = listeners;+    return remove+  }++  function removeNode (el) {+    var parent = nodeOps.parentNode(el);+    // element may have already been removed due to v-html / v-text+    if (isDef(parent)) {+      nodeOps.removeChild(parent, el);+    }+  }++  function isUnknownElement$$1 (vnode, inVPre) {+    return (+      !inVPre &&+      !vnode.ns &&+      !(+        config.ignoredElements.length &&+        config.ignoredElements.some(function (ignore) {+          return isRegExp(ignore)+            ? ignore.test(vnode.tag)+            : ignore === vnode.tag+        })+      ) &&+      config.isUnknownElement(vnode.tag)+    )+  }++  var creatingElmInVPre = 0;++  function createElm (+    vnode,+    insertedVnodeQueue,+    parentElm,+    refElm,+    nested,+    ownerArray,+    index+  ) {+    if (isDef(vnode.elm) && isDef(ownerArray)) {+      // This vnode was used in a previous render!+      // now it's used as a new node, overwriting its elm would cause+      // potential patch errors down the road when it's used as an insertion+      // reference node. Instead, we clone the node on-demand before creating+      // associated DOM element for it.+      vnode = ownerArray[index] = cloneVNode(vnode);+    }++    vnode.isRootInsert = !nested; // for transition enter check+    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {+      return+    }++    var data = vnode.data;+    var children = vnode.children;+    var tag = vnode.tag;+    if (isDef(tag)) {+      {+        if (data && data.pre) {+          creatingElmInVPre++;+        }+        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {+          warn(+            'Unknown custom element: <' + tag + '> - did you ' ++            'register the component correctly? For recursive components, ' ++            'make sure to provide the "name" option.',+            vnode.context+          );+        }+      }++      vnode.elm = vnode.ns+        ? nodeOps.createElementNS(vnode.ns, tag)+        : nodeOps.createElement(tag, vnode);+      setScope(vnode);++      /* istanbul ignore if */+      {+        createChildren(vnode, children, insertedVnodeQueue);+        if (isDef(data)) {+          invokeCreateHooks(vnode, insertedVnodeQueue);+        }+        insert(parentElm, vnode.elm, refElm);+      }++      if ("development" !== 'production' && data && data.pre) {+        creatingElmInVPre--;+      }+    } else if (isTrue(vnode.isComment)) {+      vnode.elm = nodeOps.createComment(vnode.text);+      insert(parentElm, vnode.elm, refElm);+    } else {+      vnode.elm = nodeOps.createTextNode(vnode.text);+      insert(parentElm, vnode.elm, refElm);+    }+  }++  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {+    var i = vnode.data;+    if (isDef(i)) {+      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;+      if (isDef(i = i.hook) && isDef(i = i.init)) {+        i(vnode, false /* hydrating */, parentElm, refElm);+      }+      // after calling the init hook, if the vnode is a child component+      // it should've created a child instance and mounted it. the child+      // component also has set the placeholder vnode's elm.+      // in that case we can just return the element and be done.+      if (isDef(vnode.componentInstance)) {+        initComponent(vnode, insertedVnodeQueue);+        if (isTrue(isReactivated)) {+          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);+        }+        return true+      }+    }+  }++  function initComponent (vnode, insertedVnodeQueue) {+    if (isDef(vnode.data.pendingInsert)) {+      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);+      vnode.data.pendingInsert = null;+    }+    vnode.elm = vnode.componentInstance.$el;+    if (isPatchable(vnode)) {+      invokeCreateHooks(vnode, insertedVnodeQueue);+      setScope(vnode);+    } else {+      // empty component root.+      // skip all element-related modules except for ref (#3455)+      registerRef(vnode);+      // make sure to invoke the insert hook+      insertedVnodeQueue.push(vnode);+    }+  }++  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {+    var i;+    // hack for #4339: a reactivated component with inner transition+    // does not trigger because the inner node's created hooks are not called+    // again. It's not ideal to involve module-specific logic in here but+    // there doesn't seem to be a better way to do it.+    var innerNode = vnode;+    while (innerNode.componentInstance) {+      innerNode = innerNode.componentInstance._vnode;+      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {+        for (i = 0; i < cbs.activate.length; ++i) {+          cbs.activate[i](emptyNode, innerNode);+        }+        insertedVnodeQueue.push(innerNode);+        break+      }+    }+    // unlike a newly created component,+    // a reactivated keep-alive component doesn't insert itself+    insert(parentElm, vnode.elm, refElm);+  }++  function insert (parent, elm, ref$$1) {+    if (isDef(parent)) {+      if (isDef(ref$$1)) {+        if (ref$$1.parentNode === parent) {+          nodeOps.insertBefore(parent, elm, ref$$1);+        }+      } else {+        nodeOps.appendChild(parent, elm);+      }+    }+  }++  function createChildren (vnode, children, insertedVnodeQueue) {+    if (Array.isArray(children)) {+      {+        checkDuplicateKeys(children);+      }+      for (var i = 0; i < children.length; ++i) {+        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);+      }+    } else if (isPrimitive(vnode.text)) {+      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));+    }+  }++  function isPatchable (vnode) {+    while (vnode.componentInstance) {+      vnode = vnode.componentInstance._vnode;+    }+    return isDef(vnode.tag)+  }++  function invokeCreateHooks (vnode, insertedVnodeQueue) {+    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {+      cbs.create[i$1](emptyNode, vnode);+    }+    i = vnode.data.hook; // Reuse variable+    if (isDef(i)) {+      if (isDef(i.create)) { i.create(emptyNode, vnode); }+      if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }+    }+  }++  // set scope id attribute for scoped CSS.+  // this is implemented as a special case to avoid the overhead+  // of going through the normal attribute patching process.+  function setScope (vnode) {+    var i;+    if (isDef(i = vnode.fnScopeId)) {+      nodeOps.setStyleScope(vnode.elm, i);+    } else {+      var ancestor = vnode;+      while (ancestor) {+        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {+          nodeOps.setStyleScope(vnode.elm, i);+        }+        ancestor = ancestor.parent;+      }+    }+    // for slot content they should also get the scopeId from the host instance.+    if (isDef(i = activeInstance) &&+      i !== vnode.context &&+      i !== vnode.fnContext &&+      isDef(i = i.$options._scopeId)+    ) {+      nodeOps.setStyleScope(vnode.elm, i);+    }+  }++  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {+    for (; startIdx <= endIdx; ++startIdx) {+      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);+    }+  }++  function invokeDestroyHook (vnode) {+    var i, j;+    var data = vnode.data;+    if (isDef(data)) {+      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }+      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }+    }+    if (isDef(i = vnode.children)) {+      for (j = 0; j < vnode.children.length; ++j) {+        invokeDestroyHook(vnode.children[j]);+      }+    }+  }++  function removeVnodes (parentElm, vnodes, startIdx, endIdx) {+    for (; startIdx <= endIdx; ++startIdx) {+      var ch = vnodes[startIdx];+      if (isDef(ch)) {+        if (isDef(ch.tag)) {+          removeAndInvokeRemoveHook(ch);+          invokeDestroyHook(ch);+        } else { // Text node+          removeNode(ch.elm);+        }+      }+    }+  }++  function removeAndInvokeRemoveHook (vnode, rm) {+    if (isDef(rm) || isDef(vnode.data)) {+      var i;+      var listeners = cbs.remove.length + 1;+      if (isDef(rm)) {+        // we have a recursively passed down rm callback+        // increase the listeners count+        rm.listeners += listeners;+      } else {+        // directly removing+        rm = createRmCb(vnode.elm, listeners);+      }+      // recursively invoke hooks on child component root node+      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {+        removeAndInvokeRemoveHook(i, rm);+      }+      for (i = 0; i < cbs.remove.length; ++i) {+        cbs.remove[i](vnode, rm);+      }+      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {+        i(vnode, rm);+      } else {+        rm();+      }+    } else {+      removeNode(vnode.elm);+    }+  }++  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {+    var oldStartIdx = 0;+    var newStartIdx = 0;+    var oldEndIdx = oldCh.length - 1;+    var oldStartVnode = oldCh[0];+    var oldEndVnode = oldCh[oldEndIdx];+    var newEndIdx = newCh.length - 1;+    var newStartVnode = newCh[0];+    var newEndVnode = newCh[newEndIdx];+    var oldKeyToIdx, idxInOld, vnodeToMove, refElm;++    // removeOnly is a special flag used only by <transition-group>+    // to ensure removed elements stay in correct relative positions+    // during leaving transitions+    var canMove = !removeOnly;++    {+      checkDuplicateKeys(newCh);+    }++    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {+      if (isUndef(oldStartVnode)) {+        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left+      } else if (isUndef(oldEndVnode)) {+        oldEndVnode = oldCh[--oldEndIdx];+      } else if (sameVnode(oldStartVnode, newStartVnode)) {+        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);+        oldStartVnode = oldCh[++oldStartIdx];+        newStartVnode = newCh[++newStartIdx];+      } else if (sameVnode(oldEndVnode, newEndVnode)) {+        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);+        oldEndVnode = oldCh[--oldEndIdx];+        newEndVnode = newCh[--newEndIdx];+      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right+        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);+        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));+        oldStartVnode = oldCh[++oldStartIdx];+        newEndVnode = newCh[--newEndIdx];+      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left+        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);+        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);+        oldEndVnode = oldCh[--oldEndIdx];+        newStartVnode = newCh[++newStartIdx];+      } else {+        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }+        idxInOld = isDef(newStartVnode.key)+          ? oldKeyToIdx[newStartVnode.key]+          : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);+        if (isUndef(idxInOld)) { // New element+          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);+        } else {+          vnodeToMove = oldCh[idxInOld];+          if (sameVnode(vnodeToMove, newStartVnode)) {+            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);+            oldCh[idxInOld] = undefined;+            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);+          } else {+            // same key but different element. treat as new element+            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);+          }+        }+        newStartVnode = newCh[++newStartIdx];+      }+    }+    if (oldStartIdx > oldEndIdx) {+      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;+      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);+    } else if (newStartIdx > newEndIdx) {+      removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);+    }+  }++  function checkDuplicateKeys (children) {+    var seenKeys = {};+    for (var i = 0; i < children.length; i++) {+      var vnode = children[i];+      var key = vnode.key;+      if (isDef(key)) {+        if (seenKeys[key]) {+          warn(+            ("Duplicate keys detected: '" + key + "'. This may cause an update error."),+            vnode.context+          );+        } else {+          seenKeys[key] = true;+        }+      }+    }+  }++  function findIdxInOld (node, oldCh, start, end) {+    for (var i = start; i < end; i++) {+      var c = oldCh[i];+      if (isDef(c) && sameVnode(node, c)) { return i }+    }+  }++  function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {+    if (oldVnode === vnode) {+      return+    }++    var elm = vnode.elm = oldVnode.elm;++    if (isTrue(oldVnode.isAsyncPlaceholder)) {+      if (isDef(vnode.asyncFactory.resolved)) {+        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);+      } else {+        vnode.isAsyncPlaceholder = true;+      }+      return+    }++    // reuse element for static trees.+    // note we only do this if the vnode is cloned -+    // if the new node is not cloned it means the render functions have been+    // reset by the hot-reload-api and we need to do a proper re-render.+    if (isTrue(vnode.isStatic) &&+      isTrue(oldVnode.isStatic) &&+      vnode.key === oldVnode.key &&+      (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))+    ) {+      vnode.componentInstance = oldVnode.componentInstance;+      return+    }++    var i;+    var data = vnode.data;+    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {+      i(oldVnode, vnode);+    }++    var oldCh = oldVnode.children;+    var ch = vnode.children;+    if (isDef(data) && isPatchable(vnode)) {+      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }+      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }+    }+    if (isUndef(vnode.text)) {+      if (isDef(oldCh) && isDef(ch)) {+        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }+      } else if (isDef(ch)) {+        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }+        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);+      } else if (isDef(oldCh)) {+        removeVnodes(elm, oldCh, 0, oldCh.length - 1);+      } else if (isDef(oldVnode.text)) {+        nodeOps.setTextContent(elm, '');+      }+    } else if (oldVnode.text !== vnode.text) {+      nodeOps.setTextContent(elm, vnode.text);+    }+    if (isDef(data)) {+      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }+    }+  }++  function invokeInsertHook (vnode, queue, initial) {+    // delay insert hooks for component root nodes, invoke them after the+    // element is really inserted+    if (isTrue(initial) && isDef(vnode.parent)) {+      vnode.parent.data.pendingInsert = queue;+    } else {+      for (var i = 0; i < queue.length; ++i) {+        queue[i].data.hook.insert(queue[i]);+      }+    }+  }++  var hydrationBailed = false;+  // list of modules that can skip create hook during hydration because they+  // are already rendered on the client or has no need for initialization+  // Note: style is excluded because it relies on initial clone for future+  // deep updates (#7063).+  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');++  // Note: this is a browser-only function so we can assume elms are DOM nodes.+  function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {+    var i;+    var tag = vnode.tag;+    var data = vnode.data;+    var children = vnode.children;+    inVPre = inVPre || (data && data.pre);+    vnode.elm = elm;++    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {+      vnode.isAsyncPlaceholder = true;+      return true+    }+    // assert node match+    {+      if (!assertNodeMatch(elm, vnode, inVPre)) {+        return false+      }+    }+    if (isDef(data)) {+      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }+      if (isDef(i = vnode.componentInstance)) {+        // child component. it should have hydrated its own tree.+        initComponent(vnode, insertedVnodeQueue);+        return true+      }+    }+    if (isDef(tag)) {+      if (isDef(children)) {+        // empty element, allow client to pick up and populate children+        if (!elm.hasChildNodes()) {+          createChildren(vnode, children, insertedVnodeQueue);+        } else {+          // v-html and domProps: innerHTML+          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {+            if (i !== elm.innerHTML) {+              /* istanbul ignore if */+              if ("development" !== 'production' &&+                typeof console !== 'undefined' &&+                !hydrationBailed+              ) {+                hydrationBailed = true;+                console.warn('Parent: ', elm);+                console.warn('server innerHTML: ', i);+                console.warn('client innerHTML: ', elm.innerHTML);+              }+              return false+            }+          } else {+            // iterate and compare children lists+            var childrenMatch = true;+            var childNode = elm.firstChild;+            for (var i$1 = 0; i$1 < children.length; i$1++) {+              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {+                childrenMatch = false;+                break+              }+              childNode = childNode.nextSibling;+            }+            // if childNode is not null, it means the actual childNodes list is+            // longer than the virtual children list.+            if (!childrenMatch || childNode) {+              /* istanbul ignore if */+              if ("development" !== 'production' &&+                typeof console !== 'undefined' &&+                !hydrationBailed+              ) {+                hydrationBailed = true;+                console.warn('Parent: ', elm);+                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);+              }+              return false+            }+          }+        }+      }+      if (isDef(data)) {+        var fullInvoke = false;+        for (var key in data) {+          if (!isRenderedModule(key)) {+            fullInvoke = true;+            invokeCreateHooks(vnode, insertedVnodeQueue);+            break+          }+        }+        if (!fullInvoke && data['class']) {+          // ensure collecting deps for deep class bindings for future updates+          traverse(data['class']);+        }+      }+    } else if (elm.data !== vnode.text) {+      elm.data = vnode.text;+    }+    return true+  }++  function assertNodeMatch (node, vnode, inVPre) {+    if (isDef(vnode.tag)) {+      return vnode.tag.indexOf('vue-component') === 0 || (+        !isUnknownElement$$1(vnode, inVPre) &&+        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())+      )+    } else {+      return node.nodeType === (vnode.isComment ? 8 : 3)+    }+  }++  return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {+    if (isUndef(vnode)) {+      if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }+      return+    }++    var isInitialPatch = false;+    var insertedVnodeQueue = [];++    if (isUndef(oldVnode)) {+      // empty mount (likely as component), create new root element+      isInitialPatch = true;+      createElm(vnode, insertedVnodeQueue, parentElm, refElm);+    } else {+      var isRealElement = isDef(oldVnode.nodeType);+      if (!isRealElement && sameVnode(oldVnode, vnode)) {+        // patch existing root node+        patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);+      } else {+        if (isRealElement) {+          // mounting to a real element+          // check if this is server-rendered content and if we can perform+          // a successful hydration.+          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {+            oldVnode.removeAttribute(SSR_ATTR);+            hydrating = true;+          }+          if (isTrue(hydrating)) {+            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {+              invokeInsertHook(vnode, insertedVnodeQueue, true);+              return oldVnode+            } else {+              warn(+                'The client-side rendered virtual DOM tree is not matching ' ++                'server-rendered content. This is likely caused by incorrect ' ++                'HTML markup, for example nesting block-level elements inside ' ++                '<p>, or missing <tbody>. Bailing hydration and performing ' ++                'full client-side render.'+              );+            }+          }+          // either not server-rendered, or hydration failed.+          // create an empty node and replace it+          oldVnode = emptyNodeAt(oldVnode);+        }++        // replacing existing element+        var oldElm = oldVnode.elm;+        var parentElm$1 = nodeOps.parentNode(oldElm);++        // create new node+        createElm(+          vnode,+          insertedVnodeQueue,+          // extremely rare edge case: do not insert if old element is in a+          // leaving transition. Only happens when combining transition ++          // keep-alive + HOCs. (#4590)+          oldElm._leaveCb ? null : parentElm$1,+          nodeOps.nextSibling(oldElm)+        );++        // update parent placeholder node element, recursively+        if (isDef(vnode.parent)) {+          var ancestor = vnode.parent;+          var patchable = isPatchable(vnode);+          while (ancestor) {+            for (var i = 0; i < cbs.destroy.length; ++i) {+              cbs.destroy[i](ancestor);+            }+            ancestor.elm = vnode.elm;+            if (patchable) {+              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {+                cbs.create[i$1](emptyNode, ancestor);+              }+              // #6513+              // invoke insert hooks that may have been merged by create hooks.+              // e.g. for directives that uses the "inserted" hook.+              var insert = ancestor.data.hook.insert;+              if (insert.merged) {+                // start at index 1 to avoid re-invoking component mounted hook+                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {+                  insert.fns[i$2]();+                }+              }+            } else {+              registerRef(ancestor);+            }+            ancestor = ancestor.parent;+          }+        }++        // destroy old node+        if (isDef(parentElm$1)) {+          removeVnodes(parentElm$1, [oldVnode], 0, 0);+        } else if (isDef(oldVnode.tag)) {+          invokeDestroyHook(oldVnode);+        }+      }+    }++    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);+    return vnode.elm+  }+}++/*  */++var directives = {+  create: updateDirectives,+  update: updateDirectives,+  destroy: function unbindDirectives (vnode) {+    updateDirectives(vnode, emptyNode);+  }+}++function updateDirectives (oldVnode, vnode) {+  if (oldVnode.data.directives || vnode.data.directives) {+    _update(oldVnode, vnode);+  }+}++function _update (oldVnode, vnode) {+  var isCreate = oldVnode === emptyNode;+  var isDestroy = vnode === emptyNode;+  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);+  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);++  var dirsWithInsert = [];+  var dirsWithPostpatch = [];++  var key, oldDir, dir;+  for (key in newDirs) {+    oldDir = oldDirs[key];+    dir = newDirs[key];+    if (!oldDir) {+      // new directive, bind+      callHook$1(dir, 'bind', vnode, oldVnode);+      if (dir.def && dir.def.inserted) {+        dirsWithInsert.push(dir);+      }+    } else {+      // existing directive, update+      dir.oldValue = oldDir.value;+      callHook$1(dir, 'update', vnode, oldVnode);+      if (dir.def && dir.def.componentUpdated) {+        dirsWithPostpatch.push(dir);+      }+    }+  }++  if (dirsWithInsert.length) {+    var callInsert = function () {+      for (var i = 0; i < dirsWithInsert.length; i++) {+        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);+      }+    };+    if (isCreate) {+      mergeVNodeHook(vnode, 'insert', callInsert);+    } else {+      callInsert();+    }+  }++  if (dirsWithPostpatch.length) {+    mergeVNodeHook(vnode, 'postpatch', function () {+      for (var i = 0; i < dirsWithPostpatch.length; i++) {+        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);+      }+    });+  }++  if (!isCreate) {+    for (key in oldDirs) {+      if (!newDirs[key]) {+        // no longer present, unbind+        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);+      }+    }+  }+}++var emptyModifiers = Object.create(null);++function normalizeDirectives$1 (+  dirs,+  vm+) {+  var res = Object.create(null);+  if (!dirs) {+    // $flow-disable-line+    return res+  }+  var i, dir;+  for (i = 0; i < dirs.length; i++) {+    dir = dirs[i];+    if (!dir.modifiers) {+      // $flow-disable-line+      dir.modifiers = emptyModifiers;+    }+    res[getRawDirName(dir)] = dir;+    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);+  }+  // $flow-disable-line+  return res+}++function getRawDirName (dir) {+  return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))+}++function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {+  var fn = dir.def && dir.def[hook];+  if (fn) {+    try {+      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);+    } catch (e) {+      handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));+    }+  }+}++var baseModules = [+  ref,+  directives+]++/*  */++function updateAttrs (oldVnode, vnode) {+  var opts = vnode.componentOptions;+  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {+    return+  }+  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {+    return+  }+  var key, cur, old;+  var elm = vnode.elm;+  var oldAttrs = oldVnode.data.attrs || {};+  var attrs = vnode.data.attrs || {};+  // clone observed objects, as the user probably wants to mutate it+  if (isDef(attrs.__ob__)) {+    attrs = vnode.data.attrs = extend({}, attrs);+  }++  for (key in attrs) {+    cur = attrs[key];+    old = oldAttrs[key];+    if (old !== cur) {+      setAttr(elm, key, cur);+    }+  }+  // #4391: in IE9, setting type can reset value for input[type=radio]+  // #6666: IE/Edge forces progress value down to 1 before setting a max+  /* istanbul ignore if */+  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {+    setAttr(elm, 'value', attrs.value);+  }+  for (key in oldAttrs) {+    if (isUndef(attrs[key])) {+      if (isXlink(key)) {+        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));+      } else if (!isEnumeratedAttr(key)) {+        elm.removeAttribute(key);+      }+    }+  }+}++function setAttr (el, key, value) {+  if (el.tagName.indexOf('-') > -1) {+    baseSetAttr(el, key, value);+  } else if (isBooleanAttr(key)) {+    // set attribute for blank value+    // e.g. <option disabled>Select one</option>+    if (isFalsyAttrValue(value)) {+      el.removeAttribute(key);+    } else {+      // technically allowfullscreen is a boolean attribute for <iframe>,+      // but Flash expects a value of "true" when used on <embed> tag+      value = key === 'allowfullscreen' && el.tagName === 'EMBED'+        ? 'true'+        : key;+      el.setAttribute(key, value);+    }+  } else if (isEnumeratedAttr(key)) {+    el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');+  } else if (isXlink(key)) {+    if (isFalsyAttrValue(value)) {+      el.removeAttributeNS(xlinkNS, getXlinkProp(key));+    } else {+      el.setAttributeNS(xlinkNS, key, value);+    }+  } else {+    baseSetAttr(el, key, value);+  }+}++function baseSetAttr (el, key, value) {+  if (isFalsyAttrValue(value)) {+    el.removeAttribute(key);+  } else {+    // #7138: IE10 & 11 fires input event when setting placeholder on+    // <textarea>... block the first input event and remove the blocker+    // immediately.+    /* istanbul ignore if */+    if (+      isIE && !isIE9 &&+      el.tagName === 'TEXTAREA' &&+      key === 'placeholder' && !el.__ieph+    ) {+      var blocker = function (e) {+        e.stopImmediatePropagation();+        el.removeEventListener('input', blocker);+      };+      el.addEventListener('input', blocker);+      // $flow-disable-line+      el.__ieph = true; /* IE placeholder patched */+    }+    el.setAttribute(key, value);+  }+}++var attrs = {+  create: updateAttrs,+  update: updateAttrs+}++/*  */++function updateClass (oldVnode, vnode) {+  var el = vnode.elm;+  var data = vnode.data;+  var oldData = oldVnode.data;+  if (+    isUndef(data.staticClass) &&+    isUndef(data.class) && (+      isUndef(oldData) || (+        isUndef(oldData.staticClass) &&+        isUndef(oldData.class)+      )+    )+  ) {+    return+  }++  var cls = genClassForVnode(vnode);++  // handle transition classes+  var transitionClass = el._transitionClasses;+  if (isDef(transitionClass)) {+    cls = concat(cls, stringifyClass(transitionClass));+  }++  // set the class+  if (cls !== el._prevClass) {+    el.setAttribute('class', cls);+    el._prevClass = cls;+  }+}++var klass = {+  create: updateClass,+  update: updateClass+}++/*  */++var validDivisionCharRE = /[\w).+\-_$\]]/;++function parseFilters (exp) {+  var inSingle = false;+  var inDouble = false;+  var inTemplateString = false;+  var inRegex = false;+  var curly = 0;+  var square = 0;+  var paren = 0;+  var lastFilterIndex = 0;+  var c, prev, i, expression, filters;++  for (i = 0; i < exp.length; i++) {+    prev = c;+    c = exp.charCodeAt(i);+    if (inSingle) {+      if (c === 0x27 && prev !== 0x5C) { inSingle = false; }+    } else if (inDouble) {+      if (c === 0x22 && prev !== 0x5C) { inDouble = false; }+    } else if (inTemplateString) {+      if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }+    } else if (inRegex) {+      if (c === 0x2f && prev !== 0x5C) { inRegex = false; }+    } else if (+      c === 0x7C && // pipe+      exp.charCodeAt(i + 1) !== 0x7C &&+      exp.charCodeAt(i - 1) !== 0x7C &&+      !curly && !square && !paren+    ) {+      if (expression === undefined) {+        // first filter, end of expression+        lastFilterIndex = i + 1;+        expression = exp.slice(0, i).trim();+      } else {+        pushFilter();+      }+    } else {+      switch (c) {+        case 0x22: inDouble = true; break         // "+        case 0x27: inSingle = true; break         // '+        case 0x60: inTemplateString = true; break // `+        case 0x28: paren++; break                 // (+        case 0x29: paren--; break                 // )+        case 0x5B: square++; break                // [+        case 0x5D: square--; break                // ]+        case 0x7B: curly++; break                 // {+        case 0x7D: curly--; break                 // }+      }+      if (c === 0x2f) { // /+        var j = i - 1;+        var p = (void 0);+        // find first non-whitespace prev char+        for (; j >= 0; j--) {+          p = exp.charAt(j);+          if (p !== ' ') { break }+        }+        if (!p || !validDivisionCharRE.test(p)) {+          inRegex = true;+        }+      }+    }+  }++  if (expression === undefined) {+    expression = exp.slice(0, i).trim();+  } else if (lastFilterIndex !== 0) {+    pushFilter();+  }++  function pushFilter () {+    (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());+    lastFilterIndex = i + 1;+  }++  if (filters) {+    for (i = 0; i < filters.length; i++) {+      expression = wrapFilter(expression, filters[i]);+    }+  }++  return expression+}++function wrapFilter (exp, filter) {+  var i = filter.indexOf('(');+  if (i < 0) {+    // _f: resolveFilter+    return ("_f(\"" + filter + "\")(" + exp + ")")+  } else {+    var name = filter.slice(0, i);+    var args = filter.slice(i + 1);+    return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))+  }+}++/*  */++function baseWarn (msg) {+  console.error(("[Vue compiler]: " + msg));+}++function pluckModuleFunction (+  modules,+  key+) {+  return modules+    ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })+    : []+}++function addProp (el, name, value) {+  (el.props || (el.props = [])).push({ name: name, value: value });+  el.plain = false;+}++function addAttr (el, name, value) {+  (el.attrs || (el.attrs = [])).push({ name: name, value: value });+  el.plain = false;+}++// add a raw attr (use this in preTransforms)+function addRawAttr (el, name, value) {+  el.attrsMap[name] = value;+  el.attrsList.push({ name: name, value: value });+}++function addDirective (+  el,+  name,+  rawName,+  value,+  arg,+  modifiers+) {+  (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });+  el.plain = false;+}++function addHandler (+  el,+  name,+  value,+  modifiers,+  important,+  warn+) {+  modifiers = modifiers || emptyObject;+  // warn prevent and passive modifier+  /* istanbul ignore if */+  if (+    "development" !== 'production' && warn &&+    modifiers.prevent && modifiers.passive+  ) {+    warn(+      'passive and prevent can\'t be used together. ' ++      'Passive handler can\'t prevent default event.'+    );+  }++  // check capture modifier+  if (modifiers.capture) {+    delete modifiers.capture;+    name = '!' + name; // mark the event as captured+  }+  if (modifiers.once) {+    delete modifiers.once;+    name = '~' + name; // mark the event as once+  }+  /* istanbul ignore if */+  if (modifiers.passive) {+    delete modifiers.passive;+    name = '&' + name; // mark the event as passive+  }++  // normalize click.right and click.middle since they don't actually fire+  // this is technically browser-specific, but at least for now browsers are+  // the only target envs that have right/middle clicks.+  if (name === 'click') {+    if (modifiers.right) {+      name = 'contextmenu';+      delete modifiers.right;+    } else if (modifiers.middle) {+      name = 'mouseup';+    }+  }++  var events;+  if (modifiers.native) {+    delete modifiers.native;+    events = el.nativeEvents || (el.nativeEvents = {});+  } else {+    events = el.events || (el.events = {});+  }++  var newHandler = {+    value: value.trim()+  };+  if (modifiers !== emptyObject) {+    newHandler.modifiers = modifiers;+  }++  var handlers = events[name];+  /* istanbul ignore if */+  if (Array.isArray(handlers)) {+    important ? handlers.unshift(newHandler) : handlers.push(newHandler);+  } else if (handlers) {+    events[name] = important ? [newHandler, handlers] : [handlers, newHandler];+  } else {+    events[name] = newHandler;+  }++  el.plain = false;+}++function getBindingAttr (+  el,+  name,+  getStatic+) {+  var dynamicValue =+    getAndRemoveAttr(el, ':' + name) ||+    getAndRemoveAttr(el, 'v-bind:' + name);+  if (dynamicValue != null) {+    return parseFilters(dynamicValue)+  } else if (getStatic !== false) {+    var staticValue = getAndRemoveAttr(el, name);+    if (staticValue != null) {+      return JSON.stringify(staticValue)+    }+  }+}++// note: this only removes the attr from the Array (attrsList) so that it+// doesn't get processed by processAttrs.+// By default it does NOT remove it from the map (attrsMap) because the map is+// needed during codegen.+function getAndRemoveAttr (+  el,+  name,+  removeFromMap+) {+  var val;+  if ((val = el.attrsMap[name]) != null) {+    var list = el.attrsList;+    for (var i = 0, l = list.length; i < l; i++) {+      if (list[i].name === name) {+        list.splice(i, 1);+        break+      }+    }+  }+  if (removeFromMap) {+    delete el.attrsMap[name];+  }+  return val+}++/*  */++/**+ * Cross-platform code generation for component v-model+ */+function genComponentModel (+  el,+  value,+  modifiers+) {+  var ref = modifiers || {};+  var number = ref.number;+  var trim = ref.trim;++  var baseValueExpression = '$$v';+  var valueExpression = baseValueExpression;+  if (trim) {+    valueExpression =+      "(typeof " + baseValueExpression + " === 'string'" ++      "? " + baseValueExpression + ".trim()" ++      ": " + baseValueExpression + ")";+  }+  if (number) {+    valueExpression = "_n(" + valueExpression + ")";+  }+  var assignment = genAssignmentCode(value, valueExpression);++  el.model = {+    value: ("(" + value + ")"),+    expression: ("\"" + value + "\""),+    callback: ("function (" + baseValueExpression + ") {" + assignment + "}")+  };+}++/**+ * Cross-platform codegen helper for generating v-model value assignment code.+ */+function genAssignmentCode (+  value,+  assignment+) {+  var res = parseModel(value);+  if (res.key === null) {+    return (value + "=" + assignment)+  } else {+    return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")+  }+}++/**+ * Parse a v-model expression into a base path and a final key segment.+ * Handles both dot-path and possible square brackets.+ *+ * Possible cases:+ *+ * - test+ * - test[key]+ * - test[test1[key]]+ * - test["a"][key]+ * - xxx.test[a[a].test1[key]]+ * - test.xxx.a["asa"][test1[key]]+ *+ */++var len;+var str;+var chr;+var index$1;+var expressionPos;+var expressionEndPos;++++function parseModel (val) {+  // Fix https://github.com/vuejs/vue/pull/7730+  // allow v-model="obj.val " (trailing whitespace)+  val = val.trim();+  len = val.length;++  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {+    index$1 = val.lastIndexOf('.');+    if (index$1 > -1) {+      return {+        exp: val.slice(0, index$1),+        key: '"' + val.slice(index$1 + 1) + '"'+      }+    } else {+      return {+        exp: val,+        key: null+      }+    }+  }++  str = val;+  index$1 = expressionPos = expressionEndPos = 0;++  while (!eof()) {+    chr = next();+    /* istanbul ignore if */+    if (isStringStart(chr)) {+      parseString(chr);+    } else if (chr === 0x5B) {+      parseBracket(chr);+    }+  }++  return {+    exp: val.slice(0, expressionPos),+    key: val.slice(expressionPos + 1, expressionEndPos)+  }+}++function next () {+  return str.charCodeAt(++index$1)+}++function eof () {+  return index$1 >= len+}++function isStringStart (chr) {+  return chr === 0x22 || chr === 0x27+}++function parseBracket (chr) {+  var inBracket = 1;+  expressionPos = index$1;+  while (!eof()) {+    chr = next();+    if (isStringStart(chr)) {+      parseString(chr);+      continue+    }+    if (chr === 0x5B) { inBracket++; }+    if (chr === 0x5D) { inBracket--; }+    if (inBracket === 0) {+      expressionEndPos = index$1;+      break+    }+  }+}++function parseString (chr) {+  var stringQuote = chr;+  while (!eof()) {+    chr = next();+    if (chr === stringQuote) {+      break+    }+  }+}++/*  */++var warn$1;++// in some cases, the event used has to be determined at runtime+// so we used some reserved tokens during compile.+var RANGE_TOKEN = '__r';+var CHECKBOX_RADIO_TOKEN = '__c';++function model (+  el,+  dir,+  _warn+) {+  warn$1 = _warn;+  var value = dir.value;+  var modifiers = dir.modifiers;+  var tag = el.tag;+  var type = el.attrsMap.type;++  {+    // inputs with type="file" are read only and setting the input's+    // value will throw an error.+    if (tag === 'input' && type === 'file') {+      warn$1(+        "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" ++        "File inputs are read only. Use a v-on:change listener instead."+      );+    }+  }++  if (el.component) {+    genComponentModel(el, value, modifiers);+    // component v-model doesn't need extra runtime+    return false+  } else if (tag === 'select') {+    genSelect(el, value, modifiers);+  } else if (tag === 'input' && type === 'checkbox') {+    genCheckboxModel(el, value, modifiers);+  } else if (tag === 'input' && type === 'radio') {+    genRadioModel(el, value, modifiers);+  } else if (tag === 'input' || tag === 'textarea') {+    genDefaultModel(el, value, modifiers);+  } else if (!config.isReservedTag(tag)) {+    genComponentModel(el, value, modifiers);+    // component v-model doesn't need extra runtime+    return false+  } else {+    warn$1(+      "<" + (el.tag) + " v-model=\"" + value + "\">: " ++      "v-model is not supported on this element type. " ++      'If you are working with contenteditable, it\'s recommended to ' ++      'wrap a library dedicated for that purpose inside a custom component.'+    );+  }++  // ensure runtime directive metadata+  return true+}++function genCheckboxModel (+  el,+  value,+  modifiers+) {+  var number = modifiers && modifiers.number;+  var valueBinding = getBindingAttr(el, 'value') || 'null';+  var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';+  var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';+  addProp(el, 'checked',+    "Array.isArray(" + value + ")" ++    "?_i(" + value + "," + valueBinding + ")>-1" + (+      trueValueBinding === 'true'+        ? (":(" + value + ")")+        : (":_q(" + value + "," + trueValueBinding + ")")+    )+  );+  addHandler(el, 'change',+    "var $$a=" + value + "," ++        '$$el=$event.target,' ++        "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" ++    'if(Array.isArray($$a)){' ++      "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," ++          '$$i=_i($$a,$$v);' ++      "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" ++      "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" ++    "}else{" + (genAssignmentCode(value, '$$c')) + "}",+    null, true+  );+}++function genRadioModel (+  el,+  value,+  modifiers+) {+  var number = modifiers && modifiers.number;+  var valueBinding = getBindingAttr(el, 'value') || 'null';+  valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;+  addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));+  addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);+}++function genSelect (+  el,+  value,+  modifiers+) {+  var number = modifiers && modifiers.number;+  var selectedVal = "Array.prototype.filter" ++    ".call($event.target.options,function(o){return o.selected})" ++    ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" ++    "return " + (number ? '_n(val)' : 'val') + "})";++  var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';+  var code = "var $$selectedVal = " + selectedVal + ";";+  code = code + " " + (genAssignmentCode(value, assignment));+  addHandler(el, 'change', code, null, true);+}++function genDefaultModel (+  el,+  value,+  modifiers+) {+  var type = el.attrsMap.type;++  // warn if v-bind:value conflicts with v-model+  // except for inputs with v-bind:type+  {+    var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];+    var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];+    if (value$1 && !typeBinding) {+      var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';+      warn$1(+        binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " ++        'because the latter already expands to a value binding internally'+      );+    }+  }++  var ref = modifiers || {};+  var lazy = ref.lazy;+  var number = ref.number;+  var trim = ref.trim;+  var needCompositionGuard = !lazy && type !== 'range';+  var event = lazy+    ? 'change'+    : type === 'range'+      ? RANGE_TOKEN+      : 'input';++  var valueExpression = '$event.target.value';+  if (trim) {+    valueExpression = "$event.target.value.trim()";+  }+  if (number) {+    valueExpression = "_n(" + valueExpression + ")";+  }++  var code = genAssignmentCode(value, valueExpression);+  if (needCompositionGuard) {+    code = "if($event.target.composing)return;" + code;+  }++  addProp(el, 'value', ("(" + value + ")"));+  addHandler(el, event, code, null, true);+  if (trim || number) {+    addHandler(el, 'blur', '$forceUpdate()');+  }+}++/*  */++// normalize v-model event tokens that can only be determined at runtime.+// it's important to place the event as the first in the array because+// the whole point is ensuring the v-model callback gets called before+// user-attached handlers.+function normalizeEvents (on) {+  /* istanbul ignore if */+  if (isDef(on[RANGE_TOKEN])) {+    // IE input[type=range] only supports `change` event+    var event = isIE ? 'change' : 'input';+    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);+    delete on[RANGE_TOKEN];+  }+  // This was originally intended to fix #4521 but no longer necessary+  // after 2.5. Keeping it for backwards compat with generated code from < 2.4+  /* istanbul ignore if */+  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {+    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);+    delete on[CHECKBOX_RADIO_TOKEN];+  }+}++var target$1;++function createOnceHandler (handler, event, capture) {+  var _target = target$1; // save current target element in closure+  return function onceHandler () {+    var res = handler.apply(null, arguments);+    if (res !== null) {+      remove$2(event, onceHandler, capture, _target);+    }+  }+}++function add$1 (+  event,+  handler,+  once$$1,+  capture,+  passive+) {+  handler = withMacroTask(handler);+  if (once$$1) { handler = createOnceHandler(handler, event, capture); }+  target$1.addEventListener(+    event,+    handler,+    supportsPassive+      ? { capture: capture, passive: passive }+      : capture+  );+}++function remove$2 (+  event,+  handler,+  capture,+  _target+) {+  (_target || target$1).removeEventListener(+    event,+    handler._withTask || handler,+    capture+  );+}++function updateDOMListeners (oldVnode, vnode) {+  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {+    return+  }+  var on = vnode.data.on || {};+  var oldOn = oldVnode.data.on || {};+  target$1 = vnode.elm;+  normalizeEvents(on);+  updateListeners(on, oldOn, add$1, remove$2, vnode.context);+  target$1 = undefined;+}++var events = {+  create: updateDOMListeners,+  update: updateDOMListeners+}++/*  */++function updateDOMProps (oldVnode, vnode) {+  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {+    return+  }+  var key, cur;+  var elm = vnode.elm;+  var oldProps = oldVnode.data.domProps || {};+  var props = vnode.data.domProps || {};+  // clone observed objects, as the user probably wants to mutate it+  if (isDef(props.__ob__)) {+    props = vnode.data.domProps = extend({}, props);+  }++  for (key in oldProps) {+    if (isUndef(props[key])) {+      elm[key] = '';+    }+  }+  for (key in props) {+    cur = props[key];+    // ignore children if the node has textContent or innerHTML,+    // as these will throw away existing DOM nodes and cause removal errors+    // on subsequent patches (#3360)+    if (key === 'textContent' || key === 'innerHTML') {+      if (vnode.children) { vnode.children.length = 0; }+      if (cur === oldProps[key]) { continue }+      // #6601 work around Chrome version <= 55 bug where single textNode+      // replaced by innerHTML/textContent retains its parentNode property+      if (elm.childNodes.length === 1) {+        elm.removeChild(elm.childNodes[0]);+      }+    }++    if (key === 'value') {+      // store value as _value as well since+      // non-string values will be stringified+      elm._value = cur;+      // avoid resetting cursor position when value is the same+      var strCur = isUndef(cur) ? '' : String(cur);+      if (shouldUpdateValue(elm, strCur)) {+        elm.value = strCur;+      }+    } else {+      elm[key] = cur;+    }+  }+}++// check platforms/web/util/attrs.js acceptValue+++function shouldUpdateValue (elm, checkVal) {+  return (!elm.composing && (+    elm.tagName === 'OPTION' ||+    isNotInFocusAndDirty(elm, checkVal) ||+    isDirtyWithModifiers(elm, checkVal)+  ))+}++function isNotInFocusAndDirty (elm, checkVal) {+  // return true when textbox (.number and .trim) loses focus and its value is+  // not equal to the updated value+  var notInFocus = true;+  // #6157+  // work around IE bug when accessing document.activeElement in an iframe+  try { notInFocus = document.activeElement !== elm; } catch (e) {}+  return notInFocus && elm.value !== checkVal+}++function isDirtyWithModifiers (elm, newVal) {+  var value = elm.value;+  var modifiers = elm._vModifiers; // injected by v-model runtime+  if (isDef(modifiers)) {+    if (modifiers.lazy) {+      // inputs with lazy should only be updated when not in focus+      return false+    }+    if (modifiers.number) {+      return toNumber(value) !== toNumber(newVal)+    }+    if (modifiers.trim) {+      return value.trim() !== newVal.trim()+    }+  }+  return value !== newVal+}++var domProps = {+  create: updateDOMProps,+  update: updateDOMProps+}++/*  */++var parseStyleText = cached(function (cssText) {+  var res = {};+  var listDelimiter = /;(?![^(]*\))/g;+  var propertyDelimiter = /:(.+)/;+  cssText.split(listDelimiter).forEach(function (item) {+    if (item) {+      var tmp = item.split(propertyDelimiter);+      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());+    }+  });+  return res+});++// merge static and dynamic style data on the same vnode+function normalizeStyleData (data) {+  var style = normalizeStyleBinding(data.style);+  // static style is pre-processed into an object during compilation+  // and is always a fresh object, so it's safe to merge into it+  return data.staticStyle+    ? extend(data.staticStyle, style)+    : style+}++// normalize possible array / string values into Object+function normalizeStyleBinding (bindingStyle) {+  if (Array.isArray(bindingStyle)) {+    return toObject(bindingStyle)+  }+  if (typeof bindingStyle === 'string') {+    return parseStyleText(bindingStyle)+  }+  return bindingStyle+}++/**+ * parent component style should be after child's+ * so that parent component's style could override it+ */+function getStyle (vnode, checkChild) {+  var res = {};+  var styleData;++  if (checkChild) {+    var childNode = vnode;+    while (childNode.componentInstance) {+      childNode = childNode.componentInstance._vnode;+      if (+        childNode && childNode.data &&+        (styleData = normalizeStyleData(childNode.data))+      ) {+        extend(res, styleData);+      }+    }+  }++  if ((styleData = normalizeStyleData(vnode.data))) {+    extend(res, styleData);+  }++  var parentNode = vnode;+  while ((parentNode = parentNode.parent)) {+    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {+      extend(res, styleData);+    }+  }+  return res+}++/*  */++var cssVarRE = /^--/;+var importantRE = /\s*!important$/;+var setProp = function (el, name, val) {+  /* istanbul ignore if */+  if (cssVarRE.test(name)) {+    el.style.setProperty(name, val);+  } else if (importantRE.test(val)) {+    el.style.setProperty(name, val.replace(importantRE, ''), 'important');+  } else {+    var normalizedName = normalize(name);+    if (Array.isArray(val)) {+      // Support values array created by autoprefixer, e.g.+      // {display: ["-webkit-box", "-ms-flexbox", "flex"]}+      // Set them one by one, and the browser will only set those it can recognize+      for (var i = 0, len = val.length; i < len; i++) {+        el.style[normalizedName] = val[i];+      }+    } else {+      el.style[normalizedName] = val;+    }+  }+};++var vendorNames = ['Webkit', 'Moz', 'ms'];++var emptyStyle;+var normalize = cached(function (prop) {+  emptyStyle = emptyStyle || document.createElement('div').style;+  prop = camelize(prop);+  if (prop !== 'filter' && (prop in emptyStyle)) {+    return prop+  }+  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);+  for (var i = 0; i < vendorNames.length; i++) {+    var name = vendorNames[i] + capName;+    if (name in emptyStyle) {+      return name+    }+  }+});++function updateStyle (oldVnode, vnode) {+  var data = vnode.data;+  var oldData = oldVnode.data;++  if (isUndef(data.staticStyle) && isUndef(data.style) &&+    isUndef(oldData.staticStyle) && isUndef(oldData.style)+  ) {+    return+  }++  var cur, name;+  var el = vnode.elm;+  var oldStaticStyle = oldData.staticStyle;+  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};++  // if static style exists, stylebinding already merged into it when doing normalizeStyleData+  var oldStyle = oldStaticStyle || oldStyleBinding;++  var style = normalizeStyleBinding(vnode.data.style) || {};++  // store normalized style under a different key for next diff+  // make sure to clone it if it's reactive, since the user likely wants+  // to mutate it.+  vnode.data.normalizedStyle = isDef(style.__ob__)+    ? extend({}, style)+    : style;++  var newStyle = getStyle(vnode, true);++  for (name in oldStyle) {+    if (isUndef(newStyle[name])) {+      setProp(el, name, '');+    }+  }+  for (name in newStyle) {+    cur = newStyle[name];+    if (cur !== oldStyle[name]) {+      // ie9 setting to null has no effect, must use empty string+      setProp(el, name, cur == null ? '' : cur);+    }+  }+}++var style = {+  create: updateStyle,+  update: updateStyle+}++/*  */++/**+ * Add class with compatibility for SVG since classList is not supported on+ * SVG elements in IE+ */+function addClass (el, cls) {+  /* istanbul ignore if */+  if (!cls || !(cls = cls.trim())) {+    return+  }++  /* istanbul ignore else */+  if (el.classList) {+    if (cls.indexOf(' ') > -1) {+      cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });+    } else {+      el.classList.add(cls);+    }+  } else {+    var cur = " " + (el.getAttribute('class') || '') + " ";+    if (cur.indexOf(' ' + cls + ' ') < 0) {+      el.setAttribute('class', (cur + cls).trim());+    }+  }+}++/**+ * Remove class with compatibility for SVG since classList is not supported on+ * SVG elements in IE+ */+function removeClass (el, cls) {+  /* istanbul ignore if */+  if (!cls || !(cls = cls.trim())) {+    return+  }++  /* istanbul ignore else */+  if (el.classList) {+    if (cls.indexOf(' ') > -1) {+      cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });+    } else {+      el.classList.remove(cls);+    }+    if (!el.classList.length) {+      el.removeAttribute('class');+    }+  } else {+    var cur = " " + (el.getAttribute('class') || '') + " ";+    var tar = ' ' + cls + ' ';+    while (cur.indexOf(tar) >= 0) {+      cur = cur.replace(tar, ' ');+    }+    cur = cur.trim();+    if (cur) {+      el.setAttribute('class', cur);+    } else {+      el.removeAttribute('class');+    }+  }+}++/*  */++function resolveTransition (def) {+  if (!def) {+    return+  }+  /* istanbul ignore else */+  if (typeof def === 'object') {+    var res = {};+    if (def.css !== false) {+      extend(res, autoCssTransition(def.name || 'v'));+    }+    extend(res, def);+    return res+  } else if (typeof def === 'string') {+    return autoCssTransition(def)+  }+}++var autoCssTransition = cached(function (name) {+  return {+    enterClass: (name + "-enter"),+    enterToClass: (name + "-enter-to"),+    enterActiveClass: (name + "-enter-active"),+    leaveClass: (name + "-leave"),+    leaveToClass: (name + "-leave-to"),+    leaveActiveClass: (name + "-leave-active")+  }+});++var hasTransition = inBrowser && !isIE9;+var TRANSITION = 'transition';+var ANIMATION = 'animation';++// Transition property/event sniffing+var transitionProp = 'transition';+var transitionEndEvent = 'transitionend';+var animationProp = 'animation';+var animationEndEvent = 'animationend';+if (hasTransition) {+  /* istanbul ignore if */+  if (window.ontransitionend === undefined &&+    window.onwebkittransitionend !== undefined+  ) {+    transitionProp = 'WebkitTransition';+    transitionEndEvent = 'webkitTransitionEnd';+  }+  if (window.onanimationend === undefined &&+    window.onwebkitanimationend !== undefined+  ) {+    animationProp = 'WebkitAnimation';+    animationEndEvent = 'webkitAnimationEnd';+  }+}++// binding to window is necessary to make hot reload work in IE in strict mode+var raf = inBrowser+  ? window.requestAnimationFrame+    ? window.requestAnimationFrame.bind(window)+    : setTimeout+  : /* istanbul ignore next */ function (fn) { return fn(); };++function nextFrame (fn) {+  raf(function () {+    raf(fn);+  });+}++function addTransitionClass (el, cls) {+  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);+  if (transitionClasses.indexOf(cls) < 0) {+    transitionClasses.push(cls);+    addClass(el, cls);+  }+}++function removeTransitionClass (el, cls) {+  if (el._transitionClasses) {+    remove(el._transitionClasses, cls);+  }+  removeClass(el, cls);+}++function whenTransitionEnds (+  el,+  expectedType,+  cb+) {+  var ref = getTransitionInfo(el, expectedType);+  var type = ref.type;+  var timeout = ref.timeout;+  var propCount = ref.propCount;+  if (!type) { return cb() }+  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;+  var ended = 0;+  var end = function () {+    el.removeEventListener(event, onEnd);+    cb();+  };+  var onEnd = function (e) {+    if (e.target === el) {+      if (++ended >= propCount) {+        end();+      }+    }+  };+  setTimeout(function () {+    if (ended < propCount) {+      end();+    }+  }, timeout + 1);+  el.addEventListener(event, onEnd);+}++var transformRE = /\b(transform|all)(,|$)/;++function getTransitionInfo (el, expectedType) {+  var styles = window.getComputedStyle(el);+  var transitionDelays = styles[transitionProp + 'Delay'].split(', ');+  var transitionDurations = styles[transitionProp + 'Duration'].split(', ');+  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);+  var animationDelays = styles[animationProp + 'Delay'].split(', ');+  var animationDurations = styles[animationProp + 'Duration'].split(', ');+  var animationTimeout = getTimeout(animationDelays, animationDurations);++  var type;+  var timeout = 0;+  var propCount = 0;+  /* istanbul ignore if */+  if (expectedType === TRANSITION) {+    if (transitionTimeout > 0) {+      type = TRANSITION;+      timeout = transitionTimeout;+      propCount = transitionDurations.length;+    }+  } else if (expectedType === ANIMATION) {+    if (animationTimeout > 0) {+      type = ANIMATION;+      timeout = animationTimeout;+      propCount = animationDurations.length;+    }+  } else {+    timeout = Math.max(transitionTimeout, animationTimeout);+    type = timeout > 0+      ? transitionTimeout > animationTimeout+        ? TRANSITION+        : ANIMATION+      : null;+    propCount = type+      ? type === TRANSITION+        ? transitionDurations.length+        : animationDurations.length+      : 0;+  }+  var hasTransform =+    type === TRANSITION &&+    transformRE.test(styles[transitionProp + 'Property']);+  return {+    type: type,+    timeout: timeout,+    propCount: propCount,+    hasTransform: hasTransform+  }+}++function getTimeout (delays, durations) {+  /* istanbul ignore next */+  while (delays.length < durations.length) {+    delays = delays.concat(delays);+  }++  return Math.max.apply(null, durations.map(function (d, i) {+    return toMs(d) + toMs(delays[i])+  }))+}++function toMs (s) {+  return Number(s.slice(0, -1)) * 1000+}++/*  */++function enter (vnode, toggleDisplay) {+  var el = vnode.elm;++  // call leave callback now+  if (isDef(el._leaveCb)) {+    el._leaveCb.cancelled = true;+    el._leaveCb();+  }++  var data = resolveTransition(vnode.data.transition);+  if (isUndef(data)) {+    return+  }++  /* istanbul ignore if */+  if (isDef(el._enterCb) || el.nodeType !== 1) {+    return+  }++  var css = data.css;+  var type = data.type;+  var enterClass = data.enterClass;+  var enterToClass = data.enterToClass;+  var enterActiveClass = data.enterActiveClass;+  var appearClass = data.appearClass;+  var appearToClass = data.appearToClass;+  var appearActiveClass = data.appearActiveClass;+  var beforeEnter = data.beforeEnter;+  var enter = data.enter;+  var afterEnter = data.afterEnter;+  var enterCancelled = data.enterCancelled;+  var beforeAppear = data.beforeAppear;+  var appear = data.appear;+  var afterAppear = data.afterAppear;+  var appearCancelled = data.appearCancelled;+  var duration = data.duration;++  // activeInstance will always be the <transition> component managing this+  // transition. One edge case to check is when the <transition> is placed+  // as the root node of a child component. In that case we need to check+  // <transition>'s parent for appear check.+  var context = activeInstance;+  var transitionNode = activeInstance.$vnode;+  while (transitionNode && transitionNode.parent) {+    transitionNode = transitionNode.parent;+    context = transitionNode.context;+  }++  var isAppear = !context._isMounted || !vnode.isRootInsert;++  if (isAppear && !appear && appear !== '') {+    return+  }++  var startClass = isAppear && appearClass+    ? appearClass+    : enterClass;+  var activeClass = isAppear && appearActiveClass+    ? appearActiveClass+    : enterActiveClass;+  var toClass = isAppear && appearToClass+    ? appearToClass+    : enterToClass;++  var beforeEnterHook = isAppear+    ? (beforeAppear || beforeEnter)+    : beforeEnter;+  var enterHook = isAppear+    ? (typeof appear === 'function' ? appear : enter)+    : enter;+  var afterEnterHook = isAppear+    ? (afterAppear || afterEnter)+    : afterEnter;+  var enterCancelledHook = isAppear+    ? (appearCancelled || enterCancelled)+    : enterCancelled;++  var explicitEnterDuration = toNumber(+    isObject(duration)+      ? duration.enter+      : duration+  );++  if ("development" !== 'production' && explicitEnterDuration != null) {+    checkDuration(explicitEnterDuration, 'enter', vnode);+  }++  var expectsCSS = css !== false && !isIE9;+  var userWantsControl = getHookArgumentsLength(enterHook);++  var cb = el._enterCb = once(function () {+    if (expectsCSS) {+      removeTransitionClass(el, toClass);+      removeTransitionClass(el, activeClass);+    }+    if (cb.cancelled) {+      if (expectsCSS) {+        removeTransitionClass(el, startClass);+      }+      enterCancelledHook && enterCancelledHook(el);+    } else {+      afterEnterHook && afterEnterHook(el);+    }+    el._enterCb = null;+  });++  if (!vnode.data.show) {+    // remove pending leave element on enter by injecting an insert hook+    mergeVNodeHook(vnode, 'insert', function () {+      var parent = el.parentNode;+      var pendingNode = parent && parent._pending && parent._pending[vnode.key];+      if (pendingNode &&+        pendingNode.tag === vnode.tag &&+        pendingNode.elm._leaveCb+      ) {+        pendingNode.elm._leaveCb();+      }+      enterHook && enterHook(el, cb);+    });+  }++  // start enter transition+  beforeEnterHook && beforeEnterHook(el);+  if (expectsCSS) {+    addTransitionClass(el, startClass);+    addTransitionClass(el, activeClass);+    nextFrame(function () {+      removeTransitionClass(el, startClass);+      if (!cb.cancelled) {+        addTransitionClass(el, toClass);+        if (!userWantsControl) {+          if (isValidDuration(explicitEnterDuration)) {+            setTimeout(cb, explicitEnterDuration);+          } else {+            whenTransitionEnds(el, type, cb);+          }+        }+      }+    });+  }++  if (vnode.data.show) {+    toggleDisplay && toggleDisplay();+    enterHook && enterHook(el, cb);+  }++  if (!expectsCSS && !userWantsControl) {+    cb();+  }+}++function leave (vnode, rm) {+  var el = vnode.elm;++  // call enter callback now+  if (isDef(el._enterCb)) {+    el._enterCb.cancelled = true;+    el._enterCb();+  }++  var data = resolveTransition(vnode.data.transition);+  if (isUndef(data) || el.nodeType !== 1) {+    return rm()+  }++  /* istanbul ignore if */+  if (isDef(el._leaveCb)) {+    return+  }++  var css = data.css;+  var type = data.type;+  var leaveClass = data.leaveClass;+  var leaveToClass = data.leaveToClass;+  var leaveActiveClass = data.leaveActiveClass;+  var beforeLeave = data.beforeLeave;+  var leave = data.leave;+  var afterLeave = data.afterLeave;+  var leaveCancelled = data.leaveCancelled;+  var delayLeave = data.delayLeave;+  var duration = data.duration;++  var expectsCSS = css !== false && !isIE9;+  var userWantsControl = getHookArgumentsLength(leave);++  var explicitLeaveDuration = toNumber(+    isObject(duration)+      ? duration.leave+      : duration+  );++  if ("development" !== 'production' && isDef(explicitLeaveDuration)) {+    checkDuration(explicitLeaveDuration, 'leave', vnode);+  }++  var cb = el._leaveCb = once(function () {+    if (el.parentNode && el.parentNode._pending) {+      el.parentNode._pending[vnode.key] = null;+    }+    if (expectsCSS) {+      removeTransitionClass(el, leaveToClass);+      removeTransitionClass(el, leaveActiveClass);+    }+    if (cb.cancelled) {+      if (expectsCSS) {+        removeTransitionClass(el, leaveClass);+      }+      leaveCancelled && leaveCancelled(el);+    } else {+      rm();+      afterLeave && afterLeave(el);+    }+    el._leaveCb = null;+  });++  if (delayLeave) {+    delayLeave(performLeave);+  } else {+    performLeave();+  }++  function performLeave () {+    // the delayed leave may have already been cancelled+    if (cb.cancelled) {+      return+    }+    // record leaving element+    if (!vnode.data.show) {+      (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;+    }+    beforeLeave && beforeLeave(el);+    if (expectsCSS) {+      addTransitionClass(el, leaveClass);+      addTransitionClass(el, leaveActiveClass);+      nextFrame(function () {+        removeTransitionClass(el, leaveClass);+        if (!cb.cancelled) {+          addTransitionClass(el, leaveToClass);+          if (!userWantsControl) {+            if (isValidDuration(explicitLeaveDuration)) {+              setTimeout(cb, explicitLeaveDuration);+            } else {+              whenTransitionEnds(el, type, cb);+            }+          }+        }+      });+    }+    leave && leave(el, cb);+    if (!expectsCSS && !userWantsControl) {+      cb();+    }+  }+}++// only used in dev mode+function checkDuration (val, name, vnode) {+  if (typeof val !== 'number') {+    warn(+      "<transition> explicit " + name + " duration is not a valid number - " ++      "got " + (JSON.stringify(val)) + ".",+      vnode.context+    );+  } else if (isNaN(val)) {+    warn(+      "<transition> explicit " + name + " duration is NaN - " ++      'the duration expression might be incorrect.',+      vnode.context+    );+  }+}++function isValidDuration (val) {+  return typeof val === 'number' && !isNaN(val)+}++/**+ * Normalize a transition hook's argument length. The hook may be:+ * - a merged hook (invoker) with the original in .fns+ * - a wrapped component method (check ._length)+ * - a plain function (.length)+ */+function getHookArgumentsLength (fn) {+  if (isUndef(fn)) {+    return false+  }+  var invokerFns = fn.fns;+  if (isDef(invokerFns)) {+    // invoker+    return getHookArgumentsLength(+      Array.isArray(invokerFns)+        ? invokerFns[0]+        : invokerFns+    )+  } else {+    return (fn._length || fn.length) > 1+  }+}++function _enter (_, vnode) {+  if (vnode.data.show !== true) {+    enter(vnode);+  }+}++var transition = inBrowser ? {+  create: _enter,+  activate: _enter,+  remove: function remove$$1 (vnode, rm) {+    /* istanbul ignore else */+    if (vnode.data.show !== true) {+      leave(vnode, rm);+    } else {+      rm();+    }+  }+} : {}++var platformModules = [+  attrs,+  klass,+  events,+  domProps,+  style,+  transition+]++/*  */++// the directive module should be applied last, after all+// built-in modules have been applied.+var modules = platformModules.concat(baseModules);++var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });++/**+ * Not type checking this file because flow doesn't like attaching+ * properties to Elements.+ */++/* istanbul ignore if */+if (isIE9) {+  // http://www.matts411.com/post/internet-explorer-9-oninput/+  document.addEventListener('selectionchange', function () {+    var el = document.activeElement;+    if (el && el.vmodel) {+      trigger(el, 'input');+    }+  });+}++var directive = {+  inserted: function inserted (el, binding, vnode, oldVnode) {+    if (vnode.tag === 'select') {+      // #6903+      if (oldVnode.elm && !oldVnode.elm._vOptions) {+        mergeVNodeHook(vnode, 'postpatch', function () {+          directive.componentUpdated(el, binding, vnode);+        });+      } else {+        setSelected(el, binding, vnode.context);+      }+      el._vOptions = [].map.call(el.options, getValue);+    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {+      el._vModifiers = binding.modifiers;+      if (!binding.modifiers.lazy) {+        el.addEventListener('compositionstart', onCompositionStart);+        el.addEventListener('compositionend', onCompositionEnd);+        // Safari < 10.2 & UIWebView doesn't fire compositionend when+        // switching focus before confirming composition choice+        // this also fixes the issue where some browsers e.g. iOS Chrome+        // fires "change" instead of "input" on autocomplete.+        el.addEventListener('change', onCompositionEnd);+        /* istanbul ignore if */+        if (isIE9) {+          el.vmodel = true;+        }+      }+    }+  },++  componentUpdated: function componentUpdated (el, binding, vnode) {+    if (vnode.tag === 'select') {+      setSelected(el, binding, vnode.context);+      // in case the options rendered by v-for have changed,+      // it's possible that the value is out-of-sync with the rendered options.+      // detect such cases and filter out values that no longer has a matching+      // option in the DOM.+      var prevOptions = el._vOptions;+      var curOptions = el._vOptions = [].map.call(el.options, getValue);+      if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {+        // trigger change event if+        // no matching option found for at least one value+        var needReset = el.multiple+          ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })+          : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);+        if (needReset) {+          trigger(el, 'change');+        }+      }+    }+  }+};++function setSelected (el, binding, vm) {+  actuallySetSelected(el, binding, vm);+  /* istanbul ignore if */+  if (isIE || isEdge) {+    setTimeout(function () {+      actuallySetSelected(el, binding, vm);+    }, 0);+  }+}++function actuallySetSelected (el, binding, vm) {+  var value = binding.value;+  var isMultiple = el.multiple;+  if (isMultiple && !Array.isArray(value)) {+    "development" !== 'production' && warn(+      "<select multiple v-model=\"" + (binding.expression) + "\"> " ++      "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),+      vm+    );+    return+  }+  var selected, option;+  for (var i = 0, l = el.options.length; i < l; i++) {+    option = el.options[i];+    if (isMultiple) {+      selected = looseIndexOf(value, getValue(option)) > -1;+      if (option.selected !== selected) {+        option.selected = selected;+      }+    } else {+      if (looseEqual(getValue(option), value)) {+        if (el.selectedIndex !== i) {+          el.selectedIndex = i;+        }+        return+      }+    }+  }+  if (!isMultiple) {+    el.selectedIndex = -1;+  }+}++function hasNoMatchingOption (value, options) {+  return options.every(function (o) { return !looseEqual(o, value); })+}++function getValue (option) {+  return '_value' in option+    ? option._value+    : option.value+}++function onCompositionStart (e) {+  e.target.composing = true;+}++function onCompositionEnd (e) {+  // prevent triggering an input event for no reason+  if (!e.target.composing) { return }+  e.target.composing = false;+  trigger(e.target, 'input');+}++function trigger (el, type) {+  var e = document.createEvent('HTMLEvents');+  e.initEvent(type, true, true);+  el.dispatchEvent(e);+}++/*  */++// recursively search for possible transition defined inside the component root+function locateNode (vnode) {+  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)+    ? locateNode(vnode.componentInstance._vnode)+    : vnode+}++var show = {+  bind: function bind (el, ref, vnode) {+    var value = ref.value;++    vnode = locateNode(vnode);+    var transition$$1 = vnode.data && vnode.data.transition;+    var originalDisplay = el.__vOriginalDisplay =+      el.style.display === 'none' ? '' : el.style.display;+    if (value && transition$$1) {+      vnode.data.show = true;+      enter(vnode, function () {+        el.style.display = originalDisplay;+      });+    } else {+      el.style.display = value ? originalDisplay : 'none';+    }+  },++  update: function update (el, ref, vnode) {+    var value = ref.value;+    var oldValue = ref.oldValue;++    /* istanbul ignore if */+    if (!value === !oldValue) { return }+    vnode = locateNode(vnode);+    var transition$$1 = vnode.data && vnode.data.transition;+    if (transition$$1) {+      vnode.data.show = true;+      if (value) {+        enter(vnode, function () {+          el.style.display = el.__vOriginalDisplay;+        });+      } else {+        leave(vnode, function () {+          el.style.display = 'none';+        });+      }+    } else {+      el.style.display = value ? el.__vOriginalDisplay : 'none';+    }+  },++  unbind: function unbind (+    el,+    binding,+    vnode,+    oldVnode,+    isDestroy+  ) {+    if (!isDestroy) {+      el.style.display = el.__vOriginalDisplay;+    }+  }+}++var platformDirectives = {+  model: directive,+  show: show+}++/*  */++// Provides transition support for a single element/component.+// supports transition mode (out-in / in-out)++var transitionProps = {+  name: String,+  appear: Boolean,+  css: Boolean,+  mode: String,+  type: String,+  enterClass: String,+  leaveClass: String,+  enterToClass: String,+  leaveToClass: String,+  enterActiveClass: String,+  leaveActiveClass: String,+  appearClass: String,+  appearActiveClass: String,+  appearToClass: String,+  duration: [Number, String, Object]+};++// in case the child is also an abstract component, e.g. <keep-alive>+// we want to recursively retrieve the real component to be rendered+function getRealChild (vnode) {+  var compOptions = vnode && vnode.componentOptions;+  if (compOptions && compOptions.Ctor.options.abstract) {+    return getRealChild(getFirstComponentChild(compOptions.children))+  } else {+    return vnode+  }+}++function extractTransitionData (comp) {+  var data = {};+  var options = comp.$options;+  // props+  for (var key in options.propsData) {+    data[key] = comp[key];+  }+  // events.+  // extract listeners and pass them directly to the transition methods+  var listeners = options._parentListeners;+  for (var key$1 in listeners) {+    data[camelize(key$1)] = listeners[key$1];+  }+  return data+}++function placeholder (h, rawChild) {+  if (/\d-keep-alive$/.test(rawChild.tag)) {+    return h('keep-alive', {+      props: rawChild.componentOptions.propsData+    })+  }+}++function hasParentTransition (vnode) {+  while ((vnode = vnode.parent)) {+    if (vnode.data.transition) {+      return true+    }+  }+}++function isSameChild (child, oldChild) {+  return oldChild.key === child.key && oldChild.tag === child.tag+}++var Transition = {+  name: 'transition',+  props: transitionProps,+  abstract: true,++  render: function render (h) {+    var this$1 = this;++    var children = this.$slots.default;+    if (!children) {+      return+    }++    // filter out text nodes (possible whitespaces)+    children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });+    /* istanbul ignore if */+    if (!children.length) {+      return+    }++    // warn multiple elements+    if ("development" !== 'production' && children.length > 1) {+      warn(+        '<transition> can only be used on a single element. Use ' ++        '<transition-group> for lists.',+        this.$parent+      );+    }++    var mode = this.mode;++    // warn invalid mode+    if ("development" !== 'production' &&+      mode && mode !== 'in-out' && mode !== 'out-in'+    ) {+      warn(+        'invalid <transition> mode: ' + mode,+        this.$parent+      );+    }++    var rawChild = children[0];++    // if this is a component root node and the component's+    // parent container node also has transition, skip.+    if (hasParentTransition(this.$vnode)) {+      return rawChild+    }++    // apply transition data to child+    // use getRealChild() to ignore abstract components e.g. keep-alive+    var child = getRealChild(rawChild);+    /* istanbul ignore if */+    if (!child) {+      return rawChild+    }++    if (this._leaving) {+      return placeholder(h, rawChild)+    }++    // ensure a key that is unique to the vnode type and to this transition+    // component instance. This key will be used to remove pending leaving nodes+    // during entering.+    var id = "__transition-" + (this._uid) + "-";+    child.key = child.key == null+      ? child.isComment+        ? id + 'comment'+        : id + child.tag+      : isPrimitive(child.key)+        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)+        : child.key;++    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);+    var oldRawChild = this._vnode;+    var oldChild = getRealChild(oldRawChild);++    // mark v-show+    // so that the transition module can hand over the control to the directive+    if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {+      child.data.show = true;+    }++    if (+      oldChild &&+      oldChild.data &&+      !isSameChild(child, oldChild) &&+      !isAsyncPlaceholder(oldChild) &&+      // #6687 component root is a comment node+      !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)+    ) {+      // replace old child transition data with fresh one+      // important for dynamic transitions!+      var oldData = oldChild.data.transition = extend({}, data);+      // handle transition mode+      if (mode === 'out-in') {+        // return placeholder node and queue update when leave finishes+        this._leaving = true;+        mergeVNodeHook(oldData, 'afterLeave', function () {+          this$1._leaving = false;+          this$1.$forceUpdate();+        });+        return placeholder(h, rawChild)+      } else if (mode === 'in-out') {+        if (isAsyncPlaceholder(child)) {+          return oldRawChild+        }+        var delayedLeave;+        var performLeave = function () { delayedLeave(); };+        mergeVNodeHook(data, 'afterEnter', performLeave);+        mergeVNodeHook(data, 'enterCancelled', performLeave);+        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });+      }+    }++    return rawChild+  }+}++/*  */++// Provides transition support for list items.+// supports move transitions using the FLIP technique.++// Because the vdom's children update algorithm is "unstable" - i.e.+// it doesn't guarantee the relative positioning of removed elements,+// we force transition-group to update its children into two passes:+// in the first pass, we remove all nodes that need to be removed,+// triggering their leaving transition; in the second pass, we insert/move+// into the final desired state. This way in the second pass removed+// nodes will remain where they should be.++var props = extend({+  tag: String,+  moveClass: String+}, transitionProps);++delete props.mode;++var TransitionGroup = {+  props: props,++  render: function render (h) {+    var tag = this.tag || this.$vnode.data.tag || 'span';+    var map = Object.create(null);+    var prevChildren = this.prevChildren = this.children;+    var rawChildren = this.$slots.default || [];+    var children = this.children = [];+    var transitionData = extractTransitionData(this);++    for (var i = 0; i < rawChildren.length; i++) {+      var c = rawChildren[i];+      if (c.tag) {+        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {+          children.push(c);+          map[c.key] = c+          ;(c.data || (c.data = {})).transition = transitionData;+        } else {+          var opts = c.componentOptions;+          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;+          warn(("<transition-group> children must be keyed: <" + name + ">"));+        }+      }+    }++    if (prevChildren) {+      var kept = [];+      var removed = [];+      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {+        var c$1 = prevChildren[i$1];+        c$1.data.transition = transitionData;+        c$1.data.pos = c$1.elm.getBoundingClientRect();+        if (map[c$1.key]) {+          kept.push(c$1);+        } else {+          removed.push(c$1);+        }+      }+      this.kept = h(tag, null, kept);+      this.removed = removed;+    }++    return h(tag, null, children)+  },++  beforeUpdate: function beforeUpdate () {+    // force removing pass+    this.__patch__(+      this._vnode,+      this.kept,+      false, // hydrating+      true // removeOnly (!important, avoids unnecessary moves)+    );+    this._vnode = this.kept;+  },++  updated: function updated () {+    var children = this.prevChildren;+    var moveClass = this.moveClass || ((this.name || 'v') + '-move');+    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {+      return+    }++    // we divide the work into three loops to avoid mixing DOM reads and writes+    // in each iteration - which helps prevent layout thrashing.+    children.forEach(callPendingCbs);+    children.forEach(recordPosition);+    children.forEach(applyTranslation);++    // force reflow to put everything in position+    // assign to this to avoid being removed in tree-shaking+    // $flow-disable-line+    this._reflow = document.body.offsetHeight;++    children.forEach(function (c) {+      if (c.data.moved) {+        var el = c.elm;+        var s = el.style;+        addTransitionClass(el, moveClass);+        s.transform = s.WebkitTransform = s.transitionDuration = '';+        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {+          if (!e || /transform$/.test(e.propertyName)) {+            el.removeEventListener(transitionEndEvent, cb);+            el._moveCb = null;+            removeTransitionClass(el, moveClass);+          }+        });+      }+    });+  },++  methods: {+    hasMove: function hasMove (el, moveClass) {+      /* istanbul ignore if */+      if (!hasTransition) {+        return false+      }+      /* istanbul ignore if */+      if (this._hasMove) {+        return this._hasMove+      }+      // Detect whether an element with the move class applied has+      // CSS transitions. Since the element may be inside an entering+      // transition at this very moment, we make a clone of it and remove+      // all other transition classes applied to ensure only the move class+      // is applied.+      var clone = el.cloneNode();+      if (el._transitionClasses) {+        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });+      }+      addClass(clone, moveClass);+      clone.style.display = 'none';+      this.$el.appendChild(clone);+      var info = getTransitionInfo(clone);+      this.$el.removeChild(clone);+      return (this._hasMove = info.hasTransform)+    }+  }+}++function callPendingCbs (c) {+  /* istanbul ignore if */+  if (c.elm._moveCb) {+    c.elm._moveCb();+  }+  /* istanbul ignore if */+  if (c.elm._enterCb) {+    c.elm._enterCb();+  }+}++function recordPosition (c) {+  c.data.newPos = c.elm.getBoundingClientRect();+}++function applyTranslation (c) {+  var oldPos = c.data.pos;+  var newPos = c.data.newPos;+  var dx = oldPos.left - newPos.left;+  var dy = oldPos.top - newPos.top;+  if (dx || dy) {+    c.data.moved = true;+    var s = c.elm.style;+    s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";+    s.transitionDuration = '0s';+  }+}++var platformComponents = {+  Transition: Transition,+  TransitionGroup: TransitionGroup+}++/*  */++// install platform specific utils+Vue.config.mustUseProp = mustUseProp;+Vue.config.isReservedTag = isReservedTag;+Vue.config.isReservedAttr = isReservedAttr;+Vue.config.getTagNamespace = getTagNamespace;+Vue.config.isUnknownElement = isUnknownElement;++// install platform runtime directives & components+extend(Vue.options.directives, platformDirectives);+extend(Vue.options.components, platformComponents);++// install platform patch function+Vue.prototype.__patch__ = inBrowser ? patch : noop;++// public mount method+Vue.prototype.$mount = function (+  el,+  hydrating+) {+  el = el && inBrowser ? query(el) : undefined;+  return mountComponent(this, el, hydrating)+};++// devtools global hook+/* istanbul ignore next */+if (inBrowser) {+  setTimeout(function () {+    if (config.devtools) {+      if (devtools) {+        devtools.emit('init', Vue);+      } else if (+        "development" !== 'production' &&+        "development" !== 'test' &&+        isChrome+      ) {+        console[console.info ? 'info' : 'log'](+          'Download the Vue Devtools extension for a better development experience:\n' ++          'https://github.com/vuejs/vue-devtools'+        );+      }+    }+    if ("development" !== 'production' &&+      "development" !== 'test' &&+      config.productionTip !== false &&+      typeof console !== 'undefined'+    ) {+      console[console.info ? 'info' : 'log'](+        "You are running Vue in development mode.\n" ++        "Make sure to turn on production mode when deploying for production.\n" ++        "See more tips at https://vuejs.org/guide/deployment.html"+      );+    }+  }, 0);+}++/*  */++var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;+var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;++var buildRegex = cached(function (delimiters) {+  var open = delimiters[0].replace(regexEscapeRE, '\\$&');+  var close = delimiters[1].replace(regexEscapeRE, '\\$&');+  return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')+});++++function parseText (+  text,+  delimiters+) {+  var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;+  if (!tagRE.test(text)) {+    return+  }+  var tokens = [];+  var rawTokens = [];+  var lastIndex = tagRE.lastIndex = 0;+  var match, index, tokenValue;+  while ((match = tagRE.exec(text))) {+    index = match.index;+    // push text token+    if (index > lastIndex) {+      rawTokens.push(tokenValue = text.slice(lastIndex, index));+      tokens.push(JSON.stringify(tokenValue));+    }+    // tag token+    var exp = parseFilters(match[1].trim());+    tokens.push(("_s(" + exp + ")"));+    rawTokens.push({ '@binding': exp });+    lastIndex = index + match[0].length;+  }+  if (lastIndex < text.length) {+    rawTokens.push(tokenValue = text.slice(lastIndex));+    tokens.push(JSON.stringify(tokenValue));+  }+  return {+    expression: tokens.join('+'),+    tokens: rawTokens+  }+}++/*  */++function transformNode (el, options) {+  var warn = options.warn || baseWarn;+  var staticClass = getAndRemoveAttr(el, 'class');+  if ("development" !== 'production' && staticClass) {+    var res = parseText(staticClass, options.delimiters);+    if (res) {+      warn(+        "class=\"" + staticClass + "\": " ++        'Interpolation inside attributes has been removed. ' ++        'Use v-bind or the colon shorthand instead. For example, ' ++        'instead of <div class="{{ val }}">, use <div :class="val">.'+      );+    }+  }+  if (staticClass) {+    el.staticClass = JSON.stringify(staticClass);+  }+  var classBinding = getBindingAttr(el, 'class', false /* getStatic */);+  if (classBinding) {+    el.classBinding = classBinding;+  }+}++function genData (el) {+  var data = '';+  if (el.staticClass) {+    data += "staticClass:" + (el.staticClass) + ",";+  }+  if (el.classBinding) {+    data += "class:" + (el.classBinding) + ",";+  }+  return data+}++var klass$1 = {+  staticKeys: ['staticClass'],+  transformNode: transformNode,+  genData: genData+}++/*  */++function transformNode$1 (el, options) {+  var warn = options.warn || baseWarn;+  var staticStyle = getAndRemoveAttr(el, 'style');+  if (staticStyle) {+    /* istanbul ignore if */+    {+      var res = parseText(staticStyle, options.delimiters);+      if (res) {+        warn(+          "style=\"" + staticStyle + "\": " ++          'Interpolation inside attributes has been removed. ' ++          'Use v-bind or the colon shorthand instead. For example, ' ++          'instead of <div style="{{ val }}">, use <div :style="val">.'+        );+      }+    }+    el.staticStyle = JSON.stringify(parseStyleText(staticStyle));+  }++  var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);+  if (styleBinding) {+    el.styleBinding = styleBinding;+  }+}++function genData$1 (el) {+  var data = '';+  if (el.staticStyle) {+    data += "staticStyle:" + (el.staticStyle) + ",";+  }+  if (el.styleBinding) {+    data += "style:(" + (el.styleBinding) + "),";+  }+  return data+}++var style$1 = {+  staticKeys: ['staticStyle'],+  transformNode: transformNode$1,+  genData: genData$1+}++/*  */++var decoder;++var he = {+  decode: function decode (html) {+    decoder = decoder || document.createElement('div');+    decoder.innerHTML = html;+    return decoder.textContent+  }+}++/*  */++var isUnaryTag = makeMap(+  'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' ++  'link,meta,param,source,track,wbr'+);++// Elements that you can, intentionally, leave open+// (and which close themselves)+var canBeLeftOpenTag = makeMap(+  'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'+);++// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3+// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content+var isNonPhrasingTag = makeMap(+  'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' ++  'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' ++  'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' ++  'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' ++  'title,tr,track'+);++/**+ * Not type-checking this file because it's mostly vendor code.+ */++/*!+ * HTML Parser By John Resig (ejohn.org)+ * Modified by Juriy "kangax" Zaytsev+ * Original code by Erik Arvidsson, Mozilla Public License+ * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js+ */++// Regular Expressions for parsing tags and attributes+var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;+// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName+// but for Vue templates we can enforce a simple charset+var ncname = '[a-zA-Z_][\\w\\-\\.]*';+var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";+var startTagOpen = new RegExp(("^<" + qnameCapture));+var startTagClose = /^\s*(\/?)>/;+var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));+var doctype = /^<!DOCTYPE [^>]+>/i;+// #7298: escape - to avoid being pased as HTML comment when inlined in page+var comment = /^<!\--/;+var conditionalComment = /^<!\[/;++var IS_REGEX_CAPTURING_BROKEN = false;+'x'.replace(/x(.)?/g, function (m, g) {+  IS_REGEX_CAPTURING_BROKEN = g === '';+});++// Special Elements (can contain anything)+var isPlainTextElement = makeMap('script,style,textarea', true);+var reCache = {};++var decodingMap = {+  '&lt;': '<',+  '&gt;': '>',+  '&quot;': '"',+  '&amp;': '&',+  '&#10;': '\n',+  '&#9;': '\t'+};+var encodedAttr = /&(?:lt|gt|quot|amp);/g;+var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;++// #5992+var isIgnoreNewlineTag = makeMap('pre,textarea', true);+var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };++function decodeAttr (value, shouldDecodeNewlines) {+  var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;+  return value.replace(re, function (match) { return decodingMap[match]; })+}++function parseHTML (html, options) {+  var stack = [];+  var expectHTML = options.expectHTML;+  var isUnaryTag$$1 = options.isUnaryTag || no;+  var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;+  var index = 0;+  var last, lastTag;+  while (html) {+    last = html;+    // Make sure we're not in a plaintext content element like script/style+    if (!lastTag || !isPlainTextElement(lastTag)) {+      var textEnd = html.indexOf('<');+      if (textEnd === 0) {+        // Comment:+        if (comment.test(html)) {+          var commentEnd = html.indexOf('-->');++          if (commentEnd >= 0) {+            if (options.shouldKeepComment) {+              options.comment(html.substring(4, commentEnd));+            }+            advance(commentEnd + 3);+            continue+          }+        }++        // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment+        if (conditionalComment.test(html)) {+          var conditionalEnd = html.indexOf(']>');++          if (conditionalEnd >= 0) {+            advance(conditionalEnd + 2);+            continue+          }+        }++        // Doctype:+        var doctypeMatch = html.match(doctype);+        if (doctypeMatch) {+          advance(doctypeMatch[0].length);+          continue+        }++        // End tag:+        var endTagMatch = html.match(endTag);+        if (endTagMatch) {+          var curIndex = index;+          advance(endTagMatch[0].length);+          parseEndTag(endTagMatch[1], curIndex, index);+          continue+        }++        // Start tag:+        var startTagMatch = parseStartTag();+        if (startTagMatch) {+          handleStartTag(startTagMatch);+          if (shouldIgnoreFirstNewline(lastTag, html)) {+            advance(1);+          }+          continue+        }+      }++      var text = (void 0), rest = (void 0), next = (void 0);+      if (textEnd >= 0) {+        rest = html.slice(textEnd);+        while (+          !endTag.test(rest) &&+          !startTagOpen.test(rest) &&+          !comment.test(rest) &&+          !conditionalComment.test(rest)+        ) {+          // < in plain text, be forgiving and treat it as text+          next = rest.indexOf('<', 1);+          if (next < 0) { break }+          textEnd += next;+          rest = html.slice(textEnd);+        }+        text = html.substring(0, textEnd);+        advance(textEnd);+      }++      if (textEnd < 0) {+        text = html;+        html = '';+      }++      if (options.chars && text) {+        options.chars(text);+      }+    } else {+      var endTagLength = 0;+      var stackedTag = lastTag.toLowerCase();+      var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));+      var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {+        endTagLength = endTag.length;+        if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {+          text = text+            .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298+            .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');+        }+        if (shouldIgnoreFirstNewline(stackedTag, text)) {+          text = text.slice(1);+        }+        if (options.chars) {+          options.chars(text);+        }+        return ''+      });+      index += html.length - rest$1.length;+      html = rest$1;+      parseEndTag(stackedTag, index - endTagLength, index);+    }++    if (html === last) {+      options.chars && options.chars(html);+      if ("development" !== 'production' && !stack.length && options.warn) {+        options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));+      }+      break+    }+  }++  // Clean up any remaining tags+  parseEndTag();++  function advance (n) {+    index += n;+    html = html.substring(n);+  }++  function parseStartTag () {+    var start = html.match(startTagOpen);+    if (start) {+      var match = {+        tagName: start[1],+        attrs: [],+        start: index+      };+      advance(start[0].length);+      var end, attr;+      while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {+        advance(attr[0].length);+        match.attrs.push(attr);+      }+      if (end) {+        match.unarySlash = end[1];+        advance(end[0].length);+        match.end = index;+        return match+      }+    }+  }++  function handleStartTag (match) {+    var tagName = match.tagName;+    var unarySlash = match.unarySlash;++    if (expectHTML) {+      if (lastTag === 'p' && isNonPhrasingTag(tagName)) {+        parseEndTag(lastTag);+      }+      if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {+        parseEndTag(tagName);+      }+    }++    var unary = isUnaryTag$$1(tagName) || !!unarySlash;++    var l = match.attrs.length;+    var attrs = new Array(l);+    for (var i = 0; i < l; i++) {+      var args = match.attrs[i];+      // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778+      if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {+        if (args[3] === '') { delete args[3]; }+        if (args[4] === '') { delete args[4]; }+        if (args[5] === '') { delete args[5]; }+      }+      var value = args[3] || args[4] || args[5] || '';+      var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'+        ? options.shouldDecodeNewlinesForHref+        : options.shouldDecodeNewlines;+      attrs[i] = {+        name: args[1],+        value: decodeAttr(value, shouldDecodeNewlines)+      };+    }++    if (!unary) {+      stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });+      lastTag = tagName;+    }++    if (options.start) {+      options.start(tagName, attrs, unary, match.start, match.end);+    }+  }++  function parseEndTag (tagName, start, end) {+    var pos, lowerCasedTagName;+    if (start == null) { start = index; }+    if (end == null) { end = index; }++    if (tagName) {+      lowerCasedTagName = tagName.toLowerCase();+    }++    // Find the closest opened tag of the same type+    if (tagName) {+      for (pos = stack.length - 1; pos >= 0; pos--) {+        if (stack[pos].lowerCasedTag === lowerCasedTagName) {+          break+        }+      }+    } else {+      // If no tag name is provided, clean shop+      pos = 0;+    }++    if (pos >= 0) {+      // Close all the open elements, up the stack+      for (var i = stack.length - 1; i >= pos; i--) {+        if ("development" !== 'production' &&+          (i > pos || !tagName) &&+          options.warn+        ) {+          options.warn(+            ("tag <" + (stack[i].tag) + "> has no matching end tag.")+          );+        }+        if (options.end) {+          options.end(stack[i].tag, start, end);+        }+      }++      // Remove the open elements from the stack+      stack.length = pos;+      lastTag = pos && stack[pos - 1].tag;+    } else if (lowerCasedTagName === 'br') {+      if (options.start) {+        options.start(tagName, [], true, start, end);+      }+    } else if (lowerCasedTagName === 'p') {+      if (options.start) {+        options.start(tagName, [], false, start, end);+      }+      if (options.end) {+        options.end(tagName, start, end);+      }+    }+  }+}++/*  */++var onRE = /^@|^v-on:/;+var dirRE = /^v-|^@|^:/;+var forAliasRE = /([^]*?)\s+(?:in|of)\s+([^]*)/;+var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;+var stripParensRE = /^\(|\)$/g;++var argRE = /:(.*)$/;+var bindRE = /^:|^v-bind:/;+var modifierRE = /\.[^.]+/g;++var decodeHTMLCached = cached(he.decode);++// configurable state+var warn$2;+var delimiters;+var transforms;+var preTransforms;+var postTransforms;+var platformIsPreTag;+var platformMustUseProp;+var platformGetTagNamespace;++++function createASTElement (+  tag,+  attrs,+  parent+) {+  return {+    type: 1,+    tag: tag,+    attrsList: attrs,+    attrsMap: makeAttrsMap(attrs),+    parent: parent,+    children: []+  }+}++/**+ * Convert HTML string to AST.+ */+function parse (+  template,+  options+) {+  warn$2 = options.warn || baseWarn;++  platformIsPreTag = options.isPreTag || no;+  platformMustUseProp = options.mustUseProp || no;+  platformGetTagNamespace = options.getTagNamespace || no;++  transforms = pluckModuleFunction(options.modules, 'transformNode');+  preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');+  postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');++  delimiters = options.delimiters;++  var stack = [];+  var preserveWhitespace = options.preserveWhitespace !== false;+  var root;+  var currentParent;+  var inVPre = false;+  var inPre = false;+  var warned = false;++  function warnOnce (msg) {+    if (!warned) {+      warned = true;+      warn$2(msg);+    }+  }++  function closeElement (element) {+    // check pre state+    if (element.pre) {+      inVPre = false;+    }+    if (platformIsPreTag(element.tag)) {+      inPre = false;+    }+    // apply post-transforms+    for (var i = 0; i < postTransforms.length; i++) {+      postTransforms[i](element, options);+    }+  }++  parseHTML(template, {+    warn: warn$2,+    expectHTML: options.expectHTML,+    isUnaryTag: options.isUnaryTag,+    canBeLeftOpenTag: options.canBeLeftOpenTag,+    shouldDecodeNewlines: options.shouldDecodeNewlines,+    shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,+    shouldKeepComment: options.comments,+    start: function start (tag, attrs, unary) {+      // check namespace.+      // inherit parent ns if there is one+      var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);++      // handle IE svg bug+      /* istanbul ignore if */+      if (isIE && ns === 'svg') {+        attrs = guardIESVGBug(attrs);+      }++      var element = createASTElement(tag, attrs, currentParent);+      if (ns) {+        element.ns = ns;+      }++      if (isForbiddenTag(element) && !isServerRendering()) {+        element.forbidden = true;+        "development" !== 'production' && warn$2(+          'Templates should only be responsible for mapping the state to the ' ++          'UI. Avoid placing tags with side-effects in your templates, such as ' ++          "<" + tag + ">" + ', as they will not be parsed.'+        );+      }++      // apply pre-transforms+      for (var i = 0; i < preTransforms.length; i++) {+        element = preTransforms[i](element, options) || element;+      }++      if (!inVPre) {+        processPre(element);+        if (element.pre) {+          inVPre = true;+        }+      }+      if (platformIsPreTag(element.tag)) {+        inPre = true;+      }+      if (inVPre) {+        processRawAttrs(element);+      } else if (!element.processed) {+        // structural directives+        processFor(element);+        processIf(element);+        processOnce(element);+        // element-scope stuff+        processElement(element, options);+      }++      function checkRootConstraints (el) {+        {+          if (el.tag === 'slot' || el.tag === 'template') {+            warnOnce(+              "Cannot use <" + (el.tag) + "> as component root element because it may " ++              'contain multiple nodes.'+            );+          }+          if (el.attrsMap.hasOwnProperty('v-for')) {+            warnOnce(+              'Cannot use v-for on stateful component root element because ' ++              'it renders multiple elements.'+            );+          }+        }+      }++      // tree management+      if (!root) {+        root = element;+        checkRootConstraints(root);+      } else if (!stack.length) {+        // allow root elements with v-if, v-else-if and v-else+        if (root.if && (element.elseif || element.else)) {+          checkRootConstraints(element);+          addIfCondition(root, {+            exp: element.elseif,+            block: element+          });+        } else {+          warnOnce(+            "Component template should contain exactly one root element. " ++            "If you are using v-if on multiple elements, " ++            "use v-else-if to chain them instead."+          );+        }+      }+      if (currentParent && !element.forbidden) {+        if (element.elseif || element.else) {+          processIfConditions(element, currentParent);+        } else if (element.slotScope) { // scoped slot+          currentParent.plain = false;+          var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;+        } else {+          currentParent.children.push(element);+          element.parent = currentParent;+        }+      }+      if (!unary) {+        currentParent = element;+        stack.push(element);+      } else {+        closeElement(element);+      }+    },++    end: function end () {+      // remove trailing whitespace+      var element = stack[stack.length - 1];+      var lastNode = element.children[element.children.length - 1];+      if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {+        element.children.pop();+      }+      // pop stack+      stack.length -= 1;+      currentParent = stack[stack.length - 1];+      closeElement(element);+    },++    chars: function chars (text) {+      if (!currentParent) {+        {+          if (text === template) {+            warnOnce(+              'Component template requires a root element, rather than just text.'+            );+          } else if ((text = text.trim())) {+            warnOnce(+              ("text \"" + text + "\" outside root element will be ignored.")+            );+          }+        }+        return+      }+      // IE textarea placeholder bug+      /* istanbul ignore if */+      if (isIE &&+        currentParent.tag === 'textarea' &&+        currentParent.attrsMap.placeholder === text+      ) {+        return+      }+      var children = currentParent.children;+      text = inPre || text.trim()+        ? isTextTag(currentParent) ? text : decodeHTMLCached(text)+        // only preserve whitespace if its not right after a starting tag+        : preserveWhitespace && children.length ? ' ' : '';+      if (text) {+        var res;+        if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {+          children.push({+            type: 2,+            expression: res.expression,+            tokens: res.tokens,+            text: text+          });+        } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {+          children.push({+            type: 3,+            text: text+          });+        }+      }+    },+    comment: function comment (text) {+      currentParent.children.push({+        type: 3,+        text: text,+        isComment: true+      });+    }+  });+  return root+}++function processPre (el) {+  if (getAndRemoveAttr(el, 'v-pre') != null) {+    el.pre = true;+  }+}++function processRawAttrs (el) {+  var l = el.attrsList.length;+  if (l) {+    var attrs = el.attrs = new Array(l);+    for (var i = 0; i < l; i++) {+      attrs[i] = {+        name: el.attrsList[i].name,+        value: JSON.stringify(el.attrsList[i].value)+      };+    }+  } else if (!el.pre) {+    // non root node in pre blocks with no attributes+    el.plain = true;+  }+}++function processElement (element, options) {+  processKey(element);++  // determine whether this is a plain element after+  // removing structural attributes+  element.plain = !element.key && !element.attrsList.length;++  processRef(element);+  processSlot(element);+  processComponent(element);+  for (var i = 0; i < transforms.length; i++) {+    element = transforms[i](element, options) || element;+  }+  processAttrs(element);+}++function processKey (el) {+  var exp = getBindingAttr(el, 'key');+  if (exp) {+    if ("development" !== 'production' && el.tag === 'template') {+      warn$2("<template> cannot be keyed. Place the key on real elements instead.");+    }+    el.key = exp;+  }+}++function processRef (el) {+  var ref = getBindingAttr(el, 'ref');+  if (ref) {+    el.ref = ref;+    el.refInFor = checkInFor(el);+  }+}++function processFor (el) {+  var exp;+  if ((exp = getAndRemoveAttr(el, 'v-for'))) {+    var res = parseFor(exp);+    if (res) {+      extend(el, res);+    } else {+      warn$2(+        ("Invalid v-for expression: " + exp)+      );+    }+  }+}++++function parseFor (exp) {+  var inMatch = exp.match(forAliasRE);+  if (!inMatch) { return }+  var res = {};+  res.for = inMatch[2].trim();+  var alias = inMatch[1].trim().replace(stripParensRE, '');+  var iteratorMatch = alias.match(forIteratorRE);+  if (iteratorMatch) {+    res.alias = alias.replace(forIteratorRE, '');+    res.iterator1 = iteratorMatch[1].trim();+    if (iteratorMatch[2]) {+      res.iterator2 = iteratorMatch[2].trim();+    }+  } else {+    res.alias = alias;+  }+  return res+}++function processIf (el) {+  var exp = getAndRemoveAttr(el, 'v-if');+  if (exp) {+    el.if = exp;+    addIfCondition(el, {+      exp: exp,+      block: el+    });+  } else {+    if (getAndRemoveAttr(el, 'v-else') != null) {+      el.else = true;+    }+    var elseif = getAndRemoveAttr(el, 'v-else-if');+    if (elseif) {+      el.elseif = elseif;+    }+  }+}++function processIfConditions (el, parent) {+  var prev = findPrevElement(parent.children);+  if (prev && prev.if) {+    addIfCondition(prev, {+      exp: el.elseif,+      block: el+    });+  } else {+    warn$2(+      "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " ++      "used on element <" + (el.tag) + "> without corresponding v-if."+    );+  }+}++function findPrevElement (children) {+  var i = children.length;+  while (i--) {+    if (children[i].type === 1) {+      return children[i]+    } else {+      if ("development" !== 'production' && children[i].text !== ' ') {+        warn$2(+          "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " ++          "will be ignored."+        );+      }+      children.pop();+    }+  }+}++function addIfCondition (el, condition) {+  if (!el.ifConditions) {+    el.ifConditions = [];+  }+  el.ifConditions.push(condition);+}++function processOnce (el) {+  var once$$1 = getAndRemoveAttr(el, 'v-once');+  if (once$$1 != null) {+    el.once = true;+  }+}++function processSlot (el) {+  if (el.tag === 'slot') {+    el.slotName = getBindingAttr(el, 'name');+    if ("development" !== 'production' && el.key) {+      warn$2(+        "`key` does not work on <slot> because slots are abstract outlets " ++        "and can possibly expand into multiple elements. " ++        "Use the key on a wrapping element instead."+      );+    }+  } else {+    var slotScope;+    if (el.tag === 'template') {+      slotScope = getAndRemoveAttr(el, 'scope');+      /* istanbul ignore if */+      if ("development" !== 'production' && slotScope) {+        warn$2(+          "the \"scope\" attribute for scoped slots have been deprecated and " ++          "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " ++          "can also be used on plain elements in addition to <template> to " ++          "denote scoped slots.",+          true+        );+      }+      el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');+    } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {+      /* istanbul ignore if */+      if ("development" !== 'production' && el.attrsMap['v-for']) {+        warn$2(+          "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " ++          "(v-for takes higher priority). Use a wrapper <template> for the " ++          "scoped slot to make it clearer.",+          true+        );+      }+      el.slotScope = slotScope;+    }+    var slotTarget = getBindingAttr(el, 'slot');+    if (slotTarget) {+      el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;+      // preserve slot as an attribute for native shadow DOM compat+      // only for non-scoped slots.+      if (el.tag !== 'template' && !el.slotScope) {+        addAttr(el, 'slot', slotTarget);+      }+    }+  }+}++function processComponent (el) {+  var binding;+  if ((binding = getBindingAttr(el, 'is'))) {+    el.component = binding;+  }+  if (getAndRemoveAttr(el, 'inline-template') != null) {+    el.inlineTemplate = true;+  }+}++function processAttrs (el) {+  var list = el.attrsList;+  var i, l, name, rawName, value, modifiers, isProp;+  for (i = 0, l = list.length; i < l; i++) {+    name = rawName = list[i].name;+    value = list[i].value;+    if (dirRE.test(name)) {+      // mark element as dynamic+      el.hasBindings = true;+      // modifiers+      modifiers = parseModifiers(name);+      if (modifiers) {+        name = name.replace(modifierRE, '');+      }+      if (bindRE.test(name)) { // v-bind+        name = name.replace(bindRE, '');+        value = parseFilters(value);+        isProp = false;+        if (modifiers) {+          if (modifiers.prop) {+            isProp = true;+            name = camelize(name);+            if (name === 'innerHtml') { name = 'innerHTML'; }+          }+          if (modifiers.camel) {+            name = camelize(name);+          }+          if (modifiers.sync) {+            addHandler(+              el,+              ("update:" + (camelize(name))),+              genAssignmentCode(value, "$event")+            );+          }+        }+        if (isProp || (+          !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)+        )) {+          addProp(el, name, value);+        } else {+          addAttr(el, name, value);+        }+      } else if (onRE.test(name)) { // v-on+        name = name.replace(onRE, '');+        addHandler(el, name, value, modifiers, false, warn$2);+      } else { // normal directives+        name = name.replace(dirRE, '');+        // parse arg+        var argMatch = name.match(argRE);+        var arg = argMatch && argMatch[1];+        if (arg) {+          name = name.slice(0, -(arg.length + 1));+        }+        addDirective(el, name, rawName, value, arg, modifiers);+        if ("development" !== 'production' && name === 'model') {+          checkForAliasModel(el, value);+        }+      }+    } else {+      // literal attribute+      {+        var res = parseText(value, delimiters);+        if (res) {+          warn$2(+            name + "=\"" + value + "\": " ++            'Interpolation inside attributes has been removed. ' ++            'Use v-bind or the colon shorthand instead. For example, ' ++            'instead of <div id="{{ val }}">, use <div :id="val">.'+          );+        }+      }+      addAttr(el, name, JSON.stringify(value));+      // #6887 firefox doesn't update muted state if set via attribute+      // even immediately after element creation+      if (!el.component &&+          name === 'muted' &&+          platformMustUseProp(el.tag, el.attrsMap.type, name)) {+        addProp(el, name, 'true');+      }+    }+  }+}++function checkInFor (el) {+  var parent = el;+  while (parent) {+    if (parent.for !== undefined) {+      return true+    }+    parent = parent.parent;+  }+  return false+}++function parseModifiers (name) {+  var match = name.match(modifierRE);+  if (match) {+    var ret = {};+    match.forEach(function (m) { ret[m.slice(1)] = true; });+    return ret+  }+}++function makeAttrsMap (attrs) {+  var map = {};+  for (var i = 0, l = attrs.length; i < l; i++) {+    if (+      "development" !== 'production' &&+      map[attrs[i].name] && !isIE && !isEdge+    ) {+      warn$2('duplicate attribute: ' + attrs[i].name);+    }+    map[attrs[i].name] = attrs[i].value;+  }+  return map+}++// for script (e.g. type="x/template") or style, do not decode content+function isTextTag (el) {+  return el.tag === 'script' || el.tag === 'style'+}++function isForbiddenTag (el) {+  return (+    el.tag === 'style' ||+    (el.tag === 'script' && (+      !el.attrsMap.type ||+      el.attrsMap.type === 'text/javascript'+    ))+  )+}++var ieNSBug = /^xmlns:NS\d+/;+var ieNSPrefix = /^NS\d+:/;++/* istanbul ignore next */+function guardIESVGBug (attrs) {+  var res = [];+  for (var i = 0; i < attrs.length; i++) {+    var attr = attrs[i];+    if (!ieNSBug.test(attr.name)) {+      attr.name = attr.name.replace(ieNSPrefix, '');+      res.push(attr);+    }+  }+  return res+}++function checkForAliasModel (el, value) {+  var _el = el;+  while (_el) {+    if (_el.for && _el.alias === value) {+      warn$2(+        "<" + (el.tag) + " v-model=\"" + value + "\">: " ++        "You are binding v-model directly to a v-for iteration alias. " ++        "This will not be able to modify the v-for source array because " ++        "writing to the alias is like modifying a function local variable. " ++        "Consider using an array of objects and use v-model on an object property instead."+      );+    }+    _el = _el.parent;+  }+}++/*  */++/**+ * Expand input[v-model] with dyanmic type bindings into v-if-else chains+ * Turn this:+ *   <input v-model="data[type]" :type="type">+ * into this:+ *   <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">+ *   <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">+ *   <input v-else :type="type" v-model="data[type]">+ */++function preTransformNode (el, options) {+  if (el.tag === 'input') {+    var map = el.attrsMap;+    if (!map['v-model']) {+      return+    }++    var typeBinding;+    if (map[':type'] || map['v-bind:type']) {+      typeBinding = getBindingAttr(el, 'type');+    }+    if (!map.type && !typeBinding && map['v-bind']) {+      typeBinding = "(" + (map['v-bind']) + ").type";+    }++    if (typeBinding) {+      var ifCondition = getAndRemoveAttr(el, 'v-if', true);+      var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";+      var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;+      var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);+      // 1. checkbox+      var branch0 = cloneASTElement(el);+      // process for on the main node+      processFor(branch0);+      addRawAttr(branch0, 'type', 'checkbox');+      processElement(branch0, options);+      branch0.processed = true; // prevent it from double-processed+      branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;+      addIfCondition(branch0, {+        exp: branch0.if,+        block: branch0+      });+      // 2. add radio else-if condition+      var branch1 = cloneASTElement(el);+      getAndRemoveAttr(branch1, 'v-for', true);+      addRawAttr(branch1, 'type', 'radio');+      processElement(branch1, options);+      addIfCondition(branch0, {+        exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,+        block: branch1+      });+      // 3. other+      var branch2 = cloneASTElement(el);+      getAndRemoveAttr(branch2, 'v-for', true);+      addRawAttr(branch2, ':type', typeBinding);+      processElement(branch2, options);+      addIfCondition(branch0, {+        exp: ifCondition,+        block: branch2+      });++      if (hasElse) {+        branch0.else = true;+      } else if (elseIfCondition) {+        branch0.elseif = elseIfCondition;+      }++      return branch0+    }+  }+}++function cloneASTElement (el) {+  return createASTElement(el.tag, el.attrsList.slice(), el.parent)+}++var model$2 = {+  preTransformNode: preTransformNode+}++var modules$1 = [+  klass$1,+  style$1,+  model$2+]++/*  */++function text (el, dir) {+  if (dir.value) {+    addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));+  }+}++/*  */++function html (el, dir) {+  if (dir.value) {+    addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));+  }+}++var directives$1 = {+  model: model,+  text: text,+  html: html+}++/*  */++var baseOptions = {+  expectHTML: true,+  modules: modules$1,+  directives: directives$1,+  isPreTag: isPreTag,+  isUnaryTag: isUnaryTag,+  mustUseProp: mustUseProp,+  canBeLeftOpenTag: canBeLeftOpenTag,+  isReservedTag: isReservedTag,+  getTagNamespace: getTagNamespace,+  staticKeys: genStaticKeys(modules$1)+};++/*  */++var isStaticKey;+var isPlatformReservedTag;++var genStaticKeysCached = cached(genStaticKeys$1);++/**+ * Goal of the optimizer: walk the generated template AST tree+ * and detect sub-trees that are purely static, i.e. parts of+ * the DOM that never needs to change.+ *+ * Once we detect these sub-trees, we can:+ *+ * 1. Hoist them into constants, so that we no longer need to+ *    create fresh nodes for them on each re-render;+ * 2. Completely skip them in the patching process.+ */+function optimize (root, options) {+  if (!root) { return }+  isStaticKey = genStaticKeysCached(options.staticKeys || '');+  isPlatformReservedTag = options.isReservedTag || no;+  // first pass: mark all non-static nodes.+  markStatic$1(root);+  // second pass: mark static roots.+  markStaticRoots(root, false);+}++function genStaticKeys$1 (keys) {+  return makeMap(+    'type,tag,attrsList,attrsMap,plain,parent,children,attrs' ++    (keys ? ',' + keys : '')+  )+}++function markStatic$1 (node) {+  node.static = isStatic(node);+  if (node.type === 1) {+    // do not make component slot content static. this avoids+    // 1. components not able to mutate slot nodes+    // 2. static slot content fails for hot-reloading+    if (+      !isPlatformReservedTag(node.tag) &&+      node.tag !== 'slot' &&+      node.attrsMap['inline-template'] == null+    ) {+      return+    }+    for (var i = 0, l = node.children.length; i < l; i++) {+      var child = node.children[i];+      markStatic$1(child);+      if (!child.static) {+        node.static = false;+      }+    }+    if (node.ifConditions) {+      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {+        var block = node.ifConditions[i$1].block;+        markStatic$1(block);+        if (!block.static) {+          node.static = false;+        }+      }+    }+  }+}++function markStaticRoots (node, isInFor) {+  if (node.type === 1) {+    if (node.static || node.once) {+      node.staticInFor = isInFor;+    }+    // For a node to qualify as a static root, it should have children that+    // are not just static text. Otherwise the cost of hoisting out will+    // outweigh the benefits and it's better off to just always render it fresh.+    if (node.static && node.children.length && !(+      node.children.length === 1 &&+      node.children[0].type === 3+    )) {+      node.staticRoot = true;+      return+    } else {+      node.staticRoot = false;+    }+    if (node.children) {+      for (var i = 0, l = node.children.length; i < l; i++) {+        markStaticRoots(node.children[i], isInFor || !!node.for);+      }+    }+    if (node.ifConditions) {+      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {+        markStaticRoots(node.ifConditions[i$1].block, isInFor);+      }+    }+  }+}++function isStatic (node) {+  if (node.type === 2) { // expression+    return false+  }+  if (node.type === 3) { // text+    return true+  }+  return !!(node.pre || (+    !node.hasBindings && // no dynamic bindings+    !node.if && !node.for && // not v-if or v-for or v-else+    !isBuiltInTag(node.tag) && // not a built-in+    isPlatformReservedTag(node.tag) && // not a component+    !isDirectChildOfTemplateFor(node) &&+    Object.keys(node).every(isStaticKey)+  ))+}++function isDirectChildOfTemplateFor (node) {+  while (node.parent) {+    node = node.parent;+    if (node.tag !== 'template') {+      return false+    }+    if (node.for) {+      return true+    }+  }+  return false+}++/*  */++var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;+var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;++// KeyboardEvent.keyCode aliases+var keyCodes = {+  esc: 27,+  tab: 9,+  enter: 13,+  space: 32,+  up: 38,+  left: 37,+  right: 39,+  down: 40,+  'delete': [8, 46]+};++// KeyboardEvent.key aliases+var keyNames = {+  esc: 'Escape',+  tab: 'Tab',+  enter: 'Enter',+  space: ' ',+  // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.+  up: ['Up', 'ArrowUp'],+  left: ['Left', 'ArrowLeft'],+  right: ['Right', 'ArrowRight'],+  down: ['Down', 'ArrowDown'],+  'delete': ['Backspace', 'Delete']+};++// #4868: modifiers that prevent the execution of the listener+// need to explicitly return null so that we can determine whether to remove+// the listener for .once+var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };++var modifierCode = {+  stop: '$event.stopPropagation();',+  prevent: '$event.preventDefault();',+  self: genGuard("$event.target !== $event.currentTarget"),+  ctrl: genGuard("!$event.ctrlKey"),+  shift: genGuard("!$event.shiftKey"),+  alt: genGuard("!$event.altKey"),+  meta: genGuard("!$event.metaKey"),+  left: genGuard("'button' in $event && $event.button !== 0"),+  middle: genGuard("'button' in $event && $event.button !== 1"),+  right: genGuard("'button' in $event && $event.button !== 2")+};++function genHandlers (+  events,+  isNative,+  warn+) {+  var res = isNative ? 'nativeOn:{' : 'on:{';+  for (var name in events) {+    res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";+  }+  return res.slice(0, -1) + '}'+}++function genHandler (+  name,+  handler+) {+  if (!handler) {+    return 'function(){}'+  }++  if (Array.isArray(handler)) {+    return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")+  }++  var isMethodPath = simplePathRE.test(handler.value);+  var isFunctionExpression = fnExpRE.test(handler.value);++  if (!handler.modifiers) {+    if (isMethodPath || isFunctionExpression) {+      return handler.value+    }+    /* istanbul ignore if */+    return ("function($event){" + (handler.value) + "}") // inline statement+  } else {+    var code = '';+    var genModifierCode = '';+    var keys = [];+    for (var key in handler.modifiers) {+      if (modifierCode[key]) {+        genModifierCode += modifierCode[key];+        // left/right+        if (keyCodes[key]) {+          keys.push(key);+        }+      } else if (key === 'exact') {+        var modifiers = (handler.modifiers);+        genModifierCode += genGuard(+          ['ctrl', 'shift', 'alt', 'meta']+            .filter(function (keyModifier) { return !modifiers[keyModifier]; })+            .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })+            .join('||')+        );+      } else {+        keys.push(key);+      }+    }+    if (keys.length) {+      code += genKeyFilter(keys);+    }+    // Make sure modifiers like prevent and stop get executed after key filtering+    if (genModifierCode) {+      code += genModifierCode;+    }+    var handlerCode = isMethodPath+      ? ("return " + (handler.value) + "($event)")+      : isFunctionExpression+        ? ("return (" + (handler.value) + ")($event)")+        : handler.value;+    /* istanbul ignore if */+    return ("function($event){" + code + handlerCode + "}")+  }+}++function genKeyFilter (keys) {+  return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")+}++function genFilterCode (key) {+  var keyVal = parseInt(key, 10);+  if (keyVal) {+    return ("$event.keyCode!==" + keyVal)+  }+  var keyCode = keyCodes[key];+  var keyName = keyNames[key];+  return (+    "_k($event.keyCode," ++    (JSON.stringify(key)) + "," ++    (JSON.stringify(keyCode)) + "," ++    "$event.key," ++    "" + (JSON.stringify(keyName)) ++    ")"+  )+}++/*  */++function on (el, dir) {+  if ("development" !== 'production' && dir.modifiers) {+    warn("v-on without argument does not support modifiers.");+  }+  el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };+}++/*  */++function bind$1 (el, dir) {+  el.wrapData = function (code) {+    return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")+  };+}++/*  */++var baseDirectives = {+  on: on,+  bind: bind$1,+  cloak: noop+}++/*  */++var CodegenState = function CodegenState (options) {+  this.options = options;+  this.warn = options.warn || baseWarn;+  this.transforms = pluckModuleFunction(options.modules, 'transformCode');+  this.dataGenFns = pluckModuleFunction(options.modules, 'genData');+  this.directives = extend(extend({}, baseDirectives), options.directives);+  var isReservedTag = options.isReservedTag || no;+  this.maybeComponent = function (el) { return !isReservedTag(el.tag); };+  this.onceId = 0;+  this.staticRenderFns = [];+};++++function generate (+  ast,+  options+) {+  var state = new CodegenState(options);+  var code = ast ? genElement(ast, state) : '_c("div")';+  return {+    render: ("with(this){return " + code + "}"),+    staticRenderFns: state.staticRenderFns+  }+}++function genElement (el, state) {+  if (el.staticRoot && !el.staticProcessed) {+    return genStatic(el, state)+  } else if (el.once && !el.onceProcessed) {+    return genOnce(el, state)+  } else if (el.for && !el.forProcessed) {+    return genFor(el, state)+  } else if (el.if && !el.ifProcessed) {+    return genIf(el, state)+  } else if (el.tag === 'template' && !el.slotTarget) {+    return genChildren(el, state) || 'void 0'+  } else if (el.tag === 'slot') {+    return genSlot(el, state)+  } else {+    // component or element+    var code;+    if (el.component) {+      code = genComponent(el.component, el, state);+    } else {+      var data = el.plain ? undefined : genData$2(el, state);++      var children = el.inlineTemplate ? null : genChildren(el, state, true);+      code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";+    }+    // module transforms+    for (var i = 0; i < state.transforms.length; i++) {+      code = state.transforms[i](el, code);+    }+    return code+  }+}++// hoist static sub-trees out+function genStatic (el, state) {+  el.staticProcessed = true;+  state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));+  return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")+}++// v-once+function genOnce (el, state) {+  el.onceProcessed = true;+  if (el.if && !el.ifProcessed) {+    return genIf(el, state)+  } else if (el.staticInFor) {+    var key = '';+    var parent = el.parent;+    while (parent) {+      if (parent.for) {+        key = parent.key;+        break+      }+      parent = parent.parent;+    }+    if (!key) {+      "development" !== 'production' && state.warn(+        "v-once can only be used inside v-for that is keyed. "+      );+      return genElement(el, state)+    }+    return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")+  } else {+    return genStatic(el, state)+  }+}++function genIf (+  el,+  state,+  altGen,+  altEmpty+) {+  el.ifProcessed = true; // avoid recursion+  return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)+}++function genIfConditions (+  conditions,+  state,+  altGen,+  altEmpty+) {+  if (!conditions.length) {+    return altEmpty || '_e()'+  }++  var condition = conditions.shift();+  if (condition.exp) {+    return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))+  } else {+    return ("" + (genTernaryExp(condition.block)))+  }++  // v-if with v-once should generate code like (a)?_m(0):_m(1)+  function genTernaryExp (el) {+    return altGen+      ? altGen(el, state)+      : el.once+        ? genOnce(el, state)+        : genElement(el, state)+  }+}++function genFor (+  el,+  state,+  altGen,+  altHelper+) {+  var exp = el.for;+  var alias = el.alias;+  var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';+  var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';++  if ("development" !== 'production' &&+    state.maybeComponent(el) &&+    el.tag !== 'slot' &&+    el.tag !== 'template' &&+    !el.key+  ) {+    state.warn(+      "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " ++      "v-for should have explicit keys. " ++      "See https://vuejs.org/guide/list.html#key for more info.",+      true /* tip */+    );+  }++  el.forProcessed = true; // avoid recursion+  return (altHelper || '_l') + "((" + exp + ")," ++    "function(" + alias + iterator1 + iterator2 + "){" ++      "return " + ((altGen || genElement)(el, state)) ++    '})'+}++function genData$2 (el, state) {+  var data = '{';++  // directives first.+  // directives may mutate the el's other properties before they are generated.+  var dirs = genDirectives(el, state);+  if (dirs) { data += dirs + ','; }++  // key+  if (el.key) {+    data += "key:" + (el.key) + ",";+  }+  // ref+  if (el.ref) {+    data += "ref:" + (el.ref) + ",";+  }+  if (el.refInFor) {+    data += "refInFor:true,";+  }+  // pre+  if (el.pre) {+    data += "pre:true,";+  }+  // record original tag name for components using "is" attribute+  if (el.component) {+    data += "tag:\"" + (el.tag) + "\",";+  }+  // module data generation functions+  for (var i = 0; i < state.dataGenFns.length; i++) {+    data += state.dataGenFns[i](el);+  }+  // attributes+  if (el.attrs) {+    data += "attrs:{" + (genProps(el.attrs)) + "},";+  }+  // DOM props+  if (el.props) {+    data += "domProps:{" + (genProps(el.props)) + "},";+  }+  // event handlers+  if (el.events) {+    data += (genHandlers(el.events, false, state.warn)) + ",";+  }+  if (el.nativeEvents) {+    data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";+  }+  // slot target+  // only for non-scoped slots+  if (el.slotTarget && !el.slotScope) {+    data += "slot:" + (el.slotTarget) + ",";+  }+  // scoped slots+  if (el.scopedSlots) {+    data += (genScopedSlots(el.scopedSlots, state)) + ",";+  }+  // component v-model+  if (el.model) {+    data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";+  }+  // inline-template+  if (el.inlineTemplate) {+    var inlineTemplate = genInlineTemplate(el, state);+    if (inlineTemplate) {+      data += inlineTemplate + ",";+    }+  }+  data = data.replace(/,$/, '') + '}';+  // v-bind data wrap+  if (el.wrapData) {+    data = el.wrapData(data);+  }+  // v-on data wrap+  if (el.wrapListeners) {+    data = el.wrapListeners(data);+  }+  return data+}++function genDirectives (el, state) {+  var dirs = el.directives;+  if (!dirs) { return }+  var res = 'directives:[';+  var hasRuntime = false;+  var i, l, dir, needRuntime;+  for (i = 0, l = dirs.length; i < l; i++) {+    dir = dirs[i];+    needRuntime = true;+    var gen = state.directives[dir.name];+    if (gen) {+      // compile-time directive that manipulates AST.+      // returns true if it also needs a runtime counterpart.+      needRuntime = !!gen(el, dir, state.warn);+    }+    if (needRuntime) {+      hasRuntime = true;+      res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";+    }+  }+  if (hasRuntime) {+    return res.slice(0, -1) + ']'+  }+}++function genInlineTemplate (el, state) {+  var ast = el.children[0];+  if ("development" !== 'production' && (+    el.children.length !== 1 || ast.type !== 1+  )) {+    state.warn('Inline-template components must have exactly one child element.');+  }+  if (ast.type === 1) {+    var inlineRenderFns = generate(ast, state.options);+    return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")+  }+}++function genScopedSlots (+  slots,+  state+) {+  return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {+      return genScopedSlot(key, slots[key], state)+    }).join(',')) + "])")+}++function genScopedSlot (+  key,+  el,+  state+) {+  if (el.for && !el.forProcessed) {+    return genForScopedSlot(key, el, state)+  }+  var fn = "function(" + (String(el.slotScope)) + "){" ++    "return " + (el.tag === 'template'+      ? el.if+        ? ((el.if) + "?" + (genChildren(el, state) || 'undefined') + ":undefined")+        : genChildren(el, state) || 'undefined'+      : genElement(el, state)) + "}";+  return ("{key:" + key + ",fn:" + fn + "}")+}++function genForScopedSlot (+  key,+  el,+  state+) {+  var exp = el.for;+  var alias = el.alias;+  var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';+  var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';+  el.forProcessed = true; // avoid recursion+  return "_l((" + exp + ")," ++    "function(" + alias + iterator1 + iterator2 + "){" ++      "return " + (genScopedSlot(key, el, state)) ++    '})'+}++function genChildren (+  el,+  state,+  checkSkip,+  altGenElement,+  altGenNode+) {+  var children = el.children;+  if (children.length) {+    var el$1 = children[0];+    // optimize single v-for+    if (children.length === 1 &&+      el$1.for &&+      el$1.tag !== 'template' &&+      el$1.tag !== 'slot'+    ) {+      return (altGenElement || genElement)(el$1, state)+    }+    var normalizationType = checkSkip+      ? getNormalizationType(children, state.maybeComponent)+      : 0;+    var gen = altGenNode || genNode;+    return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))+  }+}++// determine the normalization needed for the children array.+// 0: no normalization needed+// 1: simple normalization needed (possible 1-level deep nested array)+// 2: full normalization needed+function getNormalizationType (+  children,+  maybeComponent+) {+  var res = 0;+  for (var i = 0; i < children.length; i++) {+    var el = children[i];+    if (el.type !== 1) {+      continue+    }+    if (needsNormalization(el) ||+        (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {+      res = 2;+      break+    }+    if (maybeComponent(el) ||+        (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {+      res = 1;+    }+  }+  return res+}++function needsNormalization (el) {+  return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'+}++function genNode (node, state) {+  if (node.type === 1) {+    return genElement(node, state)+  } if (node.type === 3 && node.isComment) {+    return genComment(node)+  } else {+    return genText(node)+  }+}++function genText (text) {+  return ("_v(" + (text.type === 2+    ? text.expression // no need for () because already wrapped in _s()+    : transformSpecialNewlines(JSON.stringify(text.text))) + ")")+}++function genComment (comment) {+  return ("_e(" + (JSON.stringify(comment.text)) + ")")+}++function genSlot (el, state) {+  var slotName = el.slotName || '"default"';+  var children = genChildren(el, state);+  var res = "_t(" + slotName + (children ? ("," + children) : '');+  var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");+  var bind$$1 = el.attrsMap['v-bind'];+  if ((attrs || bind$$1) && !children) {+    res += ",null";+  }+  if (attrs) {+    res += "," + attrs;+  }+  if (bind$$1) {+    res += (attrs ? '' : ',null') + "," + bind$$1;+  }+  return res + ')'+}++// componentName is el.component, take it as argument to shun flow's pessimistic refinement+function genComponent (+  componentName,+  el,+  state+) {+  var children = el.inlineTemplate ? null : genChildren(el, state, true);+  return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")+}++function genProps (props) {+  var res = '';+  for (var i = 0; i < props.length; i++) {+    var prop = props[i];+    /* istanbul ignore if */+    {+      res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";+    }+  }+  return res.slice(0, -1)+}++// #3895, #4268+function transformSpecialNewlines (text) {+  return text+    .replace(/\u2028/g, '\\u2028')+    .replace(/\u2029/g, '\\u2029')+}++/*  */++// these keywords should not appear inside expressions, but operators like+// typeof, instanceof and in are allowed+var prohibitedKeywordRE = new RegExp('\\b' + (+  'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' ++  'super,throw,while,yield,delete,export,import,return,switch,default,' ++  'extends,finally,continue,debugger,function,arguments'+).split(',').join('\\b|\\b') + '\\b');++// these unary operators should not be used as property/method names+var unaryOperatorsRE = new RegExp('\\b' + (+  'delete,typeof,void'+).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');++// strip strings in expressions+var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;++// detect problematic expressions in a template+function detectErrors (ast) {+  var errors = [];+  if (ast) {+    checkNode(ast, errors);+  }+  return errors+}++function checkNode (node, errors) {+  if (node.type === 1) {+    for (var name in node.attrsMap) {+      if (dirRE.test(name)) {+        var value = node.attrsMap[name];+        if (value) {+          if (name === 'v-for') {+            checkFor(node, ("v-for=\"" + value + "\""), errors);+          } else if (onRE.test(name)) {+            checkEvent(value, (name + "=\"" + value + "\""), errors);+          } else {+            checkExpression(value, (name + "=\"" + value + "\""), errors);+          }+        }+      }+    }+    if (node.children) {+      for (var i = 0; i < node.children.length; i++) {+        checkNode(node.children[i], errors);+      }+    }+  } else if (node.type === 2) {+    checkExpression(node.expression, node.text, errors);+  }+}++function checkEvent (exp, text, errors) {+  var stipped = exp.replace(stripStringRE, '');+  var keywordMatch = stipped.match(unaryOperatorsRE);+  if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {+    errors.push(+      "avoid using JavaScript unary operator as property name: " ++      "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())+    );+  }+  checkExpression(exp, text, errors);+}++function checkFor (node, text, errors) {+  checkExpression(node.for || '', text, errors);+  checkIdentifier(node.alias, 'v-for alias', text, errors);+  checkIdentifier(node.iterator1, 'v-for iterator', text, errors);+  checkIdentifier(node.iterator2, 'v-for iterator', text, errors);+}++function checkIdentifier (+  ident,+  type,+  text,+  errors+) {+  if (typeof ident === 'string') {+    try {+      new Function(("var " + ident + "=_"));+    } catch (e) {+      errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));+    }+  }+}++function checkExpression (exp, text, errors) {+  try {+    new Function(("return " + exp));+  } catch (e) {+    var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);+    if (keywordMatch) {+      errors.push(+        "avoid using JavaScript keyword as property name: " ++        "\"" + (keywordMatch[0]) + "\"\n  Raw expression: " + (text.trim())+      );+    } else {+      errors.push(+        "invalid expression: " + (e.message) + " in\n\n" ++        "    " + exp + "\n\n" ++        "  Raw expression: " + (text.trim()) + "\n"+      );+    }+  }+}++/*  */++function createFunction (code, errors) {+  try {+    return new Function(code)+  } catch (err) {+    errors.push({ err: err, code: code });+    return noop+  }+}++function createCompileToFunctionFn (compile) {+  var cache = Object.create(null);++  return function compileToFunctions (+    template,+    options,+    vm+  ) {+    options = extend({}, options);+    var warn$$1 = options.warn || warn;+    delete options.warn;++    /* istanbul ignore if */+    {+      // detect possible CSP restriction+      try {+        new Function('return 1');+      } catch (e) {+        if (e.toString().match(/unsafe-eval|CSP/)) {+          warn$$1(+            'It seems you are using the standalone build of Vue.js in an ' ++            'environment with Content Security Policy that prohibits unsafe-eval. ' ++            'The template compiler cannot work in this environment. Consider ' ++            'relaxing the policy to allow unsafe-eval or pre-compiling your ' ++            'templates into render functions.'+          );+        }+      }+    }++    // check cache+    var key = options.delimiters+      ? String(options.delimiters) + template+      : template;+    if (cache[key]) {+      return cache[key]+    }++    // compile+    var compiled = compile(template, options);++    // check compilation errors/tips+    {+      if (compiled.errors && compiled.errors.length) {+        warn$$1(+          "Error compiling template:\n\n" + template + "\n\n" ++          compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',+          vm+        );+      }+      if (compiled.tips && compiled.tips.length) {+        compiled.tips.forEach(function (msg) { return tip(msg, vm); });+      }+    }++    // turn code into functions+    var res = {};+    var fnGenErrors = [];+    res.render = createFunction(compiled.render, fnGenErrors);+    res.staticRenderFns = compiled.staticRenderFns.map(function (code) {+      return createFunction(code, fnGenErrors)+    });++    // check function generation errors.+    // this should only happen if there is a bug in the compiler itself.+    // mostly for codegen development use+    /* istanbul ignore if */+    {+      if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {+        warn$$1(+          "Failed to generate render function:\n\n" ++          fnGenErrors.map(function (ref) {+            var err = ref.err;+            var code = ref.code;++            return ((err.toString()) + " in\n\n" + code + "\n");+        }).join('\n'),+          vm+        );+      }+    }++    return (cache[key] = res)+  }+}++/*  */++function createCompilerCreator (baseCompile) {+  return function createCompiler (baseOptions) {+    function compile (+      template,+      options+    ) {+      var finalOptions = Object.create(baseOptions);+      var errors = [];+      var tips = [];+      finalOptions.warn = function (msg, tip) {+        (tip ? tips : errors).push(msg);+      };++      if (options) {+        // merge custom modules+        if (options.modules) {+          finalOptions.modules =+            (baseOptions.modules || []).concat(options.modules);+        }+        // merge custom directives+        if (options.directives) {+          finalOptions.directives = extend(+            Object.create(baseOptions.directives || null),+            options.directives+          );+        }+        // copy other options+        for (var key in options) {+          if (key !== 'modules' && key !== 'directives') {+            finalOptions[key] = options[key];+          }+        }+      }++      var compiled = baseCompile(template, finalOptions);+      {+        errors.push.apply(errors, detectErrors(compiled.ast));+      }+      compiled.errors = errors;+      compiled.tips = tips;+      return compiled+    }++    return {+      compile: compile,+      compileToFunctions: createCompileToFunctionFn(compile)+    }+  }+}++/*  */++// `createCompilerCreator` allows creating compilers that use alternative+// parser/optimizer/codegen, e.g the SSR optimizing compiler.+// Here we just export a default compiler using the default parts.+var createCompiler = createCompilerCreator(function baseCompile (+  template,+  options+) {+  var ast = parse(template.trim(), options);+  if (options.optimize !== false) {+    optimize(ast, options);+  }+  var code = generate(ast, options);+  return {+    ast: ast,+    render: code.render,+    staticRenderFns: code.staticRenderFns+  }+});++/*  */++var ref$1 = createCompiler(baseOptions);+var compileToFunctions = ref$1.compileToFunctions;++/*  */++// check whether current browser encodes a char inside attribute values+var div;+function getShouldDecode (href) {+  div = div || document.createElement('div');+  div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";+  return div.innerHTML.indexOf('&#10;') > 0+}++// #3663: IE encodes newlines inside attribute values while other browsers don't+var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;+// #6828: chrome encodes content in a[href]+var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;++/*  */++var idToTemplate = cached(function (id) {+  var el = query(id);+  return el && el.innerHTML+});++var mount = Vue.prototype.$mount;+Vue.prototype.$mount = function (+  el,+  hydrating+) {+  el = el && query(el);++  /* istanbul ignore if */+  if (el === document.body || el === document.documentElement) {+    "development" !== 'production' && warn(+      "Do not mount Vue to <html> or <body> - mount to normal elements instead."+    );+    return this+  }++  var options = this.$options;+  // resolve template/el and convert to render function+  if (!options.render) {+    var template = options.template;+    if (template) {+      if (typeof template === 'string') {+        if (template.charAt(0) === '#') {+          template = idToTemplate(template);+          /* istanbul ignore if */+          if ("development" !== 'production' && !template) {+            warn(+              ("Template element not found or is empty: " + (options.template)),+              this+            );+          }+        }+      } else if (template.nodeType) {+        template = template.innerHTML;+      } else {+        {+          warn('invalid template option:' + template, this);+        }+        return this+      }+    } else if (el) {+      template = getOuterHTML(el);+    }+    if (template) {+      /* istanbul ignore if */+      if ("development" !== 'production' && config.performance && mark) {+        mark('compile');+      }++      var ref = compileToFunctions(template, {+        shouldDecodeNewlines: shouldDecodeNewlines,+        shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,+        delimiters: options.delimiters,+        comments: options.comments+      }, this);+      var render = ref.render;+      var staticRenderFns = ref.staticRenderFns;+      options.render = render;+      options.staticRenderFns = staticRenderFns;++      /* istanbul ignore if */+      if ("development" !== 'production' && config.performance && mark) {+        mark('compile end');+        measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');+      }+    }+  }+  return mount.call(this, el, hydrating)+};++/**+ * Get outerHTML of elements, taking care+ * of SVG elements in IE as well.+ */+function getOuterHTML (el) {+  if (el.outerHTML) {+    return el.outerHTML+  } else {+    var container = document.createElement('div');+    container.appendChild(el.cloneNode(true));+    return container.innerHTML+  }+}++Vue.compile = compileToFunctions;++return Vue;++})));